Padronizando em uma única linguagem de script do Windows

1

Eu não tinha certeza se isso seria melhor no StackOverflow ou não, sinta-se à vontade para movê-lo se você achar que é mais apropriado lá.

De qualquer forma, para a questão ...

A situação
Atualmente, temos uma mistura de arquivos em lote do VBScript, do DOS e um punhado de scripts do PowerShell executando várias tarefas nos negócios.

As tarefas vão desde descobrir quem está conectado a uma máquina específica por IP até processamento de texto bastante complexo e consultas de banco de dados (SQL Server 2005/2008)

O VbScript não é realmente uma ótima linguagem, embora tenha um suporte de depuração muito bom, o PowerShell é muito melhor, mas o suporte a depuração (gratuito) é bastante rudimentar e quanto menos falar sobre arquivos em lote, melhor

A questão
Sem querer começar uma guerra de chamas (comentários objetivos apenas, por favor!) Eu gostaria de padronizar em uma única linguagem de script, os requisitos são: -

  • Deve funcionar bem com o Windows
  • Bom suporte a depuração (algo tão bom quanto o Visual Studio ou o Eclipse seria perfeito, eu me contentaria com algo tão bom quanto o atual depurador VBScript)
  • Boa gestão de exceções
  • Bom gerenciamento de memória (coleta de lixo)
  • Bom suporte para conexão com bancos de dados (SQL Server)
  • suporte COM seria uma vantagem
  • De preferência, uma leve (ou não) instalação para que possamos colocá-lo em servidores sem quebrar nada
  • O desempenho não é essencial, são principalmente trabalhos noturnos
  • Fácil (ish) aprender por uma empresa usada principalmente em C # / Java / VBScript / VBA

Eu ficaria muito interessado em seus pensamentos / recomendações

    
por David Hayes 02.12.2009 / 19:41

6 respostas

6

PowerShell 2 , sem dúvidas. Eu acho que ele atende a todos os seus requisitos, e seu Ambiente de Scripts Integrado faz realce de sintaxe e tem bom suporte a depuração, incluindo pontos de interrupção e execução passo-a-passo.

    
por 02.12.2009 / 20:35
2

a menos que você esteja procurando por especificidades de wmi e dotnet, eu descobri que o python é uma excelente ferramenta de script para todas as plataformas. cobre quase todas as suas necessidades

caso contrário, suponho que o powershell é o caminho a seguir, embora exija que o framework dotnet seja instalado.

    
por 02.12.2009 / 20:20
1

Eu não gosto do ISE, mas estou estragado com o IDE do Visual Studio para outro desenvolvimento. Algumas pessoas gostam da substituição gratuita da PowerGUI: link . Parece ter funcionalidade semelhante ao IntelliSense.

A única objeção que posso pensar para o PowerShell é que requer a estrutura e requer a estrutura 3.5 para alguns recursos avançados da V2. Não é exatamente um componente leve, se você precisar implantá-lo em centenas ou milhares de máquinas.

    
por 02.12.2009 / 22:08
1

Como um grande fator na resposta, eu perguntaria qual linguagem de script é mais fácil de implantar em seu ambiente. Considere as seguintes linguagens de script e uma infraestrutura totalmente Windows:

  • CMD (batchfiles): já implantado em todos os sistemas, porque está embutido no Windows desde sempre.
  • vbscript : já implantado em todos os sistemas, porque está embutido no Windows desde o Win98.
  • PowerShell : criado para o Windows 2008R2, o Windows 7 e qualquer outro dispositivo com o Exchange 2007 em execução. Deve ser implementado em todos os outros sistemas em que você espera que os scripts sejam executados - mas não nos sistemas que você consultará a partir de scripts em execução em outro lugar. O EG Powershell pode ser executado em um sistema Win7 chamado hostA e propriedades de consulta do hostB executando o Windows XP que não possui o Powershell instalado.
  • Perl : deve ser implantado em todos os sistemas em que os scripts serão executados.
  • Python : deve ser implantado em todos os sistemas em que os scripts serão executados.

Então, a menos que eu quisesse lidar com a implantação de um dos últimos mecanismos de script em todos os meus sistemas, eu padronizaria em VBscript e / ou CMD . Dos dois, vbscript é longe mais poderoso, embora como um script em lote antigo, eu ainda tenho uma fraqueza para o CMD. Quando pode fazer o trabalho, geralmente requer muito menos digitação! Mas se eu tivesse que escolher, seria vbscript para a legibilidade e flexibilidade. vbscript IDE como o PrimalScript estão a apenas uma distância do Google.

Se eu pudesse me dar ao luxo de criar um ambiente completamente novo em que todos os sistemas executassem Win2008R2 e Win7, padronizaria o PowerShell .

    
por 19.12.2009 / 07:58
0

Estamos usando o VBScript há anos e só recentemente começamos a investigar o PowerShell (V2). O VBScript tem suas deficiências, mas nos serviu bem, então não vejo razão para abandonar nossos investimentos anteriores. Por outro lado, o PowerShell é o padrão de linguagem de script do Windows e o suporte certamente ficará melhor. Então, para nós, será um ambiente de script misto para nós nos próximos anos.

BTW, quando olho para sua lista de requisitos, o PowerShell preenche facilmente todos, exceto aquele sobre o suporte de depuração e o de gerenciamento de exceção (mas o tratamento de erros do VBScript também não é ótimo). Além disso, uma grande vantagem do PowerShell sobre o VBScript é seu acesso ao .Net Framework.

    
por 02.12.2009 / 20:16
0

Eu usaria o Visual C # 2005 ou o 2008 Express. Ele atende a todos os seus requisitos, as versões Express do Visual Studio são gratuitas (como na cerveja), o .NET Framework (especialmente se você selecionar 2005) provavelmente já está em seus servidores e permite acessar alguns dos seus desenvolvimentos existentes. habilidades para algumas coisas realmente extravagantes.

Claro que não é realmente "script" como tal, mas eu pessoalmente acho que a adição (opcional) de elementos GUI pode ser vantajosa para outras tarefas.

    
por 02.12.2009 / 20:20