After mulling over it for close to 14 years, it seems Microsoft is finally ready to kill off the Windows Control Panel soon. An official confirmation has been posted on its website.
It is verbose. It’s intended to be readable by untrained people, with a consistent verb-subject format for commands (e.g. Get-ChildItem, Set-Variable), though it turns out that concept doesn’t scale very well and the format gets increasingly broken when you get into the Azure PowerShell commands (New-AzLoadBalancerInboundNatRuleConfig).
The real power of PowerShell is that it can interact with .NET directly (because it is .NET), which allows you to quickly and easily build scripts for anything that uses .NET (like Windows). For instance, you can view or edit registry keys of other systems through a PowerShell remote session (using the .NET RegistryKey class), and set up a loop to edit a registry key across a list of machines remotely (I used to do this while managing on-prem AD groups in my last job, it’s much faster and easier than trying to change registry keys through remote desktop sessions, more reliable because it’s programmatic, and you can easily log the command output and catch any systems that failed to accept the change).
PowerShell might not be what Bash is for the average Linux user, but it’s a massive improvement for managing Windows systems at scale. Anyone who works in corporate IT should learn PowerShell.
It is verbose. It’s intended to be readable by untrained people, with a consistent verb-subject format for commands (e.g. Get-ChildItem, Set-Variable), though it turns out that concept doesn’t scale very well and the format gets increasingly broken when you get into the Azure PowerShell commands (New-AzLoadBalancerInboundNatRuleConfig).
The real power of PowerShell is that it can interact with .NET directly (because it is .NET), which allows you to quickly and easily build scripts for anything that uses .NET (like Windows). For instance, you can view or edit registry keys of other systems through a PowerShell remote session (using the .NET RegistryKey class), and set up a loop to edit a registry key across a list of machines remotely (I used to do this while managing on-prem AD groups in my last job, it’s much faster and easier than trying to change registry keys through remote desktop sessions, more reliable because it’s programmatic, and you can easily log the command output and catch any systems that failed to accept the change).
PowerShell might not be what Bash is for the average Linux user, but it’s a massive improvement for managing Windows systems at scale. Anyone who works in corporate IT should learn PowerShell.