Pode ser muito frustrante quando seu professor diz algo sobre o PowerShell e vários sites parecem oferecer provas sólidas do contrário. O PowerShell realmente funciona em sistemas não Windows ou não? A postagem de hoje com perguntas e respostas sobre o superusuário tem a resposta para a pergunta de um leitor intrigado.
A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser – uma subdivisão do Stack Exchange, um grupo de sites de perguntas e respostas voltado para a comunidade.
A questão
O leitor de superusuário FredSavage187 deseja saber se o PowerShell funciona em outros sistemas operacionais além do Windows:
Meu professor de ciência da computação recentemente nos deu um teste e uma das perguntas era: “Verdadeiro ou falso: o PowerShell funciona no Windows, Mac e Linux”. A resposta correta foi “falsa” e ele afirma que o PowerShell é uma coisa única do Windows. Mas encontrei alguns sites que dizem o contrário:
PowerShell é de código aberto e está disponível no Linux [Microsoft Azure Blog]
Repositório PowerShell [GitHub]
Qual está realmente correto? O PowerShell funciona no Linux e Mac OS, bem como no Windows?
O PowerShell funciona em outros sistemas operacionais além do Windows?
A resposta
O colaborador do SuperUser Ben N tem a resposta para nós:
Sim. Muito do PowerShell é .NET, portanto, pode ser executado em qualquer sistema operacional que tenha o Common Language Runtime (CLR). No Windows, é o .NET Framework. Para outros sistemas operacionais, incluindo Linux, você pode usar o CoreCLR , um subconjunto de plataforma cruzada de código aberto do .NET Framework.
Como você aprendeu no repositório do PowerShell no GitHub, alguns sistemas operacionais e distribuições são compatíveis. Por exemplo, aqui estão as instruções para o Ubuntu e uma demonstração :
Pode-se argumentar que nem todo o PowerShell está disponível em ambientes não Windows, pois alguns recursos dependem de bibliotecas encontradas apenas no Windows. A propriedade ParsedHtml no tipo HtmlWebResponseObject retornado por Invoke-WebRequest , por exemplo, só é útil no Windows porque contém um objeto COM que vem de uma biblioteca não gerenciada, mshtml.dll para ser específico. Em outras plataformas, não há nada lá. E, claro, existem cmdlets para gerenciar sistemas encontrados apenas no Windows, como aplicativos modernos ( Get-AppxPackage , por exemplo).
Mesmo assim, a infraestrutura do PowerShell funciona perfeitamente bem em outros sistemas operacionais, muitos dos cmdlets podem ser usados em qualquer lugar e o suporte está cada vez melhor.
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui .
Créditos de imagem: Jeff Hicks (Petri IT Knowledgebase)