windows script

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

Upload: sahara

Post on 10-Jan-2016

59 views

Category:

Documents


0 download

DESCRIPTION

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 Reiniciar Windows o cualquier tarea con un click de ratón Relacionar documentos, aplicaciones y automatizar operaciones. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windows Script

Windows ScriptAdministración de Sistemas

Windows 2003 Server

Santiago González Tortosa

Page 2: Windows Script

¿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• …

Page 3: Windows Script

Contenidos• Conceptos

• Introducción a VBScript

• Windows Script Host

• Conclusiones

• Ejercicio Práctico común con Directivas de grupo

Page 4: Windows Script

Windows ScriptConceptos

Page 5: Windows Script

Conceptos Básicos• Computador Von Neuman

entrada Unidad de Control de Procesos (CPU) salida

UC ALU

Memoria Principal

Almacenamiento (Mem. Secund)

Page 6: Windows Script

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

Page 7: Windows Script

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, …

Page 8: Windows Script

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

Page 9: Windows Script

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.)

procesoprograma

Page 10: Windows Script

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

Page 11: Windows Script

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.

Page 12: Windows Script

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.

Page 13: Windows Script

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

Page 14: Windows Script

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

Page 15: Windows Script

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

Page 16: Windows Script

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.

Page 17: Windows Script

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 que 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.

Page 18: Windows Script

Windows ScriptIntroducción a VBScript

Page 19: Windows Script

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

Page 20: Windows Script

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

Page 21: Windows Script

Estructura de un Programa‘ ‘ **********************************************************************************‘ ‘ Programa de pruebaPrograma de prueba‘ ‘ Creado: 10/01/2006Creado: 10/01/2006‘ ‘ **********************************************************************************‘ ‘ declaro variabledeclaro variableDim mensaje

‘ ‘ inicializo la variableinicializo la variablemensaje = “hola, que tal? Estoy aprendiendo a programar en VBScript”

‘ ‘ imprimo el mensajeimprimo el mensajeWscript.Echo mensaje

‘ ‘ **** Fin del programa **** Fin del programa

Page 22: Windows Script

Constantes y Variables• Constantes

Const pi = 3.14159, beta = 0.3

• Variablespr = 200

precio = precio + 10

nombre = “Santi”

• Declaración explicita (con valor)Dim precio, iva, precio_total

Page 23: Windows Script

Constantes y Variables• Array

Dim secuencia(10)

secuencia(0) = 11

Dim matriz(2, 2)

• ObjetosSet obj = Wscript.Arguments

Page 24: Windows Script

Constantes y VariablesEjemplo 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 eurosSanti, el precio total del ordenador 1 es: XXX eurosSanti, el precio total del ordenador 2 es: YYY eurosSanti, el precio total del ordenador 2 es: YYY euros

Page 25: Windows Script

Operadores• Aritméticos

– +, -, *, /, \ (entera), Mod, ^+, -, *, /, \ (entera), Mod, ^

• Lógicos– And, Or, Xor, Imp, NotAnd, Or, Xor, Imp, Not

• Comparación– <, >, =, <=, >=, <><, >, =, <=, >=, <>

• Precedencia de operador

Page 26: Windows Script

Estructuras de Control• Condición IFIF

if condición condición thensentenciassentencias

elseif condición2condición2 thensentencias2sentencias2

elsesentencias3sentencias3

end if

• Condición CaseCaseselect case variablevariable

case valorvalorsentenciassentencias

case valor2valor2sentencias2sentencias2

case elsesentencias3sentencias3

end select

Page 27: Windows Script

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

Page 28: Windows Script

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

• Exit Do• Exit For

Page 29: Windows Script

Do while/until• Do While

do while condicióncondición

sentenciassentencias

loop

• Ejemplodo while a <= 10a <= 10

a = a + 1a = a + 1

loop

• Do Untildo until condicióncondición

sentenciassentencias

loop

• Ejemplodo until a > 10a > 10

a = a + 1a = a + 1

loop

Page 30: Windows Script

Do…loop while/until• Do…loop While

do

sentenciassentencias

loop while condicióncondición

• Ejemplodo

a = a + 1a = a + 1

loop while a <= 10a <= 10

• Do…loop Untildo

sentenciassentencias

loop until condicióncondición

• Ejemplodo

a = a + 1a = a + 1

loop until a > 10a > 10

Page 31: Windows Script

For (each)…Next• For…Next

For variablevariable = inicioinicio to finfin

sentenciassentencias

Next

• EjemploFor i = 11 to 1010

a = a + 1a = a + 1

