| Welcome to Professional Windows PowerShell Programming.
Way back in 2003, I attended a talk at a conference center at Microsoft by some engineers from the Microsoft Management Console team who were giving a demonstration of a prototype enhancement to MMC. The prototype was one of the early murmurs of Microsoft’s response to the deluge of customer feedback they’d received about the Windows administrative user experience after the delivery of their first truly Internet-focused server operating system, Windows 2000 Server. The feedback wasn’t all good.
Windows 2000 Server started its long evolution as a text-based file manager for DOS. During the bulk of its development, there was simply no idea that anyone would use it for anything other than checking their mail and organizing a 20-megabyte hard disk. As a result, the management story for Windows 2000 Server was provided in The Windows Way, which was a rich interactive experience, a full set of native and COM APIs, and no bridge between the two. In Linux, you could write a shell script to configure your mail and DNS servers; in Windows, you had to either do it manually or learn C++ and COM.
The incorporation of Visual Basic Script and JavaScript into Windows served this niche to a certain extent, but never really brought parity between the GUI experience and the command-line experience. Since these scripting languages interact with the operating system through a subset of COM, and a GUI application can use all of COM, call the Win32 API, and (in the case of certain programs such as Task Manager) call directly into the native kernel API, the capabilities of Windows scripts were always eclipsed by what was provided in the GUI. |