PowerShell: History behind the invention
Microsoft started with operating systems with MS DOS where batch programming language was only option for system admins (Batch been there even before MS-DOS though).
As batch programming was quite complex, not user friendly and limited, Microsoft introduced Windows Script host with Windows 98 (command line version was cscript.exe, windows version was wscript.exe), which gave some sophistication about programming for sysadmin tasks but it remained limited to all the commands available in command prompt. Also the documentation was tedious and rather than helping it became an attack vector for most of the part.
Microsoft played with netsh and wmic as well in coming days, but These options were still limited in comparison to full-fledged programming languages and also in terms of access to internal windows configuration and automation. Considering the fact that BASH was quite popular in Unix world and was capable of handling everything configuration/automation wise, there was a need to have a similar option in windows world competition wise. Challenge was, most of these things were already written in .Net, which was the language Microsoft developed and promoted over years and baked deep within the windows systems.
Microsoft got involved with Intel for one of their projects and worked to port KornShell, which a UNIX shell, targeted towards system administration, job scheduling but the project later got abandoned as Intel found another way. But before that it gave the idea to Microsoft about creating a similar general-purpose solution at their end and they already had a fully funded team to back that idea under Jeffery Snover.
In 2002, Microsoft started working on Microsoft Shell or MSH and a whitepaper with titled "Monad Manifesto" came in existence. Jeffrey gave the idea about fundamental difference in Windows and Unix shell approaches, which was Unix considers everything as a text file while Windows considers everything as an API returning structured data. After a couple of pvt and public beta version, PowerShell came into existence in 2006.
领英推荐
It still took couple of years and a new version PowerShell 2.0, before it started shipping in 2009 as fundamental part of Windows Operating System with Windows 7/2008 R2. PowerShell was created majorly on top of .net fundamentals as Microsoft didn't want to reinvent the wheel and wanted to use what's already there. PowerShell cmdlets are mostly VB.net or c# (considered as definition language for .Net framework) code behind the same.
So when .Net moved towards cross platform with .net core, so was the PowerShell moving towards cross platform with PowerShell core. Development of Windows PowerShell seized post version 5.1 and even though it continues to be supported and be part of any operating system rolling out, its not being developed and no new feature additions coming for the same.
PowerShell core 6 despite of having most of Windows PowerShell was not completely feature equivalent to that of 5.1, no matter what the version number may make you believe. Even PowerShell 7.x today which has come closure almost but there might still be things, which PowerShell 5.1 can do but 7.x can't but now it's in rare cases only and that's where PowerShell future is
?
To be continued ......
Fascinating insight into the evolution of system admin tools—PowerShell's history really underscores the importance of adapting to new technologies.