This site uses advanced css techniques
There are several versions of PowerShell, and some ship natively with an operating system while others can be upgraded after the fact. This confused me for a long time until I got the hang of it, and now I make it a point to always keep my customer servers updated to the latest so as to enable the most features from my cmdlets.
PowerShell is delivered as part of the Windows Management Framework (WMF), which includes other things that are somewhat less well known; My focus is always on the PowerShell version.
As of this writing (Summer 2019), WMF 5.1 is the most recent, and it's installed natively on Windows 10, plus Server 2016 and later, and it can be installed on systems as old as Server 2008 R2.
What I don't know: Microsoft has introduced PowerShell Core 6.0, which is an open source, cross-platform product, and has a lot of promise: I'd sure love to be able to use PowerShell on the Linux system that hosts this website.
But PS 6 is a whole new animal, using the more limited .NET Core rather than the more full-featured .NET Framework that PowerShell has been using for a long time, and I believe there are substantial limitations while this product matures.
I have not looked at this in any detail, and these pages all refer to classic PowerShell 5.1, not PowerShell Core 6.0.
Microsoft provides full detail in their helpful web page on WMF, but we've summarized a bit. We've also added the copyright date that typically displays when you first open a PwoerShell console; this correlates to the version.
|OS Version|| WMF 5.1
© 2016 †
| WMF 4.0
| WMF 3.0
| WMF 2.0
|Server 2019||Ships in-box|
|Server 2016||Ships in-box|
|Windows 10||Ships in-box|
|Server 2012 R2||available||Ships in-box|
|Windows 8.1 R2||available||Ships in-box|
|Server 2012||available||available||Ships in-box|
|Server 2008 R2||available||available||available||Ships in-box|
|Server 2008||not available||available||Ships in-box|
|Server 2003||not available||Ships in-box|
I excluded WMF 5.0, which was replaced with 5.1, and obsolete desktop operating systems Vista and XP. I also dropped mentions of service pack requirements: if you're running Server 2003 or Server 2008, you really ought to be running the latest service pack (though you probably aren't writing too many cmdlets).
Tip: Remember that R2 releases of an operating system are a whole new version of the OS, so Server 2008 R2 is as different from Server 2008 that preceeds it as from Server 2016 that follows it; Microsoft charges for them as new operating systems too.
On the other hand, service packs (SP#) are just collections of updates that don't change the version of the OS; they are always free updates.
You can tell which version of PowerShell you're running by going to a PowerShell console prompt and typing $PSVersionTable:
This was taken from a Server 2008 R2 system that has the native PS 4.0, and since WMF 5.1 is available for this machine, we've queued up that install and are waiting for a quiet time to reboot the server; virtually all WMF installs require a reboot.
All releases have specific .NET version requirements that can be found in the specific installation instructions: sometimes a substantial .NET framework install is required before WMF can take.