Next

• For each…NextFor each variablevariable in seqseq

sentenciassentencias

Next

• EjemploFor each personapersona in colacola

contador = contador + 1contador = contador + 1

Next

Page 32: Windows Script

While• For each…Next

While condicióncondiciónsentenciassentencias

Wend

• EjemploDim valueValue = 1While value < 10value < 10

value = value + 1value = value + 1Wend

Page 33: Windows Script

Funciones y Procedimientos• Función

function nombrenombre (parametrosparametros)

‘ nombrenombre es variable resultado

end function

• Ejemplo 3a: Realizar la suma de los 100 primeros números (número triangular)

Page 34: Windows Script

Funciones y Procedimientos• Procedimiento

sub nombrenombre (parametrosparametros)

‘ No se retorna valor

end sub

• Ejemplo 3b: Realizar la suma de los 100 primeros números (número triangular)

Page 35: Windows Script

Clases• Formato:

class nombrenombredeclaracionesdeclaracionesfunciones o procedimientosfunciones o procedimientos

end class

• Ejemplo 4: Almacenar los siguientes datos de un comprador:– Nombre– Calle– Código postal– Teléfono

Page 36: Windows Script

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_virtualvar_virtual property let var_virtualvar_virtual

accionesacciones acciones accionesend property end property

• Ejemplo 5: Se desea tener los siguientes datos de cada unos de los usuarios:– Nombre completo– Correo electrónico– Login– Password

Page 37: Windows Script

Windows ScriptWindows Script Host

Page 38: Windows Script

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

Page 39: Windows Script

Método ECHO

Wscript.Echo “Hola, Mundo”

Wscript.Echo “Hola, ”, “Mundo”

Wscript.Echo “El precio es ”, precio, _

“ pero se puede rebajar a ”, rebaja

Page 40: Windows Script

Cuadros de Mensaje• Formato:

MsgBox textotexto, botonesbotones, titulotitulo• Ejemplo:

MsgBox “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

Page 41: Windows Script

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

Page 42: Windows Script

Cuadros de Mensaje– Resultado del Cuadro (res = función MsgBox):

• 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.

Page 43: Windows Script

Objeto WScript• Permite acceder a argumentos

For each arg in Wscript.Arguments,,,

Next

• Permite control de variables de EntornoSet sh = CreateObject(“Wscript.Shell”)Set env = sh.Enviroment(“Process”)…texto = env(“PATH”)env(“PATH”) = “c:/windows”env.remove(“PATH”)

Page 44: Windows Script

Objeto WScript• Permite ejecutar otros programas

sh.Run mandatomandato [, estiloestilo] [, esperaespera]– Estilo Ventana

• 0: Oculta• 1: Normal• 2: Minimizada• 3: Maximizada• 4: Normal pero sin foco• 6: Minimizada pero sin foco

– Espera: TrueTrue o FalseFalse– Ejemplo 7: Ejecutar el programa Notepad maximizado.

Page 45: Windows Script

Interacción de entrada• Caja de entrada

res = InputBox (prompt, [titulotitulo], [defectodefecto], [xx], [yy])

• 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”

Page 46: Windows Script

Creación de accesos directosset sh = WScript.CreateObject("WScript.Shell")

set lnk = sh.CreateShortcut(nombrenombre)

lnk.save

• Path del Escritorio:path = sh.SpecialFolders("Desktop")

• Ejemplo 9: Creación de un acceso directo del Script en el escritorio.

Page 47: Windows Script

Uso de Sistemas de Fichero y E/Sset fs = WScript.CreateObject(“Scripting.FileSystemObject”)

• Acceso a todas las unidades de discos (Ejemplo 10)

set discos = fs.Drivesfor each d in discos

…next

• Propiedades de una unidadif (NOT fs.DriveExists(“H”“H”)) then

Wscript.Quitelse

set drive = fs.GetDrive(“H”“H”)if (drive.IsReady) then

drive.DriveLetterdrive.DriveType ‘ (Desconocido, Borrable, Duro, Remoto, CD, RAM)‘ (Desconocido, Borrable, Duro, Remoto, CD, RAM)drive.VolumeName (ShareName)drive.TotalSizedrive.FreeSpace

end ifend if

Page 48: Windows Script

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

set carpeta = fs.GetFolder (pathpath)set carpetas = carpeta.SubFoldersfor each c in carpetas

…c.Name

