Command.com e CMD.exe vs VBScript e Windows Script Host

Olá,

vou escrever agora sobre uma dúvida que ocorre com frequência entre profissionais de TI ao administrar servidores e estações: dado um problema, qual a ferramenta mais indicada: o prompt de comandos (COMMAND.COM e CMD.EXE) e os scripts feitos em BAT e CMD ou as ferramentas de script mais recentes, o Windows Script Host e os scripts .VBS e .JS?

A resposta, como sempre, não é imediata: depende. E é sobre isso que eu vou escrever.

A idéia principal é tentar identificar no script se vai ser necessário, em sua maioria, executar outros comandos ou processar dados (usando variáveis e outras tecnologias como o WMI e ADSI, por exemplo). Em um arquivo CMD ou BAT simples, é muito mais simples executar um comando e analisar a saída dele, uma vez que para fazer isso basta digitar a linha de comando num arquivo texto, da mesma forma que você digitaria na linha de comando. Num arquivo VBS ou JS são necessários outros passos adicionais para executar um comando, mas é muito mais simples de se fazer algum processamento com variáveis, como por exemplo, trocar todos os caracteres _ por - em uma string.

Esse tipo de desvantagem não existe no PowerShell. Scripts .PS1 aceitam tanto comandos simples em uma linha quanto possuem recursos avançados de linguagens de programação para manipulação de dados. Isso faz dele uma ferramenta completa.

Caso ainda seja necessário criar scripts multiplataforma ou caso você queira aprender uma única linguagem para utilizar em scripts para Windows e Linux, recomendo estudar a linguagem Ruby. Ela é poderosa e ao mesmo tempo possui uma sintaxe simples, que permite um fácil aprendizado mesmo para quem não domina técnicas de programação.

Espero ter ajudado!

Até logo,

Vinicius

Categorias dessa postagem: , , , ,

Comentários

Anônimo : Vinicius, parabenz pelo site muito bom mesmo, gostaria de saber se é possível vc me ajudar a aprender a arte de programar em Script, não tenho dinheiro para boas aquisições de livros e nem muito menos de curso, mais posso usufluir de uma internet rápida para fazer o curso online ou baixar material aula a aula para aprendizagem, e gostaria de saber se posso contar com a sua ajuda não remunerada, sei que pode parecer abuso de minha parte, mais quem sabe vc não encara como um pequeno desafio e futuramente eu estarei aqui contribuindo com modelos e dicas de script's, espero não estar incomodando.

andrellucz@gmail.com
Bsb DF

Grato [30/1/08 12:02 - link]

Janna Rodrigues : Oi Vinicius, assisti ao seu webcast sobre o powershell no win2008 e gostaria de saber se vc poderia me disponibilizar o ppt da apresentação??? meu email: jannapenedo@yahoo.com.br
grata,
Janaina [11/2/08 14:21 - link]

Anônimo : Oi Vinícius. Nosso ambiente era WinNT4.0 e a administração quando necessária eu utilizava BAT/CMD. Bom, estamos com quase todo o ambiente migrado para 2003 e XP e estou com urgência em aprender VBS. A consultoria da Microsoft indicou o curso Windows Scripting Host mas não achei em São Paulo algum lugar que tenha turmas abertas. Vc indica algum lugar para fazer um curso que não seja básico? A minha urgência nisso é pq administramos um ambiente com cerca de 30.000 máquinas entre servidores e estações por AD. Muito obrigado pela ajuda.

Att,

Sergio Ferretto [28/2/08 08:36 - link]

Fabrício : Este comentário foi removido pelo autor. [4/8/08 11:25 - link]

Fabrício : Olá vinícius, gostaria de saber se é possível fazer uma engenharia reversa em um arquivo compilado com extensão '.com'.
Quase infectei meu computador com um arquivo destes, então renomeei pra txt e resolvi por bem dar uma espiada no fonte pra ver que tipo de estrago poderia causar, mas acabei descobrindo que este tipo de arquivo é compilado... É possível visualizar a programação no fonte 'descompilando'? Se quiser posso te passar o fonte pra você analisar, qualquer ajuda, agradeço!

Abraços [4/8/08 11:27 - link]

Anônimo : Olá Vinícius,
Gostaria de saber se tem como você me mandar alguns manuais sobre programação de scripts. Estou precisando criar algumas situação, e achei seu metodo de passar o conhecimento simples. Entendo de logica de programação mas nunca mexi com scripts.

Aguardo uma resposta. Meu email é renato.lima@campello.com.br [30/9/08 16:32 - link]

Amigo Secreto : Olá, esse site é muito bom,excelente, aproveitando vou tirar uma duvida, estou tentando alterar uma linha do registry do windows 2000, mas o .bat que eu fiz funciona bem no xp mas no 2000 ele não altera, coomo posso fazer uma linha de comando para alterar isso no 2000?

Obrigado desde já.

Ricardo [4/11/08 17:06 - link]

Vinicius Canto : Olá,


é complicado dizer o que fazer pra funcionar. Você tem alguma mensagem de erro?


[]s,

Vinicius [17/11/08 21:56 - link]

Vinicius Canto : -- Respondendo as outras mensagens --

@André: Você pode começar com o scriptcenter, do technet. É um site muito bom com alguns tutoriais e vários exemplos bons pra estudar.

@Janna: vou entrar em contato em pvt com vc para enviar o ppt.

@Sergio Ferreto: Infelizmente não conheço nenhuma escola que tenha esse tipo de curso avançado. Já ministrei aulas pra algumas turmas, mas como eu tinha que seguir o material do MOC, era bem básico. Se quiser, podemos conversar sobre o assunto por email.

@Fabrício: Tem sim, mas tudo que você vai conseguir é olhar o fonte dele em Assembly. Você pode até conseguir fazer alguma correspondência pra um código em C ou C++, mas ainda assim o benefício não é tão grande quanto o tempo que vc vai gastar estudando isso. Vale a pena pelo conhecimento, não pra resolver o problema (virus, nesse caso).

@Renato Lima e Ricardo: Vejam a resposta que eu dei pro André [17/11/08 23:27 - link]

Anônimo : Vinicius, parabéns pelo site...
gostaria de saber se é possivel habilitar o driver ansi.sys usando vbscript... não sei como escrever vbscripts mas já usei uns vbscripts prontos pra resolver uns problemas... estou usando winxp e não consegui encontrar um jeito de fazer este driver funfar... pode dar uma ajudinha ai? [8/3/09 15:41 - link]

Rafael Ferreira : Boa tarde,

Vinicius, uso na minha empresa alguns scripts para administrar meu ambiente, sendo que um determinado script nao roda pois uma funcao do meu vbs encerra o mesmo, tem como criar um arquivo VBS so para chamar meus scripts e realizar a funcao de cada um.

Ex:usb_monitor.vbs
auditoria.vbs
Mapeamento.vbs

Ambos em uma unica função? [21/1/10 15:10 - link]

Anônimo : boa tarde vinicius
meu nome e julianderson pereira, sou estagiario numa empresa dk de manaus, AM e ak na empresa eu uso o norton ghost para fazer imagens de computadores, so que eu tenho um grande trabalho de renomear os computadores e colocar no dominio. Cara voce poderia me ajudar em montar um script para rodar nas maquinas locais.
cara eu fico muito grato se voce me ajudar
valew o seu blog e massa!!
email:dril_jsp@hotmail.com [3/2/10 14:08 - link]