&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Articles from April 2015 on PowerShell.org - Welcome Automaters!</title><link>https://powershell.org/articles/2015/04/</link><description>Recent content in Articles from April 2015 on PowerShell.org - Welcome Automaters!</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://powershell.org/articles/2015/04/index.xml" rel="self" type="application/rss+xml"/><item><title>PowerShell.org Is Now On Imgur!</title><link>https://powershell.org/articles/2015-04-30-powershell-org-is-now-on-imgur/</link><guid>https://powershell.org/articles/2015-04-30-powershell-org-is-now-on-imgur/</guid><pubDate>Thu, 30 Apr 2015 17:00:11 +0000</pubDate><description>&lt;p&gt;Hey there everyone!  I&amp;rsquo;m pleased to announce that PowerShell.org has a new feed on Imgur!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Hey there everyone!  I&rsquo;m pleased to announce that PowerShell.org has a new feed on Imgur!</p><p>During the PowerShell Summit, I began the hunt for a social photo sharing site that had a set of features that would meet the needs of PowerShell.org.  Our list of criteria was rigorous.  We required a site that was capable of providing embed code for posts.  We needed a site that would be easy to upload images and add them to albums for publishing.  It needed to be social media friendly.  And it needed to be free.<br>
Mainly it needed to be free.<br>
So I present to you, our new<a href="http://powershellorg.imgur.com/">PowerShell.org Imgur feed</a>!  If you want quick access to it and don&rsquo;t feel like adding it to your favorites, you can just hit the Imgur icon on our nifty new social media bar on the right!<br>
We shall be endeavouring to cover more PowerShell related events in our feeds and posts in the future.  I&rsquo;m still working on a list of standards for photo submissions, but in the meantime, if you happen to be at a PowerShell event and have some photos that you&rsquo;d like us to share on the Imgur feed, please feel free to contact me at<em><strong>webmaster at powershell dot org</strong></em> and we&rsquo;ll take a look at them!</p><blockquote/><blockquote><p><a href="//imgur.com/a/UxUNW">PowerShell Summit NA 2015</a></p></blockquote>]]></content:encoded></item><item><title>Why is Remoting Enabled by Default on Windows Server?</title><link>https://powershell.org/articles/2015-04-28-why-is-remoting-enabled-by-default-on-windows-server/</link><guid>https://powershell.org/articles/2015-04-28-why-is-remoting-enabled-by-default-on-windows-server/</guid><pubDate>Tue, 28 Apr 2015 23:16:44 +0000</pubDate><description>&lt;p&gt;There was a brief and lively discussion on Twitter recently stemming from someone asking for advice on how to convince management to turn on Remoting.&lt;br&gt;
&amp;ldquo;Fire Management, if they have to ask&amp;rdquo; was apparently not an option, although it should have been. I mean, at this stage, you either know the value of PowerShell and its Remoting technology, or you&amp;rsquo;re being willfully ignorant.&lt;br&gt;
But that wasn&amp;rsquo;t where the discussion got lively.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>There was a brief and lively discussion on Twitter recently stemming from someone asking for advice on how to convince management to turn on Remoting.<br>
&ldquo;Fire Management, if they have to ask&rdquo; was apparently not an option, although it should have been. I mean, at this stage, you either know the value of PowerShell and its Remoting technology, or you&rsquo;re being willfully ignorant.<br>
But that wasn&rsquo;t where the discussion got lively.</p><p>The real discussion was about why Remoting was turned on by default in the first place, on newer versions of Windows Server (since Win2012). After all, Remote Desktop Protocol (RDP) is turned off by default. Most Linux distributions, it was pointed out, turn off sshd by default. So why is Remoting turned on? Isn&rsquo;t the safest bet to just disable everything, and let people turn on what they need?<br>
I think Remoting (and by Remoting, I mean the Windows Remote Management, or WinRM service) being turned on by default gives us a valuable look at Microsoft&rsquo;s psyche these days.<br>
First, keep in mind that _you can turn it off. _You can even do that via a Group Policy for domain computers, and you could certainly do so in a server master image if you wanted to. So it&rsquo;s pretty easy to have an &ldquo;off by default&rdquo; setup in your environment if you want. But wouldn&rsquo;t it therefore be just as easy for Microsoft to leave it off, and let you &ldquo;default it to on&rdquo; by whatever means you prefer, if that&rsquo;s what you want? Sure. But again, I think this is about Microsoft&rsquo;s psyche, these days.<br>
Understand that what follows is conjecture, but it&rsquo;s conjecture based on more than 20 years of watching this company, and on a pretty good working relationship with many of the company&rsquo;s technology leaders. This also isn&rsquo;t intended to make you feel that &ldquo;on by default&rdquo; is the right answer for you, nor is it intended to convince you that &ldquo;on by default&rdquo; is the right answer for _anyone. _This is an attempt to speculate about the <em>reasons</em> behind &ldquo;on by default,&rdquo; whether the decision itself was correct or not.<br>
The short reason is, &ldquo;Nano Server.&rdquo;<br>
If you just nodded and went, &ldquo;yeah, that would explain their thinking,&rdquo; then you can skip the rest of this. Keep in mind that Remoting isn&rsquo;t turned on for <em>client</em> computers by default, and that just pretty much reinforces the Nano Server reason.<br>
The very long answer is that Microsoft, these days, is building _first for themselves. _Specifically, for Azure. They believe - and again, you&rsquo;re free to disagree and I&rsquo;m not pitching their belief as gospel - that enterprises should manage their datacenter in much the same way Microsoft manages Azure. Microsoft&rsquo;s argument for this revolves around efficiency, primarily, and specifically efficiency at scale. Reliability factors into the argument, too. So Microsoft&rsquo;s decisions have to be examined in light of what works in &ldquo;the cloud,&rdquo; because that&rsquo;s how they expect you&rsquo;re going to be managing your own servers in the future.<br>
Microsoft has been on a long path, since 2008, of breaking down the monolithic Windows Server product into a discrete set of chunks that can be turned on or off at will. We say that first with the big refactoring of the product into Roles &amp; Features, which could be installed or uninstalled pretty easily. We also saw them ripping out the GUI bits to create the first Server Core. Over the next 5 years, the company refactored Server more and more, through a series of three releases culminating in Windows Server 2012 R2. In that time, Server Core became more and more functional, as more and more of Windows Server was refactored into standalone little bits, and separated from the &ldquo;GUI stuff.&rdquo;<br>
Microsoft&rsquo;s direction here has never been a big secret: they want to ship a fully-functioning version of Windows Server that doesn&rsquo;t have any&hellip; er&hellip; windows. They want it, in other words, to be a _server, _not a client that just happens to have a lot of RAM installed.<br>
Once you kind of buy into the &ldquo;no GUI on the server&rdquo; idea, even if just for the sake of discussion, it&rsquo;s not a far step to &ldquo;no logging into the server at all, in any way.&rdquo; Headless servers, in other words, where the host hardware might not even contain video output hardware. After all, if there&rsquo;s no GUI, then you can be definition do everything via text, which is very easy to transmit over a network. Ask Unix, which has been doing it for decades over Telnet and SSH. If you can do everything remotely, why even support a local login?<br>
Well, that&rsquo;s Nano Server, an installation option in the version of Windows Server that is expected to ship in 2016.<br>
_And if you can&rsquo;t log on locally at all, then you need some way of connecting to the server to initially configure it. _Which is why Remoting is enabled by default, even though little else is. You use your existing OSD infrastructure to deploy new Nano servers, and then you Remote into them to set them up as needed. Unlike most Linux distributions, which<em>allow</em> local login, Nano isn&rsquo;t even going to provide a means to log into &ldquo;the console.&rdquo; At least, as far as we currently know, it won&rsquo;t; Microsoft&rsquo;s only made a few statements about it so far.<br>
Windows Server&rsquo;s architect, Jeffrey Snover, put it fairly concisely in the Twitter discussion: &ldquo;We believe in a world of headless remote mgmt as the norm.&rdquo; <em>Headless</em> meaning _no way to log in locally, no such thing. _Ergo, you need some way to log in remotely, and Remoting is it, and it therefore is enabled by default.<br>
Now, in defense of this &ldquo;on by default&rdquo; approach, I&rsquo;ll point out that unlike nearly every preceding remote management protocol introduced by Microsoft, Remoting is incredibly controllable. It uses WS-Management (WS-MAN), which is HTTP-based. It runs on just one incoming port, which is easy to lock down through physical, soft, and virtual firewalls. You can certainly have an environment that&rsquo;s pre-engineered to protect that port. But if you buy into Microsoft&rsquo;s &ldquo;headless&rdquo; approach - and whether you do or not, Microsoft certainly buys in - then they had to enable _something _so you could configure the server, at least initially.<br>
So whether you agree with this direction or not is entirely up to you - and you&rsquo;re welcome to add your polite, professional comments to this post. I wanted to write this in an attempt to _explain, _just justify, <em>why</em> I think Microsoft took this approach, and what I think it means for the long term of Windows Server itself. I think simply knowing that direction can inform a lot of your base infrastructure decisions and planning going forward, whether you buy into the approach or not.</p>]]></content:encoded></item><item><title>PowerShellTO's Next Meeting – May 6th, 2015</title><link>https://powershell.org/articles/2015-04-27-powershelltos-next-meeting-may-6th-2015/</link><guid>https://powershell.org/articles/2015-04-27-powershelltos-next-meeting-may-6th-2015/</guid><pubDate>Mon, 27 Apr 2015 23:00:51 +0000</pubDate><description>&lt;p&gt;Join us on Wednesday, May 6th for our second Toronto PowerShell User’s Group meeting.  This time you get to take the wheel!  Send us some of your PowerShell related challenges and we’ll pick the top ones to work out in a group together!  We’ll also be talking about some of the things learned at PowerShell Summit – North America, and more!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Join us on Wednesday, May 6th for our second Toronto PowerShell User’s Group meeting.  This time you get to take the wheel!  Send us some of your PowerShell related challenges and we’ll pick the top ones to work out in a group together!  We’ll also be talking about some of the things learned at PowerShell Summit – North America, and more!</p><p><a href="http://powershellto.ca/contact/">Hit us up and let us know</a>what PowerShell challenges you’d like to table at the next PowerShellTO meeting!<br>
For this meeting, we&rsquo;ll be located at the Microsoft Technology Center in Mississauga at 1950 Meadowvale Blvd - Mississauga, Ontario, L5N8L9.  Space is limited, so be sure to claim your EventBrite ticket below!<br>
A note on parking: When you arrive at the MTC, go around to the side facing Meadowvale Blvd.  There is a visitor entrance and parking there.  See you soon!</p><pre><code>[Online Ticketing](http://www.eventbrite.ca/r/etckt)</code></pre><p>for<a href="https://www.eventbrite.ca/e/powershellto-may-2015-meeting-tickets-16415587464?ref=etckt">PowerShellTO - May 2015 Meeting</a>
powered by<a href="http://www.eventbrite.ca?ref=etckt">Eventbrite</a></p>]]></content:encoded></item><item><title>Management Information: The OMI/CIM/WMI/MI/DMTF Dictionary</title><link>https://powershell.org/articles/2015-04-24-management-information-the-omicimwmimidmtf-dictionary/</link><guid>https://powershell.org/articles/2015-04-24-management-information-the-omicimwmimidmtf-dictionary/</guid><pubDate>Fri, 24 Apr 2015 22:57:48 +0000</pubDate><description>&lt;p&gt;Not too long ago, over on DonJones.com, I &lt;a href="http://donjones.com/2015/04/14/omi-cim-wmi/"&gt;wrote an article&lt;/a&gt; that tried to explain some of the confusion between Microsoft&amp;rsquo;s World of Management Instrumentation - e.g., WMI, OMI, CIM, and a bunch of other acronyms. I glossed over some of the finer details, and this article is intended to provide more specificity and accuracy - thanks to Microsoft&amp;rsquo;s Keith Bankston for helping me sort things out.&lt;/p&gt;
&lt;h2 id="cim-and-the-dmtf" class="ps-heading"&gt;CIM and the DMTF&lt;a class="ps-heading-anchor" href="#cim-and-the-dmtf" aria-label="Link to this section" title="Link to this section"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Let us begin with CIM. CIM stands for Common Information Model, and it is not a tangible thing. It isn&amp;rsquo;t even software. It&amp;rsquo;s a set of standards that describe how management information can be represented in software, and it was created by the Distributed Management Task Force (DMTF), an industry working group that Microsoft is a member of.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Not too long ago, over on DonJones.com, I<a href="http://donjones.com/2015/04/14/omi-cim-wmi/">wrote an article</a> that tried to explain some of the confusion between Microsoft&rsquo;s World of Management Instrumentation - e.g., WMI, OMI, CIM, and a bunch of other acronyms. I glossed over some of the finer details, and this article is intended to provide more specificity and accuracy - thanks to Microsoft&rsquo;s Keith Bankston for helping me sort things out.</p><h2 id="cim-and-the-dmtf" class="ps-heading">CIM and the DMTF<a class="ps-heading-anchor" href="#cim-and-the-dmtf" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Let us begin with CIM. CIM stands for Common Information Model, and it is not a tangible thing. It isn&rsquo;t even software. It&rsquo;s a set of standards that describe how management information can be represented in software, and it was created by the Distributed Management Task Force (DMTF), an industry working group that Microsoft is a member of.</p><h2 id="oldwmi-dcom-and-rpc" class="ps-heading">Old WMI, DCOM, and RPC<a class="ps-heading-anchor" href="#oldwmi-dcom-and-rpc" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Back in the day - we&rsquo;re talking Windows NT 4.0 timeframe - Microsoft created Windows Management Instrumentation, or WMI. This was a server component (technically, a background service, and it ran on Workstation as well as Server) that delivered up management information in the CIM format. Now, at the time, the CIM standards were pretty early in their life, and WMI complied with what existed at the time. But the standards themselves were silent on quite a few things, like what network communications protocol you&rsquo;d use to actually talk to a server. Microsoft opted for Distributed Component Object Model, or DCOM, which was a very mainstream thing for them at the time. DCOM talks by using Remote Procedure Calls, or RPCs, also a very standard thing for Windows in those days.</p><h2 id="newwmi-ws-man-and-winrm" class="ps-heading">New WMI, WS-MAN, and WINRM<a class="ps-heading-anchor" href="#newwmi-ws-man-and-winrm" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Fast forward a bit to 2012. With Windows Management Framework 3, Microsoft releases a new version of WMI. They fail to give it a unique name, which causes a lot of confusion, but it complies with all the latest CIM specifications. There&rsquo;s still a server-side component, but this &ldquo;new WMI&rdquo; talks over WS-Management (Web Services for Management, often written as WS-MAN) instead of DCOM/RPC. Microsoft&rsquo;s implementation of WS-MAN lives in the Windows Remote Management (WinRM) service. The PowerShell cmdlets that talk this new kind of WMI all use CIM as part of the noun, giving us Get-CimInstance, Get-CimClass, Invoke-CimMethod, and so on. But make no mistake - these things aren&rsquo;t &ldquo;talking CIM,&rdquo; because CIM isn&rsquo;t a protocol. They&rsquo;re talking WS-MAN, which is what the new CIM standard specifies.<br>
Sidebar: From a naming perspective, Microsoft was pretty much screwed with the new cmdlets&rsquo; names, no matter what they called them. &ldquo;Cim&rdquo; is a terrible part of the noun. After all, the &ldquo;old WMI&rdquo; was compliant with the CIM of its day, but it didn&rsquo;t get to be called CIM. The new cmdlets don&rsquo;t use any technology called &ldquo;Cim,&rdquo; they&rsquo;re merely compliant with the newest CIM standards. Maybe they should have been called something like Get-Wmi2Instance, or Invoke-NewWmiMethod, but that wasn&rsquo;t going to make anyone happy, either. So, Cim it is.</p><h2 id="omi" class="ps-heading">OMI<a class="ps-heading-anchor" href="#omi" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Now, at some point, folks noticed that implementing a full WMI/DCOM/RPC stack wasn&rsquo;t ever going to happen on anything but Windows. It was too big, too &ldquo;heavy,&rdquo; and frankly too outdated by the time anyone noticed. But there was a big desire to have all this CIM-flavored stuff running elsewhere, like on routers, switches, Linux boxes, you name it. So Microsoft wrote Open Management Instrumentation, or OMI. This is basically a CIM-compliant server that speaks WS-MAN, just like the &ldquo;new WMI.&rdquo; But it&rsquo;s really teeny-tiny, taking up just a few megabytes of storage and a wee amount of RAM. That makes it suitable for running on devices with constrained compute capacity, like routers and switches and whatnot. Microsoft open-sourced their OMI server code, making it a good reference item that other people could adopt, build on, and implement.</p><h2 id="under-the-hood-provider-apis" class="ps-heading">Under the Hood: Provider APIs<a class="ps-heading-anchor" href="#under-the-hood-provider-apis" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Time to dig under the hood a bit. &ldquo;Old WMI&rdquo; got its information from something called the WMI Repository. The Repository, in turn, was populated by many different WMI Providers. These Providers are written in native code (e.g., C++) and only run on Windows. They&rsquo;re what create the classes - Win32_OperatingSystem, Win32_BIOS, and so on - that we IT ops people are used to querying.<br>
As Microsoft started looking at OMI, and at updated WMI to the newer CIM standards, they realized these old-school Providers weren&rsquo;t hot stuff. First, they were kinda hard to write, which didn&rsquo;t encourage developers to jump on board. They were also kinda huge, relatively speaking, making them less suitable for constrained environments like routers and switches.<br>
So Microsoft came up with a new Application Programming Interface (API) for writing providers, calling it simply Management Instrumentation, or MI. MI providers are easier to write, and a lot smaller. MI providers, at an API level, work under the &ldquo;new WMI&rdquo; as well as under OMI. So if you&rsquo;re getting a router hooked up to all this CIM stuff, you&rsquo;re going to implement the teeny OMI server, and underneath it you&rsquo;re going to write one or more MI providers to provide information to the OMI server. MI providers don&rsquo;t necessarily need a repository, meaning they provide information &ldquo;live&rdquo; to the server component. That helps save storage space.<br>
MI providers are also written in native code, which is nice because lots of developers who work with low-level system stuff greatly prefer native code. The client and server APIs are (on Windows, at least) available in native or managed (.NET) versions, so both kinds of developers get access. Providers, though, are always native code.<br>
As an IT ops person, you&rsquo;ll probably never care what kind of provider you&rsquo;re using. The &ldquo;new WMI&rdquo; on Windows supports both old-style WMI Providers and new-style MI Providers, so developers can pick and choose. Also, Microsoft doesn&rsquo;t need to go re-do all the work they already did writing providers for &ldquo;old WMI,&rdquo; because &ldquo;new WMI&rdquo; can continue to use it.</p><h2 id="powershell-cmdlets" class="ps-heading">PowerShell Cmdlets<a class="ps-heading-anchor" href="#powershell-cmdlets" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>When you&rsquo;re using Get-CimInstance in PowerShell, by default you&rsquo;re using &ldquo;new WMI,&rdquo; meaning you&rsquo;re talking WS-MAN to the remote machine. Those commands also have the ability to talk DCOM/RPC, mainly for backward compatibility with machines that either aren&rsquo;t running WMF3 or later, or that haven&rsquo;t enabled WinRM (remember, WinRM is what &ldquo;listens&rdquo; for the incoming WS-MAN traffic).</p><h2 id="client-api-differences-this-matters" class="ps-heading">Client API Differences: This Matters<a class="ps-heading-anchor" href="#client-api-differences-this-matters" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>It&rsquo;s massively important that you understand the inherent differences between DCOM/RPC and WS-MAN. Under DCOM, you were basically connected to a &ldquo;live&rdquo; object on the remote machine. That meant you could get a WMI instance, execute methods, change properties in some cases, and generally treat it as functioning code. The RPC protocol was designed for that kind of continuous back-and-forth, although it wasn&rsquo;t terribly network- or memory-efficient, because of the &ldquo;live connection&rdquo; concept. WS-MAN, on the other hand, is basically like talking to a web server. Heck, it uses HTTP, even. So when you run Get-CimInstance, your data is generated on the remote machine, serialized into XML, transmitted back in an HTTP stream, and then deserialized into objects on your computer. Those aren&rsquo;t &ldquo;live&rdquo; objects; they&rsquo;re not &ldquo;connected&rdquo; to anything. That&rsquo;s why they don&rsquo;t have methods. To execute a method, you have to send another WS-MAN request to the machine, which will execute the method and send you any results - which is what Invoke-CimMethod does. The entire relationship between you and the remote machine is essentially stateless, just like the relationship between a web browser and a web server. So your coding technique has to change a bit as you move from &ldquo;old WMI&rdquo; to &ldquo;new WMI.&rdquo; The good news is that the new, web-style approach is a lot lighter-touch on the server, requiring less network and memory, so it becomes a lot more scalable.</p><h2 id="versions" class="ps-heading">Versions<a class="ps-heading-anchor" href="#versions" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Anything running WMF3 or later (Win2008R2 and later, Win7 and later) has &ldquo;new WMI.&rdquo; Microsoft continues to include &ldquo;old WMI&rdquo; for backward compatibility, although on newer versions of Windows (I&rsquo;m playing with Win2012R2), the ports for DCOM/RPC may not be open, while the ports for WS-MAN are, by default. So we&rsquo;re clearly moving forward.</p><h2 id="enabling-winrm-cim-remoting-new-wmi" class="ps-heading">Enabling WinRM CIM Remoting New WMI<a class="ps-heading-anchor" href="#enabling-winrm-cim-remoting-new-wmi" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Oh, and as a complete side note, a LOT of us in the industry will say stuff like &ldquo;enable PowerShell Remoting&rdquo; when we refer to enabling WS-MAN. Technically, that&rsquo;s not accurate. Enabling Remoting, if you do it right, enables WinRM, and enables WinRM to pass traffic to PowerShell. It&rsquo;ll also enable most of the other cool stuff we use WS-MAN for, including PowerShell Workflow, the &ldquo;new WMI&rdquo; communications for CIM cmdlets, and so on. But you could also enable the &ldquo;new WMI&rdquo; stuff without also turning on PowerShell Remoting. At the end of the day, though, turning on Remoting is just the Right Thing To Do, so why not make life easy and turn it all on at once?</p><h2 id="summary" class="ps-heading">Summary<a class="ps-heading-anchor" href="#summary" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>OLD WMI: Uses DCOM/RPC. Uses old-style native code providers and a repository. Available only on Windows. More or less deprecated, meaning it&rsquo;s not a focus area for further improvement or development. You&rsquo;re connected to &ldquo;live&rdquo; objects and can play with them.<br>
NEW WMI: Uses WS-MAN (via WinRM service). Supports old-style native code providers and a repository, as well as new-style MI providers. Available only on Windows. The way forward. If something can talk to &ldquo;NEW WMI&rdquo; it should be able to talk to OMI, also. You&rsquo;re not connected to &ldquo;live&rdquo; objects, and have an essentially stateless relationship with the remote machine.<br>
OMI: Uses WS-MAN (OMI code includes the protocol stack). Supports only new-style MI providers. Available on any implementing platform. Also the way forward. If something can talk to OMI, it should be able to talk to &ldquo;NEW WMI&rdquo; also.<br>
CIM: Defines the standard. Created by DMTF. Early versions were implemented as &ldquo;OLD WMI&rdquo; by Microsoft, newest version implemented both in &ldquo;NEW WMI&rdquo; and OMI by Microsoft and others.<br>
And if you prefer summaries by layer:<br>
SERVER (or, the bit that serves up the info, which could technically be a client device like a laptop) uses PROVIDERS (either old-style WMI, new-style MI, or both) to generate management information. If the SERVER is a non-Windows device, it would run OMI and only support new-style MI providers.<br>
CLIENT (the machine doing the querying) uses either old-style WMI (DCOM/RPC) or new-style (WS-MAN) to send requests to SERVER and to receive the results. CLIENT doesn&rsquo;t care what API was used to write the providers running on the server, because the server makes the information all look the same. If CLIENT queries a SERVER that only supports WS-MAN, then CLIENT must obviously use WS-MAN.<br>
Hope that helps.</p>
]]></content:encoded></item><item><title>Charlotte PowerShell User Group meeting for May</title><link>https://powershell.org/articles/2015-04-24-charlotte-powershell-user-group-meeting-for-may/</link><guid>https://powershell.org/articles/2015-04-24-charlotte-powershell-user-group-meeting-for-may/</guid><pubDate>Fri, 24 Apr 2015 14:01:21 +0000</pubDate><description>&lt;p&gt;The Charlotte PowerShell User Group had a great meeting in late April with a special guest presenter, Lee Holmes. Due to this occurrence and scheduling conflicts for the month of May, our regularly scheduled meeting will not occur. Stay tuned for information about our next meeting which will occur on our normal day (1st Thursday of every month), June 4th.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The Charlotte PowerShell User Group had a great meeting in late April with a special guest presenter, Lee Holmes. Due to this occurrence and scheduling conflicts for the month of May, our regularly scheduled meeting will not occur. Stay tuned for information about our next meeting which will occur on our normal day (1st Thursday of every month), June 4th.</p>
]]></content:encoded></item><item><title>Observations from our PowerShell Summit VERIFIED EFFECTIVE Exam</title><link>https://powershell.org/articles/2015-04-23-observations-from-our-powershell-summit-verified-effective-exam/</link><guid>https://powershell.org/articles/2015-04-23-observations-from-our-powershell-summit-verified-effective-exam/</guid><pubDate>Thu, 23 Apr 2015 14:24:29 +0000</pubDate><description>&lt;p&gt;We offered our first in-person, proctored VERIFIED EFFECTIVE exam at PowerShell Summit in April 2015, located in Charlotte, NC. While the exam is not intended as a diagnostic or learning tool, there are definitely some observations I can share from glancing through some of the submissions so far.&lt;br&gt;
First, the exam isn&amp;rsquo;t easy. 31 people signed up to take it (our room capacity; more would have if we&amp;rsquo;d had space), and only 12 turned in submissions. Of those, fewer than 5 are probably going to pass by the end of the grading process.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>We offered our first in-person, proctored VERIFIED EFFECTIVE exam at PowerShell Summit in April 2015, located in Charlotte, NC. While the exam is not intended as a diagnostic or learning tool, there are definitely some observations I can share from glancing through some of the submissions so far.<br>
First, the exam isn&rsquo;t easy. 31 people signed up to take it (our room capacity; more would have if we&rsquo;d had space), and only 12 turned in submissions. Of those, fewer than 5 are probably going to pass by the end of the grading process.</p><ul><li>If you don&rsquo;t know what <strong>[CmdletBinding(SupportsShouldProcess=$True)]</strong> does, then you shouldn&rsquo;t be using it. It should never be used in a cmdlet that merely queries information and doesn&rsquo;t make changes to the system. It isn&rsquo;t boilerplate that should be included in every function, and it has nothing to do with the PROCESS script block.</li><li>If you don&rsquo;t understand <strong>ValueFromPipeline</strong> and **ValueFromPipelineByPropertyName, **then you need to learn.</li><li>If you&rsquo;re using aliases like<strong>%</strong> in a function, you&rsquo;re not creating a readable, maintainable script. Avoid aliases, especially ones that don&rsquo;t immediately communicate the task being completed. <strong>Dir</strong> might be acceptable; <strong>?</strong> not so much.</li><li>If you&rsquo;re not neatly indenting your constructs, your script is not going to be readable.</li><li>Creating a parameter that accepts a limited set of values (say, &ldquo;foo&rdquo; and &ldquo;bar&rdquo;) doesn&rsquo;t create internal variables with those names (e.g., $foo and $bar). Don&rsquo;t confuse parameter names with their values.</li></ul><p>In the end analysis, there&rsquo;s a difference between being able to hack out a working script, and being able to create a professional, maintainable tool that complies with PowerShell&rsquo;s native practices and patterns. If you&rsquo;re to the point where you&rsquo;re able to hack out a working script, take a next step by reading something like <em>The Community Book of PowerShell Practices</em> (available for free), or solidify your skills and understanding through a book like (gratuitous plug) _Learn PowerShell Toolmaking in a Month of Lunches. _<br>
Most of the non-passing submissions we&rsquo;re seeing have simple mistakes - for example, including a static computer name in a verbose message, rather than inserting the name of the currently-processing computer. Or creating a CIMSession, but then not using it (forcing a later command to spin up a second session). In other instances, we saw poor practices (like globally and unnecessarily setting $ErrorActionPreference, suggesting a lack of understanding about the more specific -ErrorAction). There was also a few instances where a lack of attention to details - or perhaps simply running out of time - was a problem, such as failing to define a needed parameter, or defining a ValidateSet() with incorrect values.<br>
We&rsquo;re going to be removing one of our VERIFIED EFFECTIVE exam scenarios from production use, and turning that into an &ldquo;example scenario&rdquo; that you can use to self-assess your toolmaking skills. Look for that in the next few weeks. We&rsquo;ll continue offering in-person proctored exams at PowerShell Summit, with Europe 2015 in Stockholm being our next go. In 2016, look for us to expand the program with more capacity (so more people can sit the exam), and for us to eventually offer a DSC-related exam.<br>
In the meantime, anyone with a VERIFIED EFFECTIVE certificate has indeed completed a challenging, practical exam that shows they are definitely <em>effective</em> toolmakers, capable of building professional-grade tools that are consistent with PowerShell&rsquo;s native use patterns. Thus far, fewer than 20 certificates have been earned.</p>
]]></content:encoded></item><item><title>Painlessly Get Data from PowerShell to Excel</title><link>https://powershell.org/articles/2015-04-21-painlessly-get-data-from-powershell-to-excel/</link><guid>https://powershell.org/articles/2015-04-21-painlessly-get-data-from-powershell-to-excel/</guid><pubDate>Tue, 21 Apr 2015 12:08:54 +0000</pubDate><description>&lt;p&gt;Doug Finke has &lt;a href="http://www.dougfinke.com/blog/index.php/2015/04/20/painlessly-get-data-from-powershell-to-excel/"&gt;written an awesome article&lt;/a&gt; - complete with a module! - to help get data into Excel spreadsheets.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Doug Finke has<a href="http://www.dougfinke.com/blog/index.php/2015/04/20/painlessly-get-data-from-powershell-to-excel/">written an awesome article</a> - complete with a module! - to help get data into Excel spreadsheets.</p>
]]></content:encoded></item><item><title>PowerShell Summit – North America Launches!</title><link>https://powershell.org/articles/2015-04-20-powershell-summit-north-america-launches/</link><guid>https://powershell.org/articles/2015-04-20-powershell-summit-north-america-launches/</guid><pubDate>Mon, 20 Apr 2015 22:49:06 +0000</pubDate><description>&lt;p&gt;The PowerShell community descended on Charlotte, North Carolina for the third annual PowerShell Summit - North America this week!  Enthusiasts, MVPs, community leaders, and the PowerShell product team came to discuss the latest and greatest ongoings in the PowerShell world.&lt;br&gt;
The festivities kicked off in downtown Charlotte at the Ri Ra Irish Pub this last Sunday.  New network connections were made and old friends reunited over fine brews in the Victorian-style public house before getting a good nights&amp;rsquo; rest before the three day summit.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The PowerShell community descended on Charlotte, North Carolina for the third annual PowerShell Summit - North America this week!  Enthusiasts, MVPs, community leaders, and the PowerShell product team came to discuss the latest and greatest ongoings in the PowerShell world.<br>
The festivities kicked off in downtown Charlotte at the Ri Ra Irish Pub this last Sunday.  New network connections were made and old friends reunited over fine brews in the Victorian-style public house before getting a good nights&rsquo; rest before the three day summit.</p><p>Monday started off with an exciting lineup of speakers to discuss some of the hottest community topics including Desired State Configuration, automated code testing with Pester, and working with Azure.  Some great announcements were made by the product team as well, including:</p><ul><li>The release of Windows Management Framework 5.0 on April 30th.  This release will be available downlevel for Windows 7 and Server 2008.</li><li>PowerShell Package Manager announced as the official name of OneGet.</li><li>The release of<a href="https://visualstudiogallery.msdn.microsoft.com/c9eb3ba8-0c59-4944-9a62-6eee37294597">PowerShell Tools for Visual Studio</a>, available now for download.</li></ul><p>A big congratulations to PowerShell MVP and PowerShell.org board member Dave Wyatt, who&rsquo;s works on Pester will be making it&rsquo;s way into the next build of Windows Server!<br>
Take a look at our latest videos from the summit on<a href="https://www.youtube.com/user/powershellorg/videos">YouTube</a>, and follow the excitement at<a href="https://twitter.com/search?q=%23powershell&amp;src=typd">#PowerShell on Twitter</a>!</p>
]]></content:encoded></item><item><title>Microsoft Publishes DSC Resource Kit in GitHub</title><link>https://powershell.org/articles/2015-04-16-microsoft-publishes-dsc-resource-kit-in-github/</link><guid>https://powershell.org/articles/2015-04-16-microsoft-publishes-dsc-resource-kit-in-github/</guid><pubDate>Thu, 16 Apr 2015 11:47:50 +0000</pubDate><description>&lt;p&gt;When Microsoft first released the DSC Resource Kit (in &lt;a href="https://gallery.technet.microsoft.com/scriptcenter/DSC-Resource-Kit-All-c449312d"&gt;Wave 10&lt;/a&gt; as of this writing), they opened the door to community contributions. Our own &lt;a href="https://github.com/powershellorg"&gt;PowerShell.org GitHub repo&lt;/a&gt; consists partly of DSC resource that used Microsoft&amp;rsquo;s code as a baseline, and then corrected problems or expanded capabilities.&lt;br&gt;
What we never had was a way for Microsoft to circle back, pick up those enhancements, and include them as part of an official future Resource Kit Wave. Now, we do.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>When Microsoft first released the DSC Resource Kit (in<a href="https://gallery.technet.microsoft.com/scriptcenter/DSC-Resource-Kit-All-c449312d">Wave 10</a> as of this writing), they opened the door to community contributions. Our own<a href="https://github.com/powershellorg">PowerShell.org GitHub repo</a> consists partly of DSC resource that used Microsoft&rsquo;s code as a baseline, and then corrected problems or expanded capabilities.<br>
What we never had was a way for Microsoft to circle back, pick up those enhancements, and include them as part of an official future Resource Kit Wave. Now, we do.</p><p>Microsoft has moved the entire DSC Resource Kit to an<a href="https://github.com/PowerShell/DscResources">open GitHub repo</a>. They&rsquo;ve also included some<a href="https://github.com/PowerShell/DscResources/blob/master/CONTRIBUTING.md">basic guidelines for potential contributors</a>. This now allows anyone to jump in, make corrections, or potentially even expand capabilities, knowing that their work has a chance of being reviewed and included in the &ldquo;official&rdquo; repository. That means we have a shot at having One True Version of these modules, which anyone can find and use, rather than scattered versions that inherited from the originals, but were harder for the general public to find.<br>
As of this writing, there are over 45 DSC resources you can download, check out, modify, and submit changes for - as well as using them in your environment. Thank you, Microsoft!</p>]]></content:encoded></item><item><title>PowerShell Summit Europe VENUE CHANGE</title><link>https://powershell.org/articles/2015-04-10-powershell-summit-europe-venue-change/</link><guid>https://powershell.org/articles/2015-04-10-powershell-summit-europe-venue-change/</guid><pubDate>Fri, 10 Apr 2015 14:43:52 +0000</pubDate><description>&lt;p&gt;We&amp;rsquo;re announcing a venue change for PowerShell Summit Europe 2015. Although we&amp;rsquo;re very appreciative to Microsoft for offering the use of their office in Kista, our registration velocity warrants a larger venue, and gives us the opportunity for a more central location.&lt;br&gt;
Dates are not changed. We will be at the &lt;a href="http://www.scandichotels.se/Hotels/Sverige/Stockholm/Scandic-Klara/#.VSfgrlwtaq4"&gt;Scandic Klara hotel&lt;/a&gt;, which is near to the &lt;a href="http://htlhotels.com/hotels/kungsgatan/"&gt;HTL Kungsgaten&lt;/a&gt;, both of which has sleeping room available as of this writing. Both are as close as we can get to Stockholm Central station, and both are near a tram line.&lt;br&gt;
We are recommending that attendees **reserve sleeping rooms immediately. **A government congress at the waterfront convention center has made room inventory tight. Our &lt;a href="https://eventmgr.azurewebsites.net/event/home/PSEU15"&gt;registration website&lt;/a&gt; has been updated with the additional attendee capacity.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>We&rsquo;re announcing a venue change for PowerShell Summit Europe 2015. Although we&rsquo;re very appreciative to Microsoft for offering the use of their office in Kista, our registration velocity warrants a larger venue, and gives us the opportunity for a more central location.<br>
Dates are not changed. We will be at the<a href="http://www.scandichotels.se/Hotels/Sverige/Stockholm/Scandic-Klara/#.VSfgrlwtaq4">Scandic Klara hotel</a>, which is near to the<a href="http://htlhotels.com/hotels/kungsgatan/">HTL Kungsgaten</a>, both of which has sleeping room available as of this writing. Both are as close as we can get to Stockholm Central station, and both are near a tram line.<br>
We are recommending that attendees **reserve sleeping rooms immediately. **A government congress at the waterfront convention center has made room inventory tight. Our<a href="https://eventmgr.azurewebsites.net/event/home/PSEU15">registration website</a> has been updated with the additional attendee capacity.</p>
]]></content:encoded></item><item><title>A Quick PowerShell Summit Europe Update (spread the word!)</title><link>https://powershell.org/articles/2015-04-07-a-quick-powershell-summit-europe-update-spread-the-word/</link><guid>https://powershell.org/articles/2015-04-07-a-quick-powershell-summit-europe-update-spread-the-word/</guid><pubDate>Tue, 07 Apr 2015 14:52:16 +0000</pubDate><description>&lt;p&gt;First: Because e-mail these days is actually unreliable, what with spam filters and all, please know that we&amp;rsquo;re relying on you to keep yourself informed on Summit updates. Following the &lt;a href="https://powershell.org/forums/forum/powershell-summit/"&gt;Summit category on PowerShell.org&lt;/a&gt;, and watching the &lt;a href="http://twitter.com/pshsummit"&gt;@PSHSummit Twitter account&lt;/a&gt;, are the reliable means of doing so.&lt;br&gt;
&lt;strong&gt;First:&lt;/strong&gt; Summit Europe is happening. There was some confusion because a draft blog post from a month ago got resurrected somehow, but the Summit is &lt;strong&gt;on.&lt;/strong&gt;&lt;br&gt;
**Second: **We&amp;rsquo;re almost sold out. I think we literally have 2 or 3 seats left. There was a rush over this past weekend.&lt;br&gt;
**Third: **We&amp;rsquo;re exploring other venues in Stockholm and Kista, which would afford us more room. I expect to have this pinned down no later than mid-May. The dates will not change, and the Kista area will probably not change. But &lt;strong&gt;pay attention&lt;/strong&gt; so you&amp;rsquo;re not going to the wrong building. Watching the Summit category and @PSHSummit Twitter page is vital, especially closer-in.&lt;br&gt;
**Fourth: **Hotel inventory in central Stockholm is dicey because there&amp;rsquo;s some giant conference at the waterfront conference center. There are rooms available just outside the central area, as well as in Kista. So long as you&amp;rsquo;re close to a tram line or Metro stop, you&amp;rsquo;re good to go - the Metro will be able to get you to whatever venue we select (we&amp;rsquo;re ensuring that).&lt;br&gt;
**Fifth: **That is all. Have a good week :).&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>First: Because e-mail these days is actually unreliable, what with spam filters and all, please know that we&rsquo;re relying on you to keep yourself informed on Summit updates. Following the<a href="https://powershell.org/forums/forum/powershell-summit/">Summit category on PowerShell.org</a>, and watching the<a href="http://twitter.com/pshsummit">@PSHSummit Twitter account</a>, are the reliable means of doing so.<br><strong>First:</strong> Summit Europe is happening. There was some confusion because a draft blog post from a month ago got resurrected somehow, but the Summit is <strong>on.</strong><br>
**Second: **We&rsquo;re almost sold out. I think we literally have 2 or 3 seats left. There was a rush over this past weekend.<br>
**Third: **We&rsquo;re exploring other venues in Stockholm and Kista, which would afford us more room. I expect to have this pinned down no later than mid-May. The dates will not change, and the Kista area will probably not change. But <strong>pay attention</strong> so you&rsquo;re not going to the wrong building. Watching the Summit category and @PSHSummit Twitter page is vital, especially closer-in.<br>
**Fourth: **Hotel inventory in central Stockholm is dicey because there&rsquo;s some giant conference at the waterfront conference center. There are rooms available just outside the central area, as well as in Kista. So long as you&rsquo;re close to a tram line or Metro stop, you&rsquo;re good to go - the Metro will be able to get you to whatever venue we select (we&rsquo;re ensuring that).<br>
**Fifth: **That is all. Have a good week :).</p>
]]></content:encoded></item><item><title>NJ PowerShell Users Group Meet: Presenter Jeffrey Hicks – Microsoft MVP</title><link>https://powershell.org/articles/2015-04-06-nj-powershell-users-group-meet-presenter-jeffrey-hicks-microsoft-mvp/</link><guid>https://powershell.org/articles/2015-04-06-nj-powershell-users-group-meet-presenter-jeffrey-hicks-microsoft-mvp/</guid><pubDate>Mon, 06 Apr 2015 16:54:14 +0000</pubDate><description>&lt;p&gt;The NJ PowerShell User Group is having a meetup on Tuesday, April 28th from 6:00 - 8:00 PM.  The first half hour will be for socializing, pizza, and playing pool at our coffee bar. &lt;/p&gt;
&lt;p&gt;Agenda:&lt;/p&gt;
&lt;p&gt;                6:00 – 6:30: Pizza and socializing&lt;/p&gt;
&lt;p&gt;                6:30 – 7:30: Presentation&lt;/p&gt;
&lt;p&gt;                7:30 - 8:00: Q &amp;amp; A&lt;/p&gt;
&lt;p&gt;Please note that the Webex meeting will start at 6:00 PM, but the actual presentation won&amp;rsquo;t start until 6:30. In-Person a ttendees must register, print out their EventBrite ticket, and present it at the door.  Walk-ins will not be permitted.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The NJ PowerShell User Group is having a meetup on Tuesday, April 28th from 6:00 - 8:00 PM.  The first half hour will be for socializing, pizza, and playing pool at our coffee bar. </p><p>Agenda:</p><p>                6:00 – 6:30: Pizza and socializing</p><p>                6:30 – 7:30: Presentation</p><p>                7:30 - 8:00: Q &amp; A</p><p>Please note that the Webex meeting will start at 6:00 PM, but the actual presentation won&rsquo;t start until 6:30. In-Person a ttendees must register, print out their EventBrite ticket, and present it at the door.  Walk-ins will not be permitted.</p><p><img src="http://njpowershell.org/wp-content/uploads/2015/04/EventBritelogo.png" alt="Eventbrite"> <a href="http://www.eventbrite.com/e/nj-powershell-users-group-meet-april-28th-presenter-jeffrey-hicks-tickets-16466847785">Eventbrite Registration Page</a> 
A Webex meeting link will be emailed to Eventbrite on-line registrants prior to the event.</p><p><strong>Presenter</strong>: Jeffrey Hicks (in-person)</p><p>**Presentation: **
On the Job: Putting PowerShell Scheduled Jobs to Work for You. So you know how to use PowerShell and how it can make your job easier to do. But why should you have to be sitting at your desk to run a PowerShell script or command? Why not combine the simplicity of a PowerShell script with the ease of use of a scheduled task! PowerShell MVP and author Jeff Hicks will guide you through the process of setting up and using PowerShell scheduled jobs, including a few potential gotchas. By the end of the session you should know enough to be able to schedule the boring right out of your job.</p><p>**Bio: **
Jeffery Hicks is an IT veteran with over 25 years of experience, much of it spent as an IT infrastructure consultant specializing in Microsoft server technologies with an emphasis in automation and efficiency. He is a multi-year recipient of the Microsoft MVP Award in Windows PowerShell. He works today as an independent author, trainer and consultant. Jeff has written for numerous online sites and print publications, is a contributing editor at Petri.com (<a href="http://www.petri.com">http://www.petri.com</a>), and a frequent speaker at technology conferences and user groups. His latest book is<a href="http://www.amazon.com/PowerShell-Depth-Don-Jones/dp/1617292184/"> PowerShell In Depth: An Administrator&rsquo;s Guide 2nd Ed</a>.</p><p>Twitter:<a href="https://twitter.com/jeffhicks">@JeffHicks</a></p><p><a href="https://twitter.com/jeffhicks"><img src="http://njpowershell.org/wp-content/uploads/2015/04/JeffHicks-150x150.jpeg" alt="Jeff Hicks"/>   <a href="http://www.amazon.com/PowerShell-Depth-Don-Jones/dp/1617292184/"><img src="http://njpowershell.org/wp-content/uploads/2015/04/PowerShellInAction2nd-150x150.jpg" alt="PowerShell In Depth 2nd Ed."/></p><p>Coffee Bar, Pool Table, and XBox</p><p><img src="https://cdn.evbuc.com/eventlogos/111855199/eventbritecoffeebar.png" alt="Coffee Bar"/><p>Conference Room</p><p><img src="https://cdn.evbuc.com/eventlogos/111855199/eventbriteconferenceroom.png" alt="Conference Room"/>
]]></content:encoded></item><item><title>Omaha PSUG March Meeting Slides &amp; Video Now Available</title><link>https://powershell.org/articles/2015-04-02-omaha-psug-march-meeting-slides-video-now-available/</link><guid>https://powershell.org/articles/2015-04-02-omaha-psug-march-meeting-slides-video-now-available/</guid><pubDate>Thu, 02 Apr 2015 13:08:21 +0000</pubDate><description>&lt;p&gt;Trond Hindenes presented on Real Life SMA this month.  Boe Prox was able to get this presentation recorded and it is now on YouTube.&lt;br&gt;
The slides Trond used in his presentation are &lt;a href="https://onedrive.live.com/redir?resid=4bfe4a6675a48c91%21120"&gt;here&lt;/a&gt;.  The YouTube video is &lt;a href="https://youtu.be/eLKZ0GWAO10"&gt;here&lt;/a&gt;.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Trond Hindenes presented on Real Life SMA this month.  Boe Prox was able to get this presentation recorded and it is now on YouTube.<br>
The slides Trond used in his presentation are<a href="https://onedrive.live.com/redir?resid=4bfe4a6675a48c91%21120">here</a>.  The YouTube video is<a href="https://youtu.be/eLKZ0GWAO10">here</a>.</p>
]]></content:encoded></item></channel></rss>