PowerShell is een raamwerk voor taakautomatisering en configuratiebeheer van Microsoft, bestaande uit een opdrachtregel-shell en de bijbehorende scripttaal. Aanvankelijk alleen een Windows-component, bekend als Windows PowerShell, werd het op 18 augustus 2016 open-source en platformonafhankelijk gemaakt met de introductie van PowerShell Core. De eerste is gebouwd op .NET Framework, de laatste op .NET Core.
In PowerShell worden beheertaken over het algemeen uitgevoerd door cmdlets (uitgesproken als command-lets), dit zijn gespecialiseerde .NET-klassen die een bepaalde bewerking implementeren. Deze werken door toegang te krijgen tot gegevens in verschillende datastores, zoals het bestandssysteem of register, die via providers beschikbaar worden gesteld aan PowerShell. Externe ontwikkelaars kunnen cmdlets en providers aan PowerShell toevoegen. Cmdlets kunnen worden gebruikt door scripts en scripts kunnen in modules worden verpakt.
PowerShell biedt volledige toegang tot COM en WMI, waardoor beheerders administratieve taken kunnen uitvoeren op zowel lokale als externe Windows-systemen, evenals WS-Management en CIM voor beheer van externe Linux-systemen en netwerkapparaten. PowerShell biedt ook een hosting-API waarmee de PowerShell-runtime kan worden ingebed in andere applicaties. Deze toepassingen kunnen vervolgens de PowerShell-functionaliteit gebruiken om bepaalde bewerkingen te implementeren, inclusief de bewerkingen die via de grafische interface worden weergegeven. Deze mogelijkheid is gebruikt door Microsoft Exchange Server 2007 om zijn beheerfunctionaliteit als PowerShell-cmdlets en providers bloot te leggen en de grafische beheertools te implementeren als PowerShell-hosts die de nodige cmdlets aanroepen. Andere Microsoft-applicaties, waaronder Microsoft SQL Server 2008, stellen ook hun beheerinterface bloot via PowerShell-cmdlets.