Windows PowerShell™ är ett kommandoradsskal som är paketerat med de senaste Windows®-operativsystemen. Programmet använder ett kommandoradsgränssnitt och ett skriptspråk byggt på Microsofts .NET™-ramverk. Verktyget är utformat för att tillåta avancerade användare och systemadministratörer att utföra avancerade funktioner som serveradministration, konfiguration av operativsystem eller programvaruapplikationer och andra uppgifter som fjärrdatorunderhåll. Windows PowerShell™ ersätter Microsofts tidigare kommandoradsskal, MS-DOS®, som krävde kommandotolkarna cmd.exe och command.com för att köra operativsystemet. Många Microsoft® PowerShell™-användare framhåller dess prestanda och användbarhet som överlägsen sina föregångare och konkurrenter.
Windows PowerShell™ utvecklades först 2006 för operativsystemen Windows Server® och XP, även om verktyget inte var förinstallerat eller paketerat med dessa system. Microsoft döpte från början projektet till Monad, men ändrade det till MSH, sedan Microsoft® Command Shell innan det slutligen bestämde sig för namnet PowerShell™ 1.0. Applikationen distribuerades ursprungligen som ett Release to Web-paket (RTW) i november 2006. Microsoft® förinstallerade inte PowerShell™ med Windows Vista® utan utvecklade senare en version av PowerShell™ som var kompatibel med Vista® och tillgänglig för nedladdning som ett RTW-paket. Operativsystemen Windows 7® och Server® 2008 inkluderar PowerShell™ som en förinstallerad komponent.
Windows PowerShell™ använder kommandon som kallas cmdlets, vilket är en förkortning för command-lets. Dessa enkla, logiska kommandon följer en verb-substantiv namnkonvention som är avsedd att ta bort osäkerhet om varje cmdlets syfte. PowerShell™ är förkonfigurerad med över 100 cmdlets – fler inbyggda kommandon än något annat skal. Faktum är att vissa av de inbyggda cmdletarna är baserade på välbekanta kommandon från MS-DOS® och andra kommandoradsskal som Unix®-skalet, Bash.
Till exempel, om en användare skriver ”dir” och trycker på vagnretur i PowerShell™, kommer programmet att returnera en kataloglista, som är fallet i MS-DOS®. På samma sätt, genom att skriva ”pwd” och trycka på vagnretur i PowerShell™ får applikationen visa den aktuella katalogen, vilket också är sant i Unix®. Dessutom tillåter PowerShell™ användare att skapa sina egna alias för favoritkommandon, vilket i huvudsak tillåter individer att ställa in och använda vilken kommandosyntax som helst.
PowerShell™ är Microsofts svar på en värld av IT-experter och avancerade datoranvändare som tyckte att MS-DOS® var svagt och problematiskt och som uppskattade kraften i Unix® kommandoradsverktyg. Många experter är överens om att PowerShell™ är det första Microsoft® kommandoradsskal som kan konkurrera med sina Unix®-motsvarigheter. Den största skillnaden mellan Unix®-skal och PowerShell™ är den senares användning och manipulering av objekt, i motsats till endast text, och dess utnyttjande av .NET™-ramverket.