Finally, one month ago, Powershell Core became Generally Available (GA) and we would like you to show some of the differences between PowerShell and PowerShell Core and together understand why these are important and how it could possibly affect you work.
But let’s go back in time when PowerShell Core version 6.0 was first announced on August 18th, 2016. As you noticed the version number bigger than the 5 o was showing Microsoft intentions of moving PowerShell realm from a pure proprietary tool limited to Microsoft Windows Operating Systems into a real OpenSource and multi-platform technology.
First and foremost we encourage you to try it. Please have a look to our previous article on how to install powershell core on your operating system.
PowerShell and PowerShell Core can work side-by-side
This is very important for all your users.. You can safely deploy PowerShell Core and be sure that it will not break nothing on your system because this is not an in-place upgrade but a separate installer of a different tool using the same language, syntax and most of the same cmd-lets.
Different Distribution
PowerShell is included in your Windows OS and available just for Windows.
PowerShell Core source code and installers are available on GitHub for any OS.
Different Executable
PowerShell
1 |
powershell.exe |
PowerShell Core
1 2 |
pwsh.exe #for windows pwsh #for linux/mac os |
Different .Net Runtime
Powershell is built on the top of .Net Framework.
Powershell Core is built on the top of .Net Core.
Different Icon
As you can see PowerShell and PowerShell Core have different icons, the darker one for PowerShell Core.
Different Logging
PowerShell uses the Windows Event Viewer> Windows application > Windows PowerShell.
Powershell core uses the native logging system for the OS.
Cmd-let comparison
If we compare the number of cmd-lets available between Powershell v5.1 and Powershell Core 6.0.1 there are more than 1500 cmdlet missing.
If we compare the cmdlets ofpowershell core on windows and powershell core on linux we can count more than 100 cmd-lets missing.
Powershell Core on Windows has still more commands (109 more than Linux)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
A: B: C: ConvertFrom-SddlString D: Disable-PSTrace Disable-PSWSManCombinedTrace Disable-WSManTrace E: Enable-PSTrace Enable-PSWSManCombinedTrace Enable-WSManTrace F: G: Get-LogProperties H: I: J: K: L: M: mkdir N: O: P: Q: R: S: Set-LogProperties Start-Trace Stop-Trace T: U: V: W: X: Y: Z: Connect-PSSession Connect-WSMan Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Enable-PSRemoting Enable-PSSessionConfiguration Enable-WSManCredSSP Enter-PSHostProcess Exit-PSHostProcess Export-BinaryMiLog Get-Acl Get-AuthenticodeSignature Get-CimAssociatedInstance Get-CimClass Get-CimInstance Get-CimSession Get-CmsMessage Get-ComputerInfo Get-PSHostProcessInfo Get-PSSessionCapability Get-PSSessionConfiguration Get-Service Get-WinEvent Get-WSManCredSSP Get-WSManInstance Import-BinaryMiLog Invoke-CimMethod Invoke-WSManAction New-CimInstance New-CimSession New-CimSessionOption New-FileCatalog New-PSSessionConfigurationFile New-PSSessionOption New-Service New-WinEvent New-WSManInstance New-WSManSessionOption Protect-CmsMessage Receive-PSSession Register-CimIndicationEvent Register-PSSessionConfiguration Remove-CimInstance Remove-CimSession Remove-Service Remove-WSManInstance Rename-Computer Restart-Computer Restart-Service Resume-Service Set-Acl Set-AuthenticodeSignature Set-CimInstance Set-PSSessionConfiguration Set-Service Set-TimeZone Set-WSManInstance Set-WSManQuickConfig Start-Service Stop-Computer Stop-Service Suspend-Service Test-FileCatalog Test-PSSessionConfigurationFile Test-WSMan Unblock-File Unprotect-CmsMessage Unregister-PSSessionConfiguration |
Happy PowerShell!