
Può essere molto frustrante quando il tuo professore dice una cosa su PowerShell e vari siti Web sembrano offrire una solida prova del contrario. PowerShell funziona davvero su sistemi non Windows o no? Il post di domande e risposte di SuperUser di oggi ha la risposta alla domanda perplessa del lettore.
La sessione di domande e risposte di oggi ci viene fornita da SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte guidato dalla community.
La domanda
Il lettore SuperUser FredSavage187 vuole sapere se PowerShell funziona su altri sistemi operativi oltre a Windows:
Il mio professore di informatica di recente ci ha fatto un quiz e una delle domande era: “Vero o falso: PowerShell funziona su Windows, Mac e Linux”. La risposta corretta era “falsa” e sostiene che PowerShell è una cosa unica di Windows. Ma ho trovato un paio di siti Web che dicono diversamente:
PowerShell è open source ed è disponibile su Linux (Blog di Microsoft Azure)
Repository PowerShell (GitHub)
Quale è effettivamente corretto? PowerShell funziona su Linux, Mac OS e Windows?
PowerShell funziona su altri sistemi operativi oltre a Windows?
La risposta
Collaboratore SuperUser Ben N ha la risposta per noi:
Sì. Gran parte di PowerShell è .NET, quindi può essere eseguito su qualsiasi sistema operativo che ha Common Language Runtime (CLR). Su Windows, questo è .NET Framework. Per altri sistemi operativi, incluso Linux, è possibile utilizzare CoreCLR, un sottoinsieme open source e multipiattaforma di .NET Framework.
Come hai appreso nel repository PowerShell su GitHub, sono supportati diversi sistemi operativi e distribuzioni. Ad esempio, ecco le istruzioni per Ubuntu e una dimostrazione:
Si potrebbe sostenere che non tutta PowerShell è disponibile in ambienti non Windows poiché alcune funzionalità dipendono dalle librerie presenti solo in Windows. Il ParsedHtml proprietà sul HtmlWebResponseObject tipo restituito da Invoke-WebRequest, ad esempio, è utile solo su Windows perché contiene un oggetto COM proveniente da una libreria non gestita, Mshtml.dll essere specifici. Su altre piattaforme, non c'è nulla lì. E, naturalmente, ci sono cmdlet per gestire i sistemi trovati solo in Windows, come le app Modern (Get-AppxPackage, per esempio).
Tuttavia, l'infrastruttura di PowerShell funziona perfettamente su altri sistemi operativi, molti cmdlet sono utilizzabili ovunque e il supporto sta solo migliorando.
Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere altre risposte da altri utenti esperti di Stack Exchange? Dai un'occhiata al thread completo di discussione qui.
Crediti immagine: Jeff Hicks (Petri IT Knowledgebase)

