¿PowerShell funciona en otros sistemas operativos además de Windows?

Puede ser muy frustrante cuando su profesor dice algo sobre PowerShell y varios sitios web parecen ofrecer pruebas sólidas de lo contrario. ¿PowerShell realmente funciona en sistemas que no son Windows o no? La publicación de preguntas y respuestas del superusuario de hoy tiene la respuesta a la pregunta de un lector desconcertado.

La sesión de preguntas y respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad.

La pregunta

El lector de superusuario FredSavage187 quiere saber si PowerShell funciona en otros sistemas operativos además de Windows:

Mi profesor de ciencias de la computación nos dio recientemente un cuestionario y una de las preguntas fue, «Verdadero o falso: PowerShell funciona en Windows, Mac y Linux». La respuesta correcta fue “falsa” y sostiene que PowerShell es algo exclusivo de Windows. Pero encontré un par de sitios web que dicen lo contrario:

PowerShell es de código abierto y está disponible en Linux [Blog de Microsoft Azure]

Repositorio de PowerShell [GitHub]

¿Cuál es realmente la correcta? ¿PowerShell funciona en Linux y Mac OS, así como en Windows?

¿PowerShell funciona en otros sistemas operativos además de Windows?

La respuesta

El colaborador de superusuario Ben N tiene la respuesta para nosotros:

Si. Gran parte de PowerShell es .NET, por lo que puede ejecutarse en cualquier sistema operativo que tenga Common Language Runtime (CLR). En Windows, ese es .NET Framework. Para otros sistemas operativos, incluido Linux, puede usar CoreCLR , un subconjunto multiplataforma de código abierto de .NET Framework.

Como aprendió en el repositorio de PowerShell en GitHub, se admiten bastantes sistemas operativos y distribuciones. Por ejemplo, aquí están las instrucciones para Ubuntu y una demostración :

Se podría argumentar que no todo PowerShell está disponible en entornos que no son de Windows, ya que algunas características dependen de bibliotecas que solo se encuentran en Windows. La propiedad ParsedHtml en el tipo HtmlWebResponseObject devuelto por Invoke-WebRequest , por ejemplo, solo es útil en Windows porque contiene un objeto COM que proviene de una biblioteca no administrada, mshtml.dll para ser específico. En otras plataformas, no hay nada ahí. Y, por supuesto, existen cmdlets para administrar sistemas que solo se encuentran en Windows, como las aplicaciones modernas ( Get-AppxPackage , por ejemplo).

Sin embargo, la infraestructura de PowerShell funciona perfectamente bien en otros sistemas operativos, muchos de los cmdlets se pueden usar en cualquier lugar y el soporte solo está mejorando.


¿Tiene algo que agregar a la explicación? Habla en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí .

Relacionado:  ¿Qué es la aplicación de inicio de sesión de Windows (winlogon.exe) y por qué se ejecuta en mi PC?

Créditos de imagen: Jeff Hicks (Petri IT Knowledgebase)