First Glimpse at PowerShell v3

I finally got a hold of Windows 8 laptop (thank you Microsoft!), connected a keyboard, launched PowerShell and here are the first few results before I run to the dinner. 😉

First off, let’s check the version:

PS C:\> $host.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
3      0      -1     -1

So far so good…

When I tried to get all modules, at some point the operation failed but a lot still got added:

PS C:\> (Get-Module -All).count
234
PS C:\> (Get-Module -ListAvailable).count
44

A lot of the modules though seem to be automatically generated from CIM classes:

PS C:\> Get-Module -All

ModuleType Name                      ExportedCommands
---------- ----                      ----------------
Manifest   AppLocker                 {Get-AppLockerFileInformation, Get-AppLockerPolicy, New-AppLockerPolicy,...
Script     Appx                      Get-AppxLastError
Binary     Appx                      {Add-AppxPackage, Get-AppxPackage, Get-AppxPackageManifest, Remove-AppxP...
Script     BitLocker                 {Add-BitLockerKeyProtector, Add-BitLockerPassphraseProtector, Add-BitLoc...
Manifest   BitsTransfer              {Add-BitsFile, Complete-BitsTransfer, Get-BitsTransfer, Remove-BitsTrans...
Manifest   BranchCache               {Add-BCDataCacheExtension, Clear-BCCache, Disable-BC, Disable-BCDowngrad...
Cim        BranchCacheClientSetti... Get-BCClientSettings
Cim        BranchCacheContentServ... Get-BCContentServerSettings
Cim        BranchCacheHostedCache... Get-BCHostedCacheServerSettings
Cim        BranchCacheNetworkSett... Get-BCNetworkSettings
Cim        BranchCacheOrchestrator   {Add-BCDataCacheExtension, Clear-BCCache, Disable-BC, Disable-BCDowngrad...
Cim        BranchCachePrimaryPubl... Get-BCHashCache
Cim        BranchCachePrimaryRepu... Get-BCDataCache
Cim        BranchCacheSecondaryRe... Get-BCDataCacheExtension
Cim        BranchCacheStatus         Get-BCStatus
Manifest   CimCmdlets                {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-CimSessio...
Manifest   DirectAccessClientComp... {Disable-DAManualSiteSelection, Enable-DAManualSiteSelection, Get-DAClie...
Cim        Disk                      {Clear-Disk, Get-Disk, Initialize-Disk, New-Partition...}
Script     Dism                      {Add-Driver, Add-Package, Add-ProvisionedAppxPackage, Clear-CorruptMount...
Manifest   DnsClient                 {Resolve-DnsName, Add-DnsClientNrptRule, Clear-DNSClientCache, Get-DNSCl...
Manifest   DnsConfig                 {Clear-DNSClientCache, Get-DNSClient, Get-DNSClientCache, Get-DNSGlobalS...
Binary     DnsLookup                 Resolve-DnsName
Manifest   DnsNrpt                   {Add-DnsClientNrptRule, Get-DnsClientEffectiveNrptPolicy, Get-DnsClientN...
Cim        InitiatorId               {Get-InitiatorId, Remove-InitiatorId}
Cim        InitiatorPort             {Get-InitiatorPort, Set-InitiatorPort}
Manifest   iSCSI                     {Connect-IscsiDiscoveredTarget, Disconnect-IscsiDiscoveredTarget, Get-Is...
Cim        iSCSIConnection           Get-IscsiConnection
Cim        iSCSIDiscoveredTarget     {Connect-IscsiDiscoveredTarget, Disconnect-IscsiDiscoveredTarget, Get-Is...
Cim        iSCSIInitiator            Set-IscsiInitiator
Cim        iSCSIPersistentTarget     {Get-IscsiPersistentTarget, Register-IscsiPersistentTarget, Unregister-I...
Cim        iSCSISession              Get-IscsiSession
Cim        iSCSITargetPortal         {Get-IscsiTargetPortal, New-IscsiTargetPortal, Remove-IscsiTargetPortal,...

Looking at the standard PowerShell modules we get:

PS C:\> Get-Module Microsoft.PowerShell.*

ModuleType Name                      ExportedCommands
---------- ----                      ----------------
Manifest   Microsoft.PowerShell.Core {Add-History, Add-PSSnapin, Clear-History, Connect-PSSession...}
Manifest   Microsoft.PowerShell.D... {Export-Counter, Get-Counter, Get-WinEvent, Import-Counter...}
Manifest   Microsoft.PowerShell.Host {Start-Transcript, Stop-Transcript}
Manifest   Microsoft.PowerShell.M... {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest   Microsoft.PowerShell.S... {ConvertFrom-SecureString, ConvertTo-SecureString, Get-Acl, Get-Authenti...
Manifest   Microsoft.PowerShell.U... {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
PS C:\> (get-command -Module Microsoft.PowerShell.*).count
248

Here’s a quick list of all the standard cmdlets in the box at the moment:

PS C:\> get-command -Module Microsoft.PowerShell.* | sort module, noun | format-table ModuleName, Name -AutoSize

ModuleName                       Name
----------                       ----
Microsoft.PowerShell.Core        Invoke-Command
Microsoft.PowerShell.Core        Get-Command
Microsoft.PowerShell.Core        Export-Console
Microsoft.PowerShell.Core        Out-Default
Microsoft.PowerShell.Core        Save-Help
Microsoft.PowerShell.Core        Get-Help
Microsoft.PowerShell.Core        Update-Help
Microsoft.PowerShell.Core        Add-History
Microsoft.PowerShell.Core        Invoke-History
Microsoft.PowerShell.Core        Clear-History
Microsoft.PowerShell.Core        Get-History
Microsoft.PowerShell.Core        Out-Host
Microsoft.PowerShell.Core        Get-Job
Microsoft.PowerShell.Core        Suspend-Job
Microsoft.PowerShell.Core        Stop-Job
Microsoft.PowerShell.Core        Receive-Job
Microsoft.PowerShell.Core        Wait-Job
Microsoft.PowerShell.Core        Resume-Job
Microsoft.PowerShell.Core        Start-Job
Microsoft.PowerShell.Core        Remove-Job
Microsoft.PowerShell.Core        Register-JobEvent
Microsoft.PowerShell.Core        Import-Module
Microsoft.PowerShell.Core        New-Module
Microsoft.PowerShell.Core        Get-Module
Microsoft.PowerShell.Core        Remove-Module
Microsoft.PowerShell.Core        Test-ModuleManifest
Microsoft.PowerShell.Core        New-ModuleManifest
Microsoft.PowerShell.Core        Export-ModuleMember
Microsoft.PowerShell.Core        Out-Null
Microsoft.PowerShell.Core        ForEach-Object
Microsoft.PowerShell.Core        Where-Object
Microsoft.PowerShell.Core        Set-PSDebug
Microsoft.PowerShell.Core        Enable-PSRemoting
Microsoft.PowerShell.Core        Disable-PSRemoting
Microsoft.PowerShell.Core        Get-PSSession
Microsoft.PowerShell.Core        Enter-PSSession
Microsoft.PowerShell.Core        Exit-PSSession
Microsoft.PowerShell.Core        New-PSSession
Microsoft.PowerShell.Core        Remove-PSSession
Microsoft.PowerShell.Core        Connect-PSSession
Microsoft.PowerShell.Core        Receive-PSSession
Microsoft.PowerShell.Core        Disconnect-PSSession
Microsoft.PowerShell.Core        Register-PSSessionConfiguration
Microsoft.PowerShell.Core        Disable-PSSessionConfiguration
Microsoft.PowerShell.Core        Unregister-PSSessionConfiguration
Microsoft.PowerShell.Core        Set-PSSessionConfiguration
Microsoft.PowerShell.Core        Get-PSSessionConfiguration
Microsoft.PowerShell.Core        Enable-PSSessionConfiguration
Microsoft.PowerShell.Core        Test-PSSessionConfigurationFile
Microsoft.PowerShell.Core        New-PSSessionConfigurationFile
Microsoft.PowerShell.Core        New-PSSessionOption
Microsoft.PowerShell.Core        Add-PSSnapin
Microsoft.PowerShell.Core        Remove-PSSnapin
Microsoft.PowerShell.Core        Get-PSSnapin
Microsoft.PowerShell.Core        New-PSTransportOption
Microsoft.PowerShell.Core        Set-StrictMode
Microsoft.PowerShell.Diagnostics Get-Counter
Microsoft.PowerShell.Diagnostics Import-Counter
Microsoft.PowerShell.Diagnostics Export-Counter
Microsoft.PowerShell.Diagnostics Get-WinEvent
Microsoft.PowerShell.Diagnostics New-WinEvent
Microsoft.PowerShell.Host        Start-Transcript
Microsoft.PowerShell.Host        Stop-Transcript
Microsoft.PowerShell.Management  Get-ChildItem
Microsoft.PowerShell.Management  Export-CimCommand
Microsoft.PowerShell.Management  Stop-Computer
Microsoft.PowerShell.Management  Checkpoint-Computer
Microsoft.PowerShell.Management  Add-Computer
Microsoft.PowerShell.Management  Restore-Computer
Microsoft.PowerShell.Management  Remove-Computer
Microsoft.PowerShell.Management  Rename-Computer
Microsoft.PowerShell.Management  Restart-Computer
Microsoft.PowerShell.Management  Reset-ComputerMachinePassword
Microsoft.PowerShell.Management  Enable-ComputerRestore
Microsoft.PowerShell.Management  Disable-ComputerRestore
Microsoft.PowerShell.Management  Get-ComputerRestorePoint
Microsoft.PowerShell.Management  Test-ComputerSecureChannel
Microsoft.PowerShell.Management  Test-Connection
Microsoft.PowerShell.Management  Add-Content
Microsoft.PowerShell.Management  Get-Content
Microsoft.PowerShell.Management  Clear-Content
Microsoft.PowerShell.Management  Set-Content
Microsoft.PowerShell.Management  Show-ControlPanelItem
Microsoft.PowerShell.Management  Get-ControlPanelItem
Microsoft.PowerShell.Management  Write-EventLog
Microsoft.PowerShell.Management  New-EventLog
Microsoft.PowerShell.Management  Limit-EventLog
Microsoft.PowerShell.Management  Remove-EventLog
Microsoft.PowerShell.Management  Show-EventLog
Microsoft.PowerShell.Management  Get-EventLog
Microsoft.PowerShell.Management  Clear-EventLog
Microsoft.PowerShell.Management  Get-HotFix
Microsoft.PowerShell.Management  Move-Item
Microsoft.PowerShell.Management  Invoke-Item
Microsoft.PowerShell.Management  Rename-Item
Microsoft.PowerShell.Management  Copy-Item
Microsoft.PowerShell.Management  Get-Item
Microsoft.PowerShell.Management  Remove-Item
Microsoft.PowerShell.Management  Set-Item
Microsoft.PowerShell.Management  New-Item
Microsoft.PowerShell.Management  Clear-Item
Microsoft.PowerShell.Management  Remove-ItemProperty
Microsoft.PowerShell.Management  New-ItemProperty
Microsoft.PowerShell.Management  Get-ItemProperty
Microsoft.PowerShell.Management  Move-ItemProperty
Microsoft.PowerShell.Management  Clear-ItemProperty
Microsoft.PowerShell.Management  Copy-ItemProperty
Microsoft.PowerShell.Management  Rename-ItemProperty
Microsoft.PowerShell.Management  Set-ItemProperty
Microsoft.PowerShell.Management  Get-Location
Microsoft.PowerShell.Management  Set-Location
Microsoft.PowerShell.Management  Push-Location
Microsoft.PowerShell.Management  Pop-Location
Microsoft.PowerShell.Management  Convert-Path
Microsoft.PowerShell.Management  Resolve-Path
Microsoft.PowerShell.Management  Join-Path
Microsoft.PowerShell.Management  Split-Path
Microsoft.PowerShell.Management  Test-Path
Microsoft.PowerShell.Management  Wait-Process
Microsoft.PowerShell.Management  Get-Process
Microsoft.PowerShell.Management  Debug-Process
Microsoft.PowerShell.Management  Start-Process
Microsoft.PowerShell.Management  Stop-Process
Microsoft.PowerShell.Management  Get-PSDrive
Microsoft.PowerShell.Management  Remove-PSDrive
Microsoft.PowerShell.Management  New-PSDrive
Microsoft.PowerShell.Management  Get-PSProvider
Microsoft.PowerShell.Management  New-Service
Microsoft.PowerShell.Management  Set-Service
Microsoft.PowerShell.Management  Resume-Service
Microsoft.PowerShell.Management  Restart-Service
Microsoft.PowerShell.Management  Stop-Service
Microsoft.PowerShell.Management  Start-Service
Microsoft.PowerShell.Management  Get-Service
Microsoft.PowerShell.Management  Suspend-Service
Microsoft.PowerShell.Management  Start-Transaction
Microsoft.PowerShell.Management  Complete-Transaction
Microsoft.PowerShell.Management  Get-Transaction
Microsoft.PowerShell.Management  Use-Transaction
Microsoft.PowerShell.Management  Undo-Transaction
Microsoft.PowerShell.Management  New-WebServiceProxy
Microsoft.PowerShell.Management  Register-WmiEvent
Microsoft.PowerShell.Management  Set-WmiInstance
Microsoft.PowerShell.Management  Invoke-WmiMethod
Microsoft.PowerShell.Management  Remove-WmiObject
Microsoft.PowerShell.Management  Get-WmiObject
Microsoft.PowerShell.Security    Set-Acl
Microsoft.PowerShell.Security    Get-Acl
Microsoft.PowerShell.Security    Set-AuthentipreSignature
Microsoft.PowerShell.Security    Get-AuthentipreSignature
Microsoft.PowerShell.Security    Get-Credential
Microsoft.PowerShell.Security    Set-ExecutionPolicy
Microsoft.PowerShell.Security    Get-ExecutionPolicy
Microsoft.PowerShell.Security    Get-PfxCertificate
Microsoft.PowerShell.Security    ConvertTo-SecureString
Microsoft.PowerShell.Security    ConvertFrom-SecureString
Microsoft.PowerShell.Utility     Export-Alias
Microsoft.PowerShell.Utility     New-Alias
Microsoft.PowerShell.Utility     Import-Alias
Microsoft.PowerShell.Utility     Set-Alias
Microsoft.PowerShell.Utility     Get-Alias
Microsoft.PowerShell.Utility     Export-Clixml
Microsoft.PowerShell.Utility     Import-Clixml
Microsoft.PowerShell.Utility     Trace-Command
Microsoft.PowerShell.Utility     Show-Command
Microsoft.PowerShell.Utility     Measure-Command
Microsoft.PowerShell.Utility     ConvertTo-Csv
Microsoft.PowerShell.Utility     ConvertFrom-Csv
Microsoft.PowerShell.Utility     Export-Csv
Microsoft.PowerShell.Utility     Import-Csv
Microsoft.PowerShell.Utility     Get-Culture
Microsoft.PowerShell.Utility     Format-Custom
Microsoft.PowerShell.Utility     Get-Date
Microsoft.PowerShell.Utility     Set-Date
Microsoft.PowerShell.Utility     Write-Debug
Microsoft.PowerShell.Utility     Register-EngineEvent
Microsoft.PowerShell.Utility     Write-Error
Microsoft.PowerShell.Utility     Unregister-Event
Microsoft.PowerShell.Utility     Get-Event
Microsoft.PowerShell.Utility     New-Event
Microsoft.PowerShell.Utility     Wait-Event
Microsoft.PowerShell.Utility     Remove-Event
Microsoft.PowerShell.Utility     Get-EventSubscriber
Microsoft.PowerShell.Utility     Invoke-Expression
Microsoft.PowerShell.Utility     Unblock-File
Microsoft.PowerShell.Utility     Out-File
Microsoft.PowerShell.Utility     Get-FormatData
Microsoft.PowerShell.Utility     Export-FormatData
Microsoft.PowerShell.Utility     Update-FormatData
Microsoft.PowerShell.Utility     Out-GridView
Microsoft.PowerShell.Utility     Read-Host
Microsoft.PowerShell.Utility     Get-Host
Microsoft.PowerShell.Utility     Write-Host
Microsoft.PowerShell.Utility     ConvertTo-Html
Microsoft.PowerShell.Utility     ConvertFrom-Json
Microsoft.PowerShell.Utility     ConvertTo-Json
Microsoft.PowerShell.Utility     Format-List
Microsoft.PowerShell.Utility     Update-List
Microsoft.PowerShell.Utility     Import-LocalizedData
Microsoft.PowerShell.Utility     Send-MailMessage
Microsoft.PowerShell.Utility     Add-Member
Microsoft.PowerShell.Utility     Get-Member
Microsoft.PowerShell.Utility     Compare-Object
Microsoft.PowerShell.Utility     Tee-Object
Microsoft.PowerShell.Utility     New-Object
Microsoft.PowerShell.Utility     Measure-Object
Microsoft.PowerShell.Utility     Group-Object
Microsoft.PowerShell.Utility     Select-Object
Microsoft.PowerShell.Utility     Sort-Object
Microsoft.PowerShell.Utility     Register-ObjectEvent
Microsoft.PowerShell.Utility     Write-Output
Microsoft.PowerShell.Utility     Out-Printer
Microsoft.PowerShell.Utility     Write-Progress
Microsoft.PowerShell.Utility     Get-PSBreakpoint
Microsoft.PowerShell.Utility     Enable-PSBreakpoint
Microsoft.PowerShell.Utility     Disable-PSBreakpoint
Microsoft.PowerShell.Utility     Remove-PSBreakpoint
Microsoft.PowerShell.Utility     Set-PSBreakpoint
Microsoft.PowerShell.Utility     Get-PSCallStack
Microsoft.PowerShell.Utility     Export-PSSession
Microsoft.PowerShell.Utility     Import-PSSession
Microsoft.PowerShell.Utility     Get-Random
Microsoft.PowerShell.Utility     Invoke-RestMethod
Microsoft.PowerShell.Utility     Start-Sleep
Microsoft.PowerShell.Utility     Out-String
Microsoft.PowerShell.Utility     Select-String
Microsoft.PowerShell.Utility     ConvertFrom-StringData
Microsoft.PowerShell.Utility     Format-Table
Microsoft.PowerShell.Utility     New-TimeSpan
Microsoft.PowerShell.Utility     Get-TraceSource
Microsoft.PowerShell.Utility     Set-TraceSource
Microsoft.PowerShell.Utility     Add-Type
Microsoft.PowerShell.Utility     Update-TypeData
Microsoft.PowerShell.Utility     Remove-TypeData
Microsoft.PowerShell.Utility     Get-TypeData
Microsoft.PowerShell.Utility     Get-UICulture
Microsoft.PowerShell.Utility     Get-Unique
Microsoft.PowerShell.Utility     Get-Variable
Microsoft.PowerShell.Utility     Remove-Variable
Microsoft.PowerShell.Utility     New-Variable
Microsoft.PowerShell.Utility     Clear-Variable
Microsoft.PowerShell.Utility     Set-Variable
Microsoft.PowerShell.Utility     Write-Verbose
Microsoft.PowerShell.Utility     Write-Warning
Microsoft.PowerShell.Utility     Invoke-WebRequest
Microsoft.PowerShell.Utility     Format-Wide
Microsoft.PowerShell.Utility     Select-Xml
Microsoft.PowerShell.Utility     ConvertTo-Xml

To be continued… 😉

Leave a comment




Legal

The posts on this blog are provided “as is” with no warranties and confer no rights. The opinions expressed on this site are mine and mine alone, and do not necessarily represent those of my employer - WSO2 or anyone else for that matter. All trademarks acknowledged.

© 2007-2014 Dmitry Sotnikov

September 2011
M T W T F S S
 1234
567891011
12131415161718
19202122232425
2627282930