Next• Crear nueva carpeta Set nc = fs.CreateFolder(path)• Renombrar c.Rename(nombrenombre)• Copiar carpeta fs.CopyFolder path1 path2path1 path2• Mover carpeta fs.MoveFolder path1 path2<path1 path2<• Borrar carpeta fs.DeleteFolder(pathpath)• Existencia Carpeta fs.FolderExists(pathpath)

Page 49: Windows Script

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

set ficheros = carpeta.Filesfor each f in ficheros

…f.Namef.Sizef.DateCreatedf.DateLastModified

Next

• Ejemplo 11: Mostrar el contenido de la carpeta System• Existencia de fichero fs.FileExists(ficherofichero)• Copiar ficheros fs.CopyFile path1 path2path1 path2• Borrar ficheros fs.DeleteFile(ficherofichero)• Ejemplo 12: Sistema Backup

Page 50: Windows Script

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

OpenTextFile(nombre [, modo[, crear[, formato]]] )nombre [, modo[, crear[, formato]]] )– Modo: (1) ForReading, (2) ForWriting, (3) ForAppending– Crear: True si se va a crear nuevo. False en caso contrario– Formato: TristateTrue si es Unicode, TristateFalse si es ASCII

• Lectura de fichero de textoset entrada = fs.OpenTextFile(“fichero.txt”“fichero.txt”)Do While Not (entrada.atEndOfStream)

Texto = Texto & entrada.ReadLine & vbCrLfLoop

• Escritura (con/sin reemplazo) en ficheroset salida = fs.OpenTextFile(“fichero.txt”, 2, True“fichero.txt”, 2, True)Do While Not (entrada.atEndOfStream)

texto = entrada.ReadLinesalida.WriteLine texto

Loop• Ejemplo 13: Copiar el contenido de un fichero en otro

Page 51: Windows Script

Control de Red

• Objeto “Wscript.Network”

• Propiedades:– ComputerName: nombre maquina– UserName: usuario logeado– UserDomain: dominio conectado

• Ejercicio 14: Mostrar la informacion del sistema por pantalla.

Page 52: Windows Script

Control de Red• Añadir Impresora de Red

Nw.AddPrinterConnection [port][port], LPpath LPpath

• Eliminar Impresora de RedNw.RemovePrinterConnection NameName

• Listado Impresorasset impresoras = Nw.EnumPrinterConnections NameName

for i = 0 to impresoras.Count – 1 Step 2

puerto = impresoras(i)nombre = impresoras(i+1)

next

• Indicar Impresora PredeterminadaNw.SetDefaultPrinter Name

Page 53: Windows Script

Control de Red• Añadir unidades de red

Nw.MapNetWorkDrive unidad pathunidad path

• Listado de unidades de redset unidades = Nw.EnumNetWorkDrivesfor 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

Page 54: Windows Script

Control de Windows y otras aplicaciones

• Dormir proceso

• Manejo de aplicaciones con teclas

Page 55: Windows Script

Dormir Proceso• Dormir script

Wscript.Sleep milisegundos

• Espera de datos, uso de CPU

• Para selección de procesosset sh = Wscript.CreateObject(“Wscript.Shell”)

sh.Run “Calc.exe”, 1

Wscript.Sleep 500

sh.Run “NotePad.exe”, 1

Wcript.Sleep 500

Page 56: Windows Script

Manejo de aplicaciones con teclas• Uso de teclas

set sh = Wscript.CreateObject

(“Wscript.Shell”)

sh.sendKeys(“teclasteclas”)

• Teclas especialesNum Lock {NUMLOCK}

F1 {F1}

F2 {F2}

… …

F16 {F16}

Shift +

Ctrl ^

Alt %

Retroceso {BS}

Caps Lock {CAPSLOCK}

DELETE {DEL}

↓ ↑ → ← {DOWN UP LEFT RIGHT}

Enter {ENTER}

ESC {ESC}

Print {PRTSC}

Tab {TAB}

Page 57: Windows Script

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+F4)

Page 58: Windows Script

Manejo de aplicaciones con teclas

• Paso de un proceso a otrosh.AppActivate titulotitulo

– Titulo: Titulo actual de la aplicación

TituloTitulo: “Documento - WordPad”

Page 59: Windows Script

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

Page 60: Windows Script

Windows ScriptConclusiones

Page 61: Windows Script

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

Page 62: Windows Script

Referencias• Microsoft Windows Script Host 2.0

Developers’s Guide – Günter Born

• http://www.microsft.com/

Page 63: Windows Script

Información• Mail: [email protected]

• Páginas web:– http://laurel.datsi.fi.upm.es/~sgonzalez/– http://laurel.datsi.fi.upm.es/