Quais são as vantagens do Powershell sobre o cygwin / unix-shell

9

A diferença óbvia de que conheço é a capacidade de fazer interface com determinados produtos da Microsoft, como o Exchange. Mas, para quem não precisa administrar esses produtos, quais são as vantagens do Powershell? Quais são as razões para aprender PowerShell (supondo que eu seja fluente em bash e cygwin)?

Moshe
fonte

Respostas:

18

A vantagem mais óbvia: desde que nenhuma saída de texto (ou um comando herdado) esteja envolvida em um pipeline, você não está movendo o texto pelos canais, mas instâncias de objetos da estrutura .NET, com todas as suas propriedades e métodos.

Isso permite um manuseio de pipeline mais expressivo e menos ambíguo, que também não sofre influência das configurações de local e idioma (por exemplo, pense nos formatos de data ou número e como você deve tratá-los como strings normalmente).

Isso também significa que você tem acesso a grande parte dos recursos da estrutura .NET em um ambiente de script.

Tomalak
fonte
6

Sem entrar em julgamentos de valor sobre o paradigma, as principais vantagens do PowerShell são a integração e incumbência de .Net - a partir do servidor Windows 2008 em diante, ele é empacotado por padrão e carregado em service packs no 2003 e 2003 R2.

Para ser justo, existem várias outras opções para scripts - por exemplo, Perl e Python. O Python também oferece a opção de usar o IronPython, se você quiser integração nativa com .Net. De fato, o IronPython se instalará satisfatoriamente apenas soltando-o em um diretório. Você pode agrupá-lo trivialmente em um aplicativo sem a necessidade de uma etapa de instalação separada.

A força principal do Powershell é um pouco de uma faca de dois gumes. Embora o fluxo de objetos .net seja bastante útil e tenha suas vantagens, ele coloca muito mais suposições sobre a capacidade dos componentes de jogar bem com a estrutura. Para que isso realmente funcione, você precisa agrupar as coisas com os cmdlets. Embora a saída de texto seja um nível um pouco mais baixo e exija análise, ela coloca menos ônus nos componentes para jogar bem com a estrutura.

Com o tempo, eu esperaria ver muito mais do ecossistema do Windows (componentes de MS e de terceiros) fornecidos com wrappers de cmdlet para que eles trabalhem com o Powershell. Quando isso acontece, o caso do PowerShell se tornará muito mais forte.

Historicamente, uma das principais fraquezas tradicionais do Windows, do ponto de vista administrativo, é o baixo suporte a scripts. A MS reconheceu isso há alguns anos e, após algumas tentativas esfarrapadas (por exemplo, WSH), o Powershell é o esforço mais credível da MS até agora para corrigir essa deficiência.

ConcernedOfTunbridgeWells
fonte
2

Eu acho que a maior vitória para o PowerShell é que você pode canalizar qualquer coisa para qualquer coisa sem precisar analisar o texto e / ou grok sed e awk. Sem trazer esses objetos desagradáveis ​​para a equasão, pense no PowerShell como tendo sed e awk automáticos para vincular comandos em um pipeline.

x0n
fonte
2

Vantagens: -

  1. Automação de tarefas: - Tarefas como adicionar um usuário a 1000 máquinas é um trabalho tedioso manualmente. Mas com a ajuda do powershell, você precisa escrever apenas um script simples e esse script é executado, ele irá configurar automaticamente todos os clientes. Assim, economiza tempo repetindo as etapas automaticamente. Os scripts de backup \ restauração do Windows PowerShell podem ser desenvolvidos e agendados (com o Agendador de tarefas do Windows), enquanto a Administração Central é usada para backups e restaurações de uso único. O Windows PowerShell tem a vantagem de executar em snapshots SQL em vez do banco de dados de produção. Um dos parâmetros do comando Windows PowerShell fará com que um instantâneo SQL seja gerado e, em seguida, o Windows PowerShell executará a ação no instantâneo em vez do banco de dados de produção. Isso reduzirá o impacto de recursos da operação de backup no ambiente de produção. Com o Windows PowerShell, os administradores do SharePoint terão um controle mais granular das opções para backup ou restauração.

  2. Melhoria nos recursos de comunicação remota: - O significado é duplo; em primeiro lugar, as áreas de trabalho do Windows 7 podem se comunicar com o servidor usando os comandos do PowerShell. Como resultado, os técnicos com laptops com Windows 7 podem configurar seus servidores remotamente executando scripts do PowerShell. Em segundo lugar, os scripts de logon do cliente escritos no PowerShell, que residem no servidor, podem ser executados no Windows 7 com mais facilidade. Também usando o PowerShell, podemos controlar facilmente as máquinas remotas, executar tarefas importantes nelas e aplicar essas alterações facilmente em larga escala. A comunicação remota usa os recursos de rede. Portanto, quando trabalharíamos com o PowerShell, não estamos usando a GUI e, portanto, a largura de banda necessária para uma determinada tarefa é reduzida e o problema de sobrecarga de rede é resolvido.

  3. Consistência: - Se você tiver um procedimento definido para concluir uma tarefa, o Windows Powershell garantirá que você nunca perca uma etapa, automatize o máximo que puder e o Powershell solicitará o que não pode ser automatizado.

  4. Suporte .NET: - O Powershell suporta a estrutura .NET. Portanto, todas as funções do sistema podem ser facilmente adicionadas aos scripts do PowerShell e, portanto, são uma ajuda para o programador no desenvolvimento dos scripts. Assim, automatizar as tarefas da VDI é muito mais fácil, mais simples e eficiente.

  5. Menos trabalho manual: - O administrador agora pode criar, excluir ou modificar as configurações de máquinas virtuais remotamente, apenas escrevendo os scripts. Ele não precisa ir ao computador individual e fazer o trabalho. Os scripts escritos também são aceitáveis ​​em todos os computadores. Portanto, o administrador não precisa reescrevê-los repetidamente.

  6. Reutilização: - Os scripts escritos uma vez para executar uma tarefa específica podem ser armazenados para fins posteriores e também podem ser combinados com outros scripts para executar tarefas diferentes. Portanto, tarefas repetitivas podem ser executadas de uma maneira muito mais simples, basta executar os scripts. Isso economiza tempo e dinheiro dos administradores na configuração das máquinas.

  7. Suporte de pipelining: - A maior vitória para o PowerShell é que você pode canalizar qualquer coisa para qualquer coisa sem precisar analisar o texto. Você pode fornecer a saída de um comando como uma entrada para o novo conjunto e, assim, resolver as tarefas complexas.


fonte
0

Não é garantido que o Cygwin esteja disponível para todas as versões do Windows. Última vez que verifiquei, era questionável em máquinas de 64 bits. O Powershell está se tornando o shell de comando padrão do Windows e oferecerá acesso "nativo" a todos os recursos em uma máquina Windows.

Eric Z Beard
fonte
Eu uso o cygwin no Vista de 64 bits, funciona perfeitamente.
Lajos