Archive

Posts Tagged ‘scripting’

Como compilar un .exe a partir de un script VB sin Visual Studio con vbc.exe

August 18th, 2009 Roberto Clemente No comments

Para compilar un .exe a partir de un script, necesitamos un compilador, el problema aparece cuando no tenemos disponible ninguno comercial, con un interface amigable etc.

Desde que .Net Framework apareció, tenemos una posibilidad gratuita para poder compilar, eso sí, no todo el mundo conoce como hacerlo funcionar, Intentaré explicarlo paso a paso.
Read more…

Categories: Windows, scripting Tags: , ,

Colecciones VBS, Ejemplos de diccionarios para scripting

August 18th, 2009 Roberto Clemente 1 comment

Hola:

El articulo de hoy es muy sencillo, se trata de un tipo de objeto muy potente que almacenará colecciones de pares de datos. Veremos como utilizarlo y posibles aplicaciones.

Los que tengais experiencia con perl, es parecido a un array asociativo, es decir asocia pares nombre-valor n veces. Es muy útil cuando estamos trabajando scripting, ya que para tareas repetitivas y no demasiado complejas, no es necesario utilizar una DB para almacenar los pares.
Read more…

Listar propiedades de un proceso o servicio de sistema operativo

July 31st, 2009 Roberto Clemente 2 comments

Hola,

Hoy veremos un script muy sencillo escrito en VBS que consulta por WMI a un proceso. La lógica del script es muy sencilla y se puede adaptar a vuestras necesidades con pocas modificaciones.

 '################
' BindToProcessWmi.vbs
'
' Author: Roberto Clemente Bustamante - Digilux Admin Team
'################

'Declaración de variables y constantes
dim objfile
dim objdestination
dim strline

CONST WTER ="processCPUperc.txt"       'NOMBRE FICHERO PARA ESCRIBIR
'Inicializacion objeto FSO y fichero de log
set objfile = createobject("scripting.filesystemobject")
set objdestination = objfile.opentextfile(WTER,8,true)

'Recuperar procesos que estén en uso en la CPU

for each Process in GetObject("winmgmts:{impersonationLevel=impersonate}//localhost").ExecQuery("Select name,PercentProcessorTime,IDProcess from Win32_PerfFormattedData_PerfProc_Process where PercentProcessorTime > 0")' where IDProcess=" & strproc)

'Descarte del total y del no utilizado
if (process.name = "_Total" or process.name = "Idle") then
'Aqui se puede introducir código para cuando se cumpla la condicion
else
'Volcado al log
objdestination.writeline day(now)& "-" & month (now)& "-" & year(now)& ":" & Hour(now) & ":"& Minute(now) & " - " & process.name & " - %: " & process.percentprocessortime & " - ID:" & process.idprocess

end if

Read more…

WMI – Windows Management Intrumentation. A vista de pajaro

April 28th, 2009 Roberto Clemente 1 comment

¿Que es WMI (Windows Management Instrumentation) y para que sirve?

WMI es la forma que ha tenido microsoft para implementar el concepto de Web-based enterprise management (WBEM), que a su vez es un tipo de estandar tecnológico para facilitar el acceso a la información relativa a la administración IT en un entorno corporativo o empresarial. Existe un modelo comun de información (CIM – Common information model) que es standard para representar sistemas, aplicaciones, redes, dispositivos y otros componentes administrados, en el contexto de una infraestructura de IT. CIM es desarrollado y mantenido por la DMTF (Distributed MAnagement Task Force http://www.dmtf.org/standards/wsman )

Dejando a un lado las definiciones y acercando el concepto al administrador desde un punto de vista útil, WMI nos permite tratar de una forma homogenea y simplificada cualquier tarea de administración desde un punto de vista programático. Esto nos permite la administración remota de máquinas, por ejemplo, teniendo la certeza que el efecto y comportamiento en los diferentes nodos sea exactamente el mismo, con independencia de su ubicación, su hardware, etc.

WMI, dispone de proveedores (WMI Providers http://msdn.microsoft.com/en-us/library/aa394570(VS.85).aspx) y clases (WMI Classes http://msdn.microsoft.com/en-us/library/aa394554(VS.85).aspx)

Uno de los problemas más frecuentes a la hora de entender qué puede hacer WMI por nosotros es que dado el nivel de abstracción necesario para entender su utilidad, no hay muchas herramientas totalmente gráficas que permitan acercar su uso al administrador, y en gran parte quedan ocultas tras interfaces modo comando (Como por ejemplo wmic)

El concepto no obstante es muy sencillo, WMI es un repositorio de información de lectura y escritura que no solo permite embeber en un framework la administración, sino que incluso permite modificarla (Si es aplicable en el caso). Además, la forma de utilizarla es común para todos los proveedores y clases WMI, por lo que aprendiendo a manejar con algun proveedor o clase, nos abrirá un mundo infinito de posibilidades.

¿Como puedo utilizar WMI?

Personalmente os recomiendo acercaros a WMI primero con una herramienta en modo comando llamada wmic, para entender el concepto general, en un solo host, pero, sin lugar a dudas, la mejor manera de utilizar WMI es integrarlo en nuestros scripts de administración, para poder retocar el alcance cada vez que sea necesario.

¿Qué lenguajes pueden hacer uso de WMI?

En realidad, actualmente casi todos los lenguajes pueden atacar a WMI para recuperar o fijar información. De todos ellos, me inclino por VBScript, ASP, o incluso powershell (Que ya hablaremos en otra ocasión de él)

¿Como hago una consulta WMI?

Como avanzabamos anteriormente, deberás aprender a manejar las clases y hay un lenguaje muy similar a SQL, llamado WQL http://msdn.microsoft.com/en-us/library/aa392902(VS.85).aspx que te permitirán manejar sin problemas las consultas y enumeraciones de los objetos WMI

He comenzado a utilizar WMI, pero como saber qué cosas puedo preguntar a WMI? de qué me vale tantas posibilidades, me pierdo y a menudo no encuentro como hacer las preguntas adecuadas.

Lo primero, no te preocupes, al principio es normal perderse en la abstracción del modelo, una vez te habitues te será mas sencillo. Mi consejo en este punto es que utilices la referencia WMI de microsoft para empezar: http://msdn.microsoft.com/en-us/library/aa394572(VS.85).aspx

En esta referencia, tienes disponibles las clases y proveedores de uso mas comun en tecnologias MS, Tomaremos a modo de ejemplo la clases Win32 :

http://msdn.microsoft.com/en-us/library/aa394084(VS.85).aspx

Dentro de cada una de ella verás la definición de la clase, continuando con un ejemplo práctico, tomaremos la Win32_Volume Class: http://msdn.microsoft.com/en-us/library/aa394102(VS.85).aspx

En cada clase, podemos encontrar propiedades y métodos. Los métodos son “funciones” que no devuelven valor, pero que permiten realizar una acción en el objetivo sobre el que se llaman. Hemos escogido esta clase, puesto que es bastante sencillo de entender el alcance de los datos que vamos a recuperar, así como de los métodos que se pueden utilizar.

Ejemplos de métodos en esta clase pueden ser:

chkdsk (Que permite ejecutar un chequeo de disco usando wMI)
AddMountPoint (Añadir punto de montaje)
Format (Formatear el volumen sobre el que se hace la llamada)
Defrag (Defragmentar)
Dismount (Desmontar)
mount (Montar)
[...]

Sin embargo, las propiedades son piezas de información interesantes desde un punto de vista de administración, por ejemplo y manteniendonos en la clase Win32_Volume, podemos recuperar valores como:

Capacity (Tamaño del volumen en Bytes)
Caption (Etiqueta del volumen)
Compressed (Si el volumen estuviese comprimido)
DriveLetter (letra de la unidad)
DriveType:
Value Meaning
0-Unknown
1-No Root Directory
2-Removable Disk
3-Local Disk
4-Network Drive
5-Compact Disk
6-RAM Disk

[...]

WMI Dispone del siguiente API:

http://msdn.microsoft.com/en-us/library/aa393260(VS.85).aspx

Para ejemplos, en la MSDN podras encontrar ayuda:

http://msdn.microsoft.com/en-us/library/aa394585(VS.85).aspx

Hasta la próxima entrega!

Categories: Windows Tags: , ,

Migrar impresoras de HPUX a Linux (I)

November 15th, 2007 RuBiCK No comments

Se tiene que migrar todo el servicio de impresión de máquinas hpux, a máquinas linux. Como había más de 600 impresoras, se decidió automatizar el proceso ya que todas las impresoras se tenían que dar de alta en 14 linux contando desarrollo, preproducción y producción.

El proceso consiste en:

1. Exportar las impresoras del hpux
2. Importar las impresoras en un linux
3. Distribuir la configuración a los demás linux
La configuración del sistema de impresión nada tiene que ver entre hpux y Linux por lo que se tenía que hacer algún tipo de script para luego leerlo desde los Linux.

Para exportar la configuración del spooler de impresión en hpux, se hace de la siguiente manera: Read more…

Categories: HP-UX, Linux, Redhat Tags: , , , ,

Script para extender vgs con nuevos caminos automáticamente al duplicar los paths

November 12th, 2007 RuBiCK 4 comments

Symmetrix
Teniamos un HPUX con 32 discos de almacenamiento externo Symmetrix y cada disco se veia por dos caminos de la siguiente manera:

#powermt display dev=all
Symmetrix ID=000284701111
Logical device ID=050B
state=alive; policy=SymmOpt; priority=0; queued-IOs=0
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
### HW Path                 I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================

10 5/0/14/0/0.1.28.0.0.4.5   c10t4d5    FA 13aA   active  alive      0      0
11 5/0/6/0/0.1.28.0.0.5.0    c11t5d0    FA  4aA   active  alive      0      0
[...]

Por graves problemas de rendimiento con los discos, se añadió dos fibras más al Symmetrix, por lo que ahora, cada disco se veía por cuatro caminos. Read more…

Categories: HP-UX, Storage Tags: , ,

busqueda automatica de mac en switches cisco

November 8th, 2007 c4n 6 comments

Hola, he creado un script en perl , que busca las macs automaticamente en swicthes cisco.Se pueden definir tantos como quieras.

No tengo muchos conocimientos en programación pero ahi lo pongo por si os sirve de ayuda.
Read more…