Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar

Criando meus scripts: parte 3 de 3

Vinicius Canto

Olá pessoal,

Esta é o terceiro e último artigo sobre as técnicas básicas sobre scripting. Vamos ver algumas técnicas mais avançadas...

Tarefas comuns com o Windows Script Host

Vou mostrar agora como automatizar algumas tarefas comuns utilizando scripts e os conceitos já aprendidos até agora. São dois exemplos simples, mas que demonstram como utilizar recursos do próprio WSH para facilitar a vida de um administrador

O WScript.WSHShell

O WSHShell é um objeto que permite acesso direto ao shell do Windows. Ele possui métodos e propriedades básicas para a criação de qualquer script, como executar programas, modificar o registro, gerar eventos no log de eventos do computador, entre outros.

Para se familiarizar com o conteúdo que veremos adiante, recomendo que leia as informações sobre os métodos e propriedades do objeto WSHShell no link abaixo:

http://msdn.microsoft.com/library/en-us/script56/html/wsoriWshShellObjectPropMeth.asp

Imagine a seguinte situação: você é um administrador que precisa criar um script de logon, de forma que um programa seja executado sempre após o logon do usuário. Vamos analisar este problema.

Uma das formas de resolver tal problema é criar um script que carrega um programa e atribuir como script de logon dos usuários, seja nas propriedades dele no AD ou por uma GPO.

Veja o script abaixo:

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "\\server\share\programa.exe"

O script acima resolve o problema. No entanto, ele possui um problema: ele executa o aplicativo em primeiro plano, e todas as informações são exibidas na tela, o que costuma confundir os usuários. Outro detalhe é que o script apenas é chama o programa e continua sendo executado. Em algumas situações, pode ser necessário executar o programa e somente depois dele ter terminado continuar o script. Esses dois problemas podem ser resolvidos modificando um pouco o script. Veja:

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "\\server\share\programa.exe",0,true

Foram adicionados dois parâmetros ao método Run, separados por vírgula. O primeiro parâmetro, um zero, abre o programa como uma janela escondida. O segundo parâmetro, true, faz com que o script espere até o programa ser terminado. Esses e outros parâmetros estão no seguinte link:

http://msdn.microsoft.com/library/en-us/script56/html/wsoriWshShellObjectPropMeth.asp

A vantagem de usar um script assim é a manutenção fácil. Caso o programa precise ser alterado, ou mesmo mais um programa precise ser executado, fica fácil alterar o sistema. Este script ainda pode ser melhorado. Uma primeira idéia seria fazer ele listar os programas em uma determinada pasta no servidor e executar todos. Assim, bastaria incluir um programa novo lá que automaticamente todos os usuários executariam o programa durante o logon.

Escrevendo dados no registro

Vamos imaginar outra situação agora. Você é o administrador de uma rede com vários computadores e precisa implantar um novo sistema de controle de qualquer coisa. O problema é que este aplicativo não tem o certificado Projetado para Microsoft Windows, e portanto pode não atender à alguns requisitos necessários para o bom funcionamento do sistema no Windows XP por exemplo. Podemos citar como exemplo qualquer aplicativo que não armazene os dados relacionados ao usuário dentro da sua pasta em c:\documents and settings, ou mesmo aqueles que necessitem gravar dados do usuário em locais inadequados no registro do sistema, como por exemplo em HKEY_LOCAL_MACHINE.

No nosso exemplo, o sistema precisa ler um valor gravado em uma chave do registro, localizada em HKLM\Software\MyApp.

Veja o script abaixo:

Set objShell = CreateObject("Wscript.Shell")
objShell.RegWrite "HKLM\Software\MyApp\valor","dado","REG_SZ"

Da mesma forma que no script anterior, o objeto Shell é instanciado com na primeira linha. Note que a função CreateObject retorna um objeto e, portanto, deve ser atribuído à uma variável usando a palavra reservada Set. Na segunda linha, chamamos o método RegWrite, que busca o valor passado no primeiro parâmetro e escreve o dado especificado no segundo parâmetro, que é do tipo que está no terceiro parâmetro. Mais informações sobre esse método podem ser encontrados no seguinte link:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthregwrite.asp

Concluindo...

Pudemos conhecer ao longo desta série como começar a escrever scripts. Recomendo continuar lendo os links que foram passados, assim como a documentação oficial no site do MSDN. Em breve estarei disponibilizando mais artigos com detalhes e dicas sobre scripting.

Obrigado e a te a próxima!

Vinicius Canto - MCP on Windows 2000 Server
C. da Computação USP/São Carlos - SP - Brasil
Contato: scripterbr@gmail.com

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2015 Microsoft