Scripts Avançados no Windows

Post date: 25/05/2013 03:51:01

Um shell script é um pequeno programa que armazena uma sequencia de ações realizadas através da interface de linha de comando de um sistema.

Neste post, irei falar sobre um tipo de shell script que permite a utilização de recursos avançados do sistema, mas para podermos entender melhor do que se trata, dividi o post em duas seções. Na primeira descrevo o conceito dos shell scripts e na segunda vou falar e mostrar um exemplo de uso desse script avançado.

1. Shell Script

No linux, qualquer arquivo de texto com permissão de execução pode conter um script e ser executado através do terminal. No windows, além dos executáveis, apenas os arquivos de lotes, em que são armazenados sequencias de comandos do interpretador, tem permissão de serem executados. Desde o DOS, conhece-se os arquivos de extensão .bat como arquivos de lote, mas os arquivos com extensão .cmd também são arquivos de lote a partir do windows NT.

Em qualquer um destes, pode-se criar pequenos programas estruturados que utilizam construtores para instruções de repetição, seleção, desvio condicional e incondicional, entrada e saída de dados.

Na tabela a seguir são mostradas as principais instruções e estruturas disponíveis no windows e no Linux

Bem, falei até o momento sobre o básico do shell script, mas este tópico tem como objetivo falar sobre um recurso avançado do windows chamado Windows Scripting Host.

2. Windows Scripting Host (WSH)

Permite acesso a recursos privilegiados dos recursos do Windows desde sua versão 98. O mesmo é muito usado para criar scripts para serem realizados durante o login do sistema. Mas, através do WSH pode-se dar privilégio de administrador à ao prompt de comando ou realizar funções avançadas do sistema como ejetar a bandeja do cd-rom do computador.

Um diferencial do WSH para os arquivos de lote é a sintaxe de comando utilizada. Os arquivos de lote, como todo shell script, tem sintaxe de texto definidas pelo interpretador de comando. Os WSH são mais interessantes pois permitem a utilização de diversas linguagens como o PHP, PERL, BASIC, VB, PYTHON, JAVASCRIPT. Isto com certeza facilita o desenvolvimento deste tipo de script.

É simples criar scripts WSH, basta realizar os seguintes comandos

  1. criar um arquivo .vbs (caso vc queira usar o VB) ou .js (para usar JAVASCRIPT) contendo um script desejado

  2. chamar o comando csscript.

Por exemplo, o seguinte script ejeta os cdroms da máquina.

Set oWMP = CreateObject("WMPlayer.OCX.7" )

Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then

For i = 0 to colCDROMs.Count - 1

colCDROMs.Item(i).Eject

Next ' cdrom

End If

Porque você não tenta fazer o seu?

2.1. Procurando mais transparência

Uma limitação do uso direto de um .vbs é que o mesmo pode ser usado como forma de transferencia de virus. Isto faz com que qualquer anti-virus entenda os arquivos .vbs como potenciais ameaças.

Para deixar algo mais transparente para o usuário pode-se criar um arquivo de lote (.bat) que cria um .vbs temporário e depois o executa. Seria algo assim:

@ECHO OFF

ECHO Set oWMP = CreateObject("WMPlayer.OCX.7" ) > %TEMP%\cd.vbs

ECHO Set colCDROMs = oWMP.cdromCollection >> %TEMP%\cd.vbs

ECHO if colCDROMs.Count >= 1 then >> %TEMP%\cd.vbs

ECHO For i = 0 to colCDROMs.Count - 1 >> %TEMP%\cd.vbs

ECHO colCDROMs.Item(i).Eject >> %TEMP%\cd.vbs

ECHO Next ' cdrom >> %TEMP%\cd.vbs

ECHO End If >> %TEMP%\cd.vbs

cscript %TEMP%\cd.vbs

Desta forma, o anti-virus acaba não bloqueando seu script.

Essa foi a forma realizada na outra postagem : https://sites.google.com/site/rodccosta/tutoriais/windows/sudo-windows