29Aug

Est-ce que PowerShell fonctionne sur d'autres systèmes d'exploitation en plus de Windows?

Cela peut être très frustrant quand votre professeur dit une chose à propos de PowerShell et que divers sites Web semblent offrir une solide preuve du contraire. Est-ce que PowerShell fonctionne réellement sur des systèmes non-Windows ou non? Le SuperUser Q & A d'aujourd'hui a une réponse à la question d'un lecteur perplexe.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

La question

lecteur SuperUser FredSavage187 veut savoir si PowerShell fonctionne sur d'autres systèmes d'exploitation en dehors de Windows:

Mon professeur en informatique nous a récemment donné un quiz et une des questions était, "Vrai ou faux: PowerShell fonctionne sur Windows, Mac, etLinux ".La réponse correcte était "faux" et il maintient que PowerShell est une chose Windows uniquement. Mais j'ai trouvé un couple de sites qui disent le contraire:

PowerShell est open source et est disponible sur Linux [Microsoft Azure Blog] Référentiel PowerShell

[GitHub]

Lequel est réellement correct? Est-ce que PowerShell fonctionne sur Linux et Mac OS ainsi que Windows?

PowerShell fonctionne-t-il sur d'autres systèmes d'exploitation que Windows?

La réponse

SuperUser contributeur Ben N a la réponse pour nous:

Oui. Une grande partie de PowerShell est. NET, de sorte qu'il peut s'exécuter sur n'importe quel système d'exploitation qui a le Common Language Runtime( CLR).Sur Windows, c'est le. NET Framework. Pour les autres systèmes d'exploitation, y compris Linux, vous pouvez utiliser CoreCLR, un sous-ensemble multiplateforme open source du. NET Framework.

Comme vous l'avez appris dans le référentiel PowerShell sur GitHub, plusieurs systèmes d'exploitation et distributions sont pris en charge. Par exemple, voici les instructions pour Ubuntu et une démonstration:

On pourrait argumenter que PowerShell n'est pas disponible dans tous les environnements non-Windows puisque certaines fonctionnalités dépendent de bibliothèques trouvées uniquement dans Windows. La propriété ParsedHtml sur le type HtmlWebResponseObject renvoyé par Invoke-WebRequest , par exemple, n'est utile que sous Windows car il contient un objet COM provenant d'une bibliothèque non gérée, mshtml.dll pour être spécifique. Sur d'autres plateformes, il n'y a rien là.Et, bien sûr, il existe des cmdlets pour gérer les systèmes trouvés uniquement dans Windows, comme les applications Modernes( Get-AppxPackage , par exemple).

Pourtant, l'infrastructure PowerShell fonctionne parfaitement sur les autres systèmes d'exploitation, de nombreuses cmdlets sont utilisables partout et le support ne cesse de s'améliorer.

Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.

Crédits image: Jeff Hicks( Base de connaissances IT Petri)