Windows Script Administracin de Sistemas Windows 2003 Server

  • Slides: 63
Download presentation
Windows Script Administración de Sistemas Windows 2003 Server Santiago González Tortosa

Windows Script Administración de Sistemas Windows 2003 Server Santiago González Tortosa

¿Por qué Windows Script? • Automatizar backups o RI del sistema. • Apagar o

¿Por qué Windows Script? • Automatizar backups o RI del sistema. • Apagar o Reiniciar Windows o cualquier tarea con un click de ratón • Relacionar documentos, aplicaciones y automatizar operaciones. • Controlar y automatizar tareas administrativas • Generar conexiones de red de forma automática • …

Contenidos • • • Conceptos Introducción a VBScript Windows Script Host Conclusiones Ejercicio Práctico

Contenidos • • • Conceptos Introducción a VBScript Windows Script Host Conclusiones Ejercicio Práctico común con Directivas de grupo

Windows Script Conceptos

Windows Script Conceptos

Conceptos Básicos • Computador Von Neuman Almacenamiento (Mem. Secund) Memoria Principal UC entrada ALU

Conceptos Básicos • Computador Von Neuman Almacenamiento (Mem. Secund) Memoria Principal UC entrada ALU Unidad de Control de Procesos (CPU) salida

Lenguaje de Programación • Técnica estándar de comunicación que permite expresar las instrucciones que

Lenguaje de Programación • Técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en un computador. • Conjunto de reglas sintácticas y semánticas que definen un programa informático. • Permite a un programador especificar: – datos a operar, – Almacenamiento y transmisión – Acciones a realizar según circunstancias

Clasificación de Lenguajes • Lenguajes Compilados – Pascal, Ada, COBOL, Fortran, C/C++, C#, …

Clasificación de Lenguajes • Lenguajes Compilados – Pascal, Ada, COBOL, Fortran, C/C++, C#, … • Lenguajes Interpretados – PHP, ASP, VBScript, Python, … • Lenguajes Compilados e Interpretados – Haskell, Prolog, …

Compilación • CPU solo entiende binario, también llamado código máquina (110010110) • Proceso ejecutándose

Compilación • CPU solo entiende binario, también llamado código máquina (110010110) • Proceso ejecutándose en binario • Programa en binario • ¿Se programa en binario? NO compilador

Programa VS Proceso • Programa – “conjunto de instrucciones que llevan a cabo una

Programa VS Proceso • Programa – “conjunto de instrucciones que llevan a cabo una operación en un computador” – Texto en un fichero • Proceso – Programa en ejecución – Se almacena en Memoria (prim. o sec. ) programa proceso

Paradigmas de Programación • • Forma de representar y manipular el conocimiento. Filosofía para

Paradigmas de Programación • • Forma de representar y manipular el conocimiento. Filosofía para la construcción del software. Cada uno tiene ventajas y desventajas. Situaciones donde un paradigma resulta más apropiado que otro. • Tipos: – Imperativo • Sentencias que cambian el estado del programa – Declarativo o Funcional • Uso de funciones matemáticas y predicados formales

Esquema de un Programa ENTRADA ALGORITMO SALIDA ALGORITMO: Conjunto de operaciones que, secuencialmente, conducen

Esquema de un Programa ENTRADA ALGORITMO SALIDA ALGORITMO: Conjunto de operaciones que, secuencialmente, conducen a la respuesta de una pregunta, en un numero finito de pasos.

Metodología de Programación • Pasos en la resolución – Análisis del problema – Realización

Metodología de Programación • Pasos en la resolución – Análisis del problema – Realización de la estrategia ideada para su solución – Verificación y análisis del rendimiento del procedimiento.

Análisis del Problema • Comprensión del problema • Especificación de los datos de entrada

Análisis del Problema • Comprensión del problema • Especificación de los datos de entrada • Estudio de los resultados que se desean obtener • Estudio del tipo de problema

Estrategia ideada • Estudio del algoritmo a utilizar – Casos básicos – Casos generales

Estrategia ideada • Estudio del algoritmo a utilizar – Casos básicos – Casos generales – Casos extremos • Lectura de datos de entrada • Uso de estructuras de datos • Presentación de resultados

Verificación y validación • • Prueba con casos sencillos Prueba con casos complejos Prueba

Verificación y validación • • Prueba con casos sencillos Prueba con casos complejos Prueba con casos extremos Estudio del rendimiento – Tiempo – Uso de memoria • Refinamiento del algoritmo

Posibles ejemplos • • • Mínimo entre dos números Suma entre dos números Saber

Posibles ejemplos • • • Mínimo entre dos números Suma entre dos números Saber si un numero es cuadrado perfecto Calcular soluciones de una ecuacion de 2º orden Calcular si una fecha (N, N, N) es correcta o no Devolver el valor máximo de una secuencia Calcular el numero de cifras de un numero natural Indicar si una secuencia esta ordenada de mayor a menor Devolver el numero de elementos de una secuencia.

Problema de Josefo • Un grupo de personas prefieren el suicidio a la esclavitud

Problema de Josefo • Un grupo de personas prefieren el suicidio a la esclavitud y deciden colocarse en círculo eligiendo siempre al siguiente como ejecutor y asesinando al situado después del ejecutor. Así sucesivamente hasta quede un sólo ciudadano que debería suicidarse. El problema de Josefo es conocer en qué lugar ha de colocarse en el corro para quedar el último y reflexionar libremente sobre la decisión colectiva.

Windows Script Introducción a VBScript

Windows Script Introducción a VBScript

VBScript • ¿Qué es? ¿Qué formato tiene? – Fichero de texto • ¿Qué extensión

VBScript • ¿Qué es? ¿Qué formato tiene? – Fichero de texto • ¿Qué extensión tiene? – fichero. vbs • ¿Cómo editarlo? – Con cualquier editor de texto – Microsoft Visual Studio • ¿Cómo ejecutarlo? – Con el comando WScript (“WScript fichero. vbs”) – Doble click al fichero

Estructura de VBScript • Estructura general de un programa – Sentencias, líneas continuas, comentarios

Estructura de VBScript • Estructura general de un programa – Sentencias, líneas continuas, comentarios • • • Constantes y variables Operadores Estructuras de control Bucles Funciones y Procedimientos Clases

Estructura de un Programa ‘ ********************* ‘ Programa de prueba ‘ Creado: 10/01/2006 ‘

Estructura de un Programa ‘ ********************* ‘ Programa de prueba ‘ Creado: 10/01/2006 ‘ ********************* ‘ declaro variable Dim mensaje ‘ inicializo la variable mensaje = “hola, que tal? Estoy aprendiendo a programar en VBScript” ‘ imprimo el mensaje Wscript. Echo mensaje ‘ **** Fin del programa

Constantes y Variables • Constantes Const pi = 3. 14159, beta = 0. 3

Constantes y Variables • Constantes Const pi = 3. 14159, beta = 0. 3 • Variables pr = 200 precio = precio + 10 nombre = “Santi” • Declaración explicita (con valor) Dim precio, iva, precio_total

Constantes y Variables • Array Dim secuencia(10) secuencia(0) = 11 Dim matriz(2, 2) •

Constantes y Variables • Array Dim secuencia(10) secuencia(0) = 11 Dim matriz(2, 2) • Objetos Set obj = Wscript. Arguments

Constantes y Variables Ejemplo 1: Calcular el precio real de dos ordenadores, que cuestan:

Constantes y Variables Ejemplo 1: Calcular el precio real de dos ordenadores, que cuestan: – 1123 euros – 1326 euros Ambos sin iva. El programa debe devolver un mensaje personalizado. Santi, el precio total del ordenador 1 es: XXX euros Santi, el precio total del ordenador 2 es: YYY euros

Operadores • Aritméticos – +, -, *, /,  (entera), Mod, ^ • Lógicos

Operadores • Aritméticos – +, -, *, /, (entera), Mod, ^ • Lógicos – And, Or, Xor, Imp, Not • Comparación – <, >, =, <=, >=, <> • Precedencia de operador

Estructuras de Control • Condición IF if condición then sentencias elseif condición 2 then

Estructuras de Control • Condición IF if condición then sentencias elseif condición 2 then sentencias 2 else sentencias 3 end if • Condición Case select case variable case valor sentencias case valor 2 sentencias 2 case else sentencias 3 end select

Estructuras de Control • Ejemplo 2: Ejecutar un programa que escriba una frase distinta

Estructuras de Control • Ejemplo 2: Ejecutar un programa que escriba una frase distinta cuando se cumpla una determinada condición, según el siguiente valor: – Valor 1 – Valor 2 – Otro valor

Bucles • • • Do while/until Do. . . loop while/until For…Next For Each…Next

Bucles • • • Do while/until Do. . . loop while/until For…Next For Each…Next While • Exit Do • Exit For

Do while/until • Do While do while condición sentencias loop • Ejemplo do while

Do while/until • Do While do while condición sentencias loop • Ejemplo do while a <= 10 a=a+1 loop • Do Until do until condición sentencias loop • Ejemplo do until a > 10 a=a+1 loop

Do…loop while/until • Do…loop While do sentencias loop while condición • Ejemplo do a=a+1

Do…loop while/until • Do…loop While do sentencias loop while condición • Ejemplo do a=a+1 loop while a <= 10 • Do…loop Until do sentencias loop until condición • Ejemplo do a=a+1 loop until a > 10

For (each)…Next • For…Next For variable = inicio to fin sentencias Next • Ejemplo

For (each)…Next • For…Next For variable = inicio to fin sentencias Next • Ejemplo For i = 1 to 10 a=a+1 Next • For each…Next For each variable in seq sentencias Next • Ejemplo For each persona in cola contador = contador + 1 Next

While • For each…Next While condición sentencias Wend • Ejemplo Dim value Value =

While • For each…Next While condición sentencias Wend • Ejemplo Dim value Value = 1 While value < 10 value = value + 1 Wend

Funciones y Procedimientos • Función function nombre (parametros) parametros … ‘ nombre es variable

Funciones y Procedimientos • Función function nombre (parametros) parametros … ‘ nombre es variable resultado end function • Ejemplo 3 a: Realizar la suma de los 100 primeros números (número triangular)

Funciones y Procedimientos • Procedimiento sub nombre (parametros) parametros … ‘ No se retorna

Funciones y Procedimientos • Procedimiento sub nombre (parametros) parametros … ‘ No se retorna valor end sub • Ejemplo 3 b: Realizar la suma de los 100 primeros números (número triangular)

Clases • Formato: class nombre declaraciones funciones o procedimientos end class • Ejemplo 4:

Clases • Formato: class nombre declaraciones funciones o procedimientos end class • Ejemplo 4: Almacenar los siguientes datos de un comprador: – – Nombre Calle Código postal Teléfono

Clases • Atributos publicos y privados • Propiedad get: el usuario me pide atributo

Clases • Atributos publicos y privados • Propiedad get: el usuario me pide atributo “virtual”, que le devuelvo? • Propiedad let: el usuario da valor a un atributo “virtual”, que hago con el? property get var_virtual acciones end property let var_virtual acciones end property • Ejemplo 5: Se desea tener los siguientes datos de cada unos de los usuarios: – – Nombre completo Correo electrónico Login Password

Windows Script Host

Windows Script Host

Windows Script Host • Método ECHO • Cuadros de Mensaje • Objeto WScript –

Windows Script Host • Método ECHO • Cuadros de Mensaje • Objeto WScript – Variables de Entorno – Ejecución de programas • • • Interacción de entrada con el usuario Creación de accesos directos Uso de Sistemas de Fichero y Entrada/Salida Control de Red Control de Windows y otras aplicaciones

Método ECHO Wscript. Echo “Hola, Mundo” Wscript. Echo “Hola, ”, “Mundo” Wscript. Echo “El

Método ECHO Wscript. Echo “Hola, Mundo” Wscript. Echo “Hola, ”, “Mundo” Wscript. Echo “El precio es ”, precio, _ “ pero se puede rebajar a ”, rebaja

Cuadros de Mensaje • Formato: Msg. Box texto, texto botones, botones titulo • Ejemplo:

Cuadros de Mensaje • Formato: Msg. Box texto, texto botones, botones titulo • Ejemplo: Msg. Box “esto es una prueba”, 0, “prueba” • Posibilidades: – Botones • • • 0: Boton OK 1: Ok y Cancel 2: Abort, Retry y Ignore 3: Yes, No y Cancel 4: Yes y No 5: Retry y Cancel

Cuadros de Mensaje – Iconos • • • 0: Sin icono 16: Parada 32:

Cuadros de Mensaje – Iconos • • • 0: Sin icono 16: Parada 32: Pregunta 48: Exclamación 64: Información – Foco • 0: Primer botón • 256: Segundo botón • 512: Tercer botón

Cuadros de Mensaje – Resultado del Cuadro (res = función Msg. Box): • •

Cuadros de Mensaje – Resultado del Cuadro (res = función Msg. Box): • • 1: OK 2: Cancel 3: Abort 4: Retry 5: Ignore 6: Yes 7: No • Ejemplo 6: Hacer un cuadro de mensaje que pregunte si deseamos un viaje al Caribe. El programa debe contestar a cada posibilidad.

Objeto WScript • Permite acceder a argumentos For each arg in Wscript. Arguments ,

Objeto WScript • Permite acceder a argumentos For each arg in Wscript. Arguments , , , Next • Permite control de variables de Entorno Set sh = Create. Object(“Wscript. Shell”) Set env = sh. Enviroment(“Process”) … texto = env(“PATH”) = “c: /windows” env. remove(“PATH”)

Objeto WScript • Permite ejecutar otros programas sh. Run mandato [, estilo] estilo [,

Objeto WScript • Permite ejecutar otros programas sh. Run mandato [, estilo] estilo [, espera] espera – Estilo Ventana • • • 0: Oculta 1: Normal 2: Minimizada 3: Maximizada 4: Normal pero sin foco 6: Minimizada pero sin foco – Espera: True o False – Ejemplo 7: Ejecutar el programa Notepad maximizado.

Interacción de entrada • Caja de entrada res = Input. Box (prompt, [titulo], titulo

Interacción de entrada • Caja de entrada res = Input. Box (prompt, [titulo], titulo [defecto], defecto [x], [y]) • Si resultado es “”, cancelación de inserción • Ejemplo 8: Ejecutar un acceso a un programa en el que el usuario tenga que indicar su username. Por cada usuario, debe contestar algo distinto. Hay tres usuarios registrados: – “Luis”, “Juan” y “Maria”

Creación de accesos directos set sh = WScript. Create. Object("WScript. Shell") set lnk =

Creación de accesos directos set sh = WScript. Create. Object("WScript. Shell") set lnk = sh. Create. Shortcut(nombre) nombre … lnk. save • Path del Escritorio: path = sh. Special. Folders("Desktop") • Ejemplo 9: Creación de un acceso directo del Script en el escritorio.

Uso de Sistemas de Fichero y E/S • • set fs = WScript. Create.

Uso de Sistemas de Fichero y E/S • • set fs = WScript. Create. Object(“Scripting. File. System. Object”) Acceso a todas las unidades de discos (Ejemplo 10) set discos = fs. Drives for each d in discos … next Propiedades de una unidad if (NOT fs. Drive. Exists(“H”)) “H” then Wscript. Quit else set drive = fs. Get. Drive(“H”) “H” if (drive. Is. Ready) then drive. Drive. Letter drive. Drive. Type ‘ (Desconocido, Borrable, Duro, Remoto, CD, RAM) drive. Volume. Name (Share. Name) drive. Total. Size drive. Free. Space end if

Uso de Sistemas de Fichero y E/S • Acceso a carpetas set carpeta =

Uso de Sistemas de Fichero y E/S • Acceso a carpetas set carpeta = fs. Get. Folder (path) path set carpetas = carpeta. Sub. Folders for each c in carpetas … c. Name Next • Crear nueva carpeta Set nc = fs. Create. Folder(path) • • • Renombrar Copiar carpeta Mover carpeta Borrar carpeta Existencia Carpeta c. Rename(nombre) nombre fs. Copy. Folder path 1 path 2 fs. Move. Folder path 1 path 2< fs. Delete. Folder(path) path fs. Folder. Exists(path) path

Uso de Sistemas de Fichero y E/S • Acceso a ficheros set ficheros =

Uso de Sistemas de Fichero y E/S • Acceso a ficheros set ficheros = carpeta. Files for each f in ficheros … f. Name f. Size f. Date. Created f. Date. Last. Modified Next • • • Ejemplo 11: Mostrar el contenido de la carpeta System Existencia de fichero fs. File. Exists(fichero) fichero Copiar ficheros fs. Copy. File path 1 path 2 Borrar ficheros fs. Delete. File(fichero) fichero Ejemplo 12: Sistema Backup

Uso de Sistemas de Fichero y E/S • Acceso a un fichero de texto

Uso de Sistemas de Fichero y E/S • Acceso a un fichero de texto Open. Text. File(nombre [, modo[, crear[, formato]]] ) – Modo: (1) For. Reading, (2) For. Writing, (3) For. Appending – Crear: True si se va a crear nuevo. False en caso contrario – Formato: Tristate. True si es Unicode, Tristate. False si es ASCII • Lectura de fichero de texto set entrada = fs. Open. Text. File(“fichero. txt”) Do While Not (entrada. at. End. Of. Stream) Texto = Texto & entrada. Read. Line & vb. Cr. Lf Loop • Escritura (con/sin reemplazo) en fichero set salida = fs. Open. Text. File(“fichero. txt”, 2, True) True Do While Not (entrada. at. End. Of. Stream) texto = entrada. Read. Line salida. Write. Line texto Loop • Ejemplo 13: Copiar el contenido de un fichero en otro

Control de Red • Objeto “Wscript. Network” • Propiedades: – Computer. Name: nombre maquina

Control de Red • Objeto “Wscript. Network” • Propiedades: – Computer. Name: nombre maquina – User. Name: usuario logeado – User. Domain: dominio conectado • Ejercicio 14: Mostrar la informacion del sistema por pantalla.

Control de Red • Añadir Impresora de Red Nw. Add. Printer. Connection [port], LPpath

Control de Red • Añadir Impresora de Red Nw. Add. Printer. Connection [port], LPpath • Eliminar Impresora de Red Nw. Remove. Printer. Connection Name • Listado Impresoras set impresoras = Nw. Enum. Printer. Connections Name for i = 0 to impresoras. Count – 1 Step 2 puerto = impresoras(i) nombre = impresoras(i+1) next • Indicar Impresora Predeterminada Nw. Set. Default. Printer Name

Control de Red • Añadir unidades de red Nw. Map. Net. Work. Drive unidad

Control de Red • Añadir unidades de red Nw. Map. Net. Work. Drive unidad path • Listado de unidades de red set unidades = Nw. Enum. Net. Work. Drives for i = 0 to unidades. Count -1 step 2 unidad = unidades(i) path = unidades(i+1) next • Ejemplo 15: Crear una unidad de red con una carpeta compartida de tu propia maquina

Control de Windows y otras aplicaciones • Dormir proceso • Manejo de aplicaciones con

Control de Windows y otras aplicaciones • Dormir proceso • Manejo de aplicaciones con teclas

Dormir Proceso • Dormir script Wscript. Sleep milisegundos • Espera de datos, uso de

Dormir Proceso • Dormir script Wscript. Sleep milisegundos • Espera de datos, uso de CPU • Para selección de procesos set sh = Wscript. Create. Object(“Wscript. Shell”) sh. Run “Calc. exe”, 1 Wscript. Sleep 500 sh. Run “Note. Pad. exe”, 1 Wcript. Sleep 500

Manejo de aplicaciones con teclas • Uso de teclas set sh = Wscript. Create.

Manejo de aplicaciones con teclas • Uso de teclas set sh = Wscript. Create. Object (“Wscript. Shell”) sh. send. Keys(“teclas”) teclas • Teclas especiales Retroceso {BS} Num Lock {NUMLOCK} Caps Lock {CAPSLOCK} F 1 {F 1} DELETE {DEL} F 2 {F 2} ↓↑→← {DOWN UP LEFT RIGHT} … … F 16 {F 16} Shift + Ctrl ^ Alt % Enter {ENTER} ESC {ESC} Print {PRTSC} Tab {TAB}

Manejo de aplicaciones con teclas • Ejemplo 16: Crear un script que ejecute la

Manejo de aplicaciones con teclas • Ejemplo 16: Crear un script que ejecute la calculadora, calcule el producto entre 1564 y 54028 y luego se cierre automaticamente (Alt+F 4)

Manejo de aplicaciones con teclas • Paso de un proceso a otro sh. App.

Manejo de aplicaciones con teclas • Paso de un proceso a otro sh. App. Activate titulo – Titulo: Titulo actual de la aplicación Titulo: Titulo “Documento - Word. Pad”

Manejo de aplicaciones con teclas • Ejemplo 17: Crear un Script que ejecute el

Manejo de aplicaciones con teclas • Ejemplo 17: Crear un Script que ejecute el notepad y el wordpad, escriba una frase en notepad, la copie y pegue en wordpad

Windows Script Conclusiones

Windows Script Conclusiones

Conclusiones • • • Muy sencillo de programar Muy sencillo de ejecutar Muy útil

Conclusiones • • • Muy sencillo de programar Muy sencillo de ejecutar Muy útil Muy cómodo Puede llegar a ser complejo • Es muy parecido al resto de lenguajes de programación

Referencias • Microsoft Windows Script Host 2. 0 Developers’s Guide – Günter Born •

Referencias • Microsoft Windows Script Host 2. 0 Developers’s Guide – Günter Born • http: //www. microsft. com/

Información • Mail: sgonzalez@fi. upm. es • Páginas web: – http: //laurel. datsi. fi.

Información • Mail: sgonzalez@fi. upm. es • Páginas web: – http: //laurel. datsi. fi. upm. es/~sgonzalez/ – http: //laurel. datsi. fi. upm. es/