martes, diciembre 23, 2008

Scripts windows

Los scripts en general suelen ser lenguajes interpretados.
Algunos son sencillos y limitados, aunque también muy efectivos como el los viejos .bat del ms-dos que sobreviven en los últimos Windows.

Tenemos potentes lenguajes como Perl, Python que se utilizan también como lenguajes de propósito general.

En windows hay un interprete poco conocido que nos puede facilitar mucho la administración de una gran de red de PC-s Windows. Quiero centrarme un poco en este potente lenguaje Windows para intentar sacarle provecho en el trabajo después de las vacaciones.

En Windows utilizaremos el notepad o el viejo Edit para editar un fichero de texto.
Por ejemplo:

WScript.Echo "Hola mundo"

Guardamos el fichero con nombre hola.vbs, abrimos una sesión de línea de comandos y...

cscript hola.vbs

La ventaja de utilizar Windows Script Host es que si nuestra red es Windows todos nuestros clientes lo tienen por defecto. Además tiene "objetos" preparados para Windows: acceso al registro, a la configuración del explorer, al controlador del dominio, etc. etc.

Ahora no puedo probar los scripts sobre los clientes de una red, pero pondremos este script que podemos utilizar para guardar la información del sistema de un PC:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colCSes = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objCS In colCSes
WScript.Echo "Computer Name: " & objCS.Name
WScript.Echo "System Type: " & objCS.SystemType
WScript.Echo "Number Of Processors: " & objCS.NumberOfProcessors
Next
Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objProcessor in colProcessors
WScript.Echo "Manufacturer: " & objProcessor.Manufacturer
WScript.Echo "Name: " & objProcessor.Name
WScript.Echo "Description: " & objProcessor.Description
WScript.Echo "Processor ID: " & objProcessor.ProcessorID
WScript.Echo "Address Width: " & objProcessor.AddressWidth
WScript.Echo "Data Width: " & objProcessor.DataWidth
WScript.Echo "Family: " & objProcessor.Family
WScript.Echo "Maximum Clock Speed: " & objProcessor.MaxClockSpeed
Next
El resultado:


Por supuesto la salida del script se puede redireccionar a un fichero de texto sin problemas.
Fuente: http://www.microsoft.com/technet/scriptcenter/default.mspx

Saludos.

No hay comentarios: