#PSTip New PowerShell Commands in Windows 10 Anniversary Update

Windows 10 Anniversary Update was made generally available on August 2, 2016.

Included in the update is a new version of Windows Management Framework, which has now reached version 5.1. By using the Get-PSVersion function in the PSVersion module I released earlier this year, we can determine that the build number is now 5.1.14393.0:

Windows10AnniversaryUpdate_01

By using Get-PSVersion -ListVersion we can also see the full history of PowerShell 5.* RTM versions for comparison:

Windows10AnniversaryUpdate_02

What might be even more interesting is to check out what commands are new between 5.1.14393.0 and the previous RTM build (5.0.10586.494). To make this process more convenient we can leverage another module I released this year, the PSVersionCompare module. Details on how to install it and perform a comparison between two PowerShell versions is available in “Comparing Commands Between PowerShell Versions” article.

Since the initial release, I have also added functions to compare automatic variables as well. This is the commands I ran to compare the XML files from computer A running version 5.0.10586.494 and computer B running version 5.1.14393.0:

There is a lot of changes, which you can review in the following files generated by the above commands:

Some highlights to notice:

  • Four new modules: AppvClient, Microsoft.PowerShell.LocalAccounts, Microsoft.PowerShell.Operation.Validation and UEV
  • Three new cmdlets in module Microsoft.PowerShell.Management: Get-ComputerInfo, Get-TimeZone, and Set-TimeZone
  • Test-Connection has new parameters to support both DCOM and WSMan protocols.
  • Test-NetConnection has new parameters for constraining to an Interface or Source address.
  • The PackageManagement and PowerShellGet modules have new parameters for proxy support.
  • PSReadLine now has ViMode support.
  • A large number of changes in the Storage module.
  • A new automatic variable: PSEdition. The purpose of this variable is to make it possible to distinguish between Desktop edition (“regular” PowerShell based on the full .NET Framework) and Core edition (used on Nano Server, based on .NET Core). A couple of other side notes on this topic: PSEdition is also a new property in the $PSVersionTable automatic variable, and Update-ModuleManifest now has a CompatiblePSEditions parameter in order to specify which PowerShell Edition a module supports.

Of course there are many other enhancements in Windows Management Framework 5.1 which we did not discover by using the PSVersionCompare module. Be sure to check out the WMF 5.1 Release notes to find out more.

About the author: Jan Egil Ring

Jan Egil works as a Lead Architect on the R&D Team at Crayon, Norway. He mainly works with automation, and has a strong passion for PowerShell. Products and services he works with includes Microsoft infrastructure products such as Windows Server, System Center and Microsoft Azure. He is a multiple-year recipient of Microsoft Most Valuable Professional Award for his contributions in the Windows PowerShell and Cloud & Datacenter Management technical communities. He speaks regularly at user groups and conferences, such as Nordic Infrastructure Conference (NIC), PowerShell Conference Europe and PowerShell Summit. He is a co-founder of the Norwegian Microsoft Technology User Group (MTUG), which is an association of local MTUG user groups in Norway. He is also co-organizing the MTUG Script Club which focuses mainly on PowerShell. You can follow him on Twitter @JanEgilRing.

Related Posts

%d bloggers like this: