Gör PowerShell Arbete på Andra Operativsystem än Windows?

0
361

Det kan vara mycket frustrerande när din professor säger en sak om PowerShell och olika webbplatser som verkar för att erbjuda fasta bevis för motsatsen. Har PowerShell som faktiskt fungerar på icke-Windows-system eller inte? Idag är SuperUser Q&A-post har svar till en undrande läsare fråga.

Dagens session med frågor Och Svar kommer till oss artighet av SuperUser—en indelning av Stack Exchange, en community-driven gruppering av Q&A sidor.

Frågan

SuperUser läsare FredSavage187 vill veta om PowerShell fungerar på andra operativsystem än Windows:

Min professor i datavetenskap nyligen gav oss en frågesport och en av frågorna var “Sant eller Falskt: PowerShell fungerar på Windows, Mac, och Linux”. Det rätta svaret var “falsk” och han hävdar att Windows PowerShell är ett enda. Men jag hittade ett par webbplatser som säger något annat:

PowerShell är öppen källkod och är tillgänglig på Linux [Microsoft Azure Blogg]

PowerShell Arkiv [GitHub]

Vilket är egentligen rätt? Gör PowerShell för att fungera på Linux och Mac OS samt i Windows?

Gör PowerShell arbete på andra operativsystem än Windows?

Svara

SuperUser bidragsgivare Ben N har svaret för oss:

Ja. Mycket av PowerShell .NÄTET, så att det kan köras på alla operativsystem som har Common Language Runtime (CLR). På Windows, som är den .NET Framework. För andra operativsystem, inklusive Linux, kan du använda CoreCLR, en öppen källkod, plattformsoberoende delmängd av den .NET Framework.

Som du lärde dig i PowerShell arkivet på GitHub, en hel del operativsystem och fördelningar stöds. Till exempel, här är instruktionerna för Ubuntu och en demonstration:

Man kan hävda att inte alla av PowerShell finns i icke-Windows-miljöer eftersom vissa funktioner är beroende av bibliotek som bara finns i Windows. Den ParsedHtml egendom på HtmlWebResponseObject typ som returneras av Invoke-WebRequest, till exempel, är bara användbar på Windows, eftersom det har ett COM-objekt som kommer från en opåverkad bibliotek, mshtml.dll för att vara specifik. På andra plattformar, det finns inget där. Och, naturligtvis, det är cmdlets för att hantera system som bara finns i Windows, som Modern apps (Get-AppxPackage, till exempel).

Fortfarande dock, PowerShell-infrastruktur fungerar perfekt på andra operativsystem, massor av cmdlets kan användas var som helst, och stöd finns bara blir bättre och bättre.

Har något att tillägga till förklaring? Ljudet i kommentarerna. Vill läsa fler svar från andra tech-savvy Stack Exchange-användare? Kolla in den fullständiga diskussionen tråd här.

Bilden Poäng: Jeff Hicks (Petri DET Knowledgebase)