29Aug

Fungerar PowerShell på andra operativsystem förutom Windows?

Det kan vara väldigt frustrerande när din professor säger en sak om PowerShell och olika webbplatser tycks erbjuda solida bevis motsatsen. Fungerar PowerShell faktiskt på icke-Windows-system eller inte? Dagens SuperUser Q & A-inlägg har svaret på en förbryllad läsarens fråga.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare FredSavage187 vill veta om PowerShell fungerar på andra operativsystem förutom Windows:

Min datorvetenskapliga professor gav oss nyligen en frågesport och en av frågorna var "True eller False: PowerShell arbetar på Windows, Mac ochLinux”.Det korrekta svaret var "falskt" och han hävdar att PowerShell är enbart Windows. Men jag hittade ett par webbplatser som säger något annat:

PowerShell är öppen och finns på Linux [Microsoft Azure Blog]

PowerShell Repository [GitHub]

Vilken är faktiskt korrekt? Fungerar PowerShell på Linux och Mac OS samt Windows?

fungerar PowerShell på andra operativsystem förutom Windows?

Svaret

SuperUser-bidragare Ben N har svaret för oss:

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

Som du lärde dig i PowerShell-förvaret på GitHub, stöds ett flertal operativsystem och distributioner. Det här är till exempel instruktionerna för Ubuntu och en demonstration:

Man kan hävda att inte alla PowerShell är tillgängliga i andra Windows-miljöer, eftersom vissa funktioner är beroende av bibliotek som bara finns i Windows. ParsedHtml -egenskapen på HtmlWebResponseObject -typen returnerad av Invoke-WebRequest är till exempel bara användbar på Windows eftersom det har ett COM-objekt som kommer från ett omanagrat bibliotek, mshtml.dll för att vara specifik. På andra plattformar finns det inget där. Och det finns naturligtvis cmdlets för att hantera system som bara finns i Windows, till exempel Moderna appar( Get-AppxPackage , till exempel).

PowerShell-infrastrukturen fungerar ändå perfekt på andra operativsystem, många cmdlets kan användas var som helst och stödet blir bara bättre.

Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.

Bildkrediter: Jeff Hicks( Petri IT Knowledgebase)