Documente Academic
Documente Profesional
Documente Cultură
Estructuras del lenguaje. Creacin y depuracin de scripts. Interpretacin de scripts del sistema. Adaptaciones. Utilizacin de extensiones de comandos para tareas de administracin. Scripts para la administracin de cuentas de usuario, procesos y servicios del sistema operativo
POWERSHELL
Introduccin a Powershell Creacin y depuracin de scripts. Estructuras del lenguaje. Interpretacin de scripts del sistema. Adaptaciones. Scripts para la administracin de cuentas de usuario, procesos y servicios del sistema operativo Utilizacin de extensiones de comandos para tareas de administracin: POWERCLI
Introduccin a Powershell
- Windows PowerShell es una interfaz de consola (CLI, Command Line Interface) con posibilidad de escritura y conjuncin de comandos por medio de guiones (scripts en ingls). - Est diseada para su uso por parte de administradores de sistemas, con el propsito de automatizar tareas o realizarlas de forma ms controlada. Versiones: 1.0 - 2006 2.0 3.0 Dic 2011
Windows PowerShell se ha creado sobre Common Language Runtime (CLR) de .NET Framework.
Acepta
Powershell se basa en escasos comandos integrados (cmdlets, function y alias), que se integran en distintas utilidades que los combinan: cmdlets (command-let) : comando de una sla funcin que manipula objetos en powershell. Siempre tienen formato: verbo sustantivo (Get-Help,Start-Service) Verbos: Get: obtiene dato Set: establece o modifica dato Format: aplica formato a datos out: dirigen salida a un destino.
Powershell puede ejecutar programas de lnea de comandos tradicional (cmd.exe) y/o aplicaciones windows, e interactuar con ellos. Ejemplo:
ipconfig | select-string -pattern puerta
Software de terceros
Quest PowerGUI: Script Editor Administrative Console
Reglas bsicas de codificacin: - Las lneas se separan por ; (No se distinguen espacios. ) - NO distingue MAYUSCULAS y minsculas. Get-Help GET-HELP; //ok - Comentarios mediante #misma lnea
Quest PowerGUI:
Quest PowerGUI:
Script Editor
Quest PowerGUI:
Consola Administrativa
Generacin de script bsico (con ISE): holamundo.ps1 $texto=Hola Mundo Powershell! Write-Host $texto
Ventana de depuracin!
Muestra informacin sobre el objeto de servicio, incluidos el nombre del tipo del objeto y una lista de sus propiedades y mtodos.
Variable: Posicin de memoria reservada para almacenar un determinado valor durante la ejecucin de un programa. Tipo de Datos: identifica los valores y operaciones permitidas sobre una determinada variable.
TIPOS DE DATOS
( binaria). Valores $true $false Enteros 32 bits entre +/- 32.768 Enteros 64 bits entre +/- 2.147.483.648 Decimal con doble precisin (+/- 1E308) Carcter individual Cadena de caracteres Fecha y hora
Para declarar una variable en powershell, slo se tiene que utilizar el identificador $, y colocar un nombre a la variable. Asignando un valor a la variable, automticamente sta toma el tipo de datos correspondiente a se valor $a= 5 # $a se convierte en un [int] $a=texto # ahora es un [string] Se puede asignar especficamente el tipo, de forma que ste nunca cambie. [int] $a=5 $a=cadena #aqu devolver un error!.
Las variables del entorno pueden ser consultadas como si de una unidad se tratara.
Variables de entorno: adems de las variables predefinidas, se puede acceder a parmetros del sistema operativo a travs de env:
Arrays
Permiten almacenar varios datos bajo una misma variable, de forma equivalente a una tabla. Cada elemento del array se identifica por un ndice.
El primer elemento es el elemento 0. (zero-index)
Simplificando, nos podemos encontrar 3 tipos de arrays: Vectores: $vector= C1,C2,C3 $vector=@(C1, C2,C3) Array Multidimensional: $matriz2d= New-Object object[,] 3,3 Arrays Irregular(jagged arrays): $aspero= 1,2, (1,2,3), 3
Arrays(2) Los arrays no slo pueden ser speros en dimensin, sino tambin en el tipo de datos que contienen:
Arrays(3) Los arrays mas habituales son los devueltos por los propios comandos.
Arrays(3)
Un tipo especial de array son las Tablas Hash, que permiten almacenar pares clave-valor:
Operadores:
Smbolos que indican el tipo de operacin a realizar sobre variables o datos. Aritmticos: + -*/% ++ (aumentar) -- (disminuir) Lgicos: Relacionales: -and(y) -or () -not (distinto)
-eq Igual que -ne Distinto -lt Menor que (-le menor o igual que) -gt Mayor que (-ge mayor o igual que)
Otros:
-match -like (busquedas en texto) .. (rango) # (comentario) -as (convierte tipo) & . (llamadas a operador) -F (Fomatea)
. Ejecuta en el contexto actual. & No debe confundirse con el operador -and NOTA: Tienen ms sentido en los objetos.
Algoritmo: Lista finita de instrucciones que especifica la secuencia de operaciones a realizar para resolver un problema, en el cual, los resultados dependern de unas entradas especficas. Programa Conjunto de instrucciones o sentencias que representan a un algoritmo
Estructuras del lenguaje: Controles de flujo Control de Flujo: Los algoritmos se organizan combinando tres estructuras de control distintas :
Secuencial Alternativa Iterativa
Alternativa Dependiendo de una condicin, se realiza una accin de entre dos (o ms) posibles.
if (condicion) { InstruccionesSiCierto } elseif (condicion) { InstruccionesSiCierto } else { InstruccionesSiFalso }
Alternativa Mltiple:
Iterativa Repeticin de una o ms operaciones un nmero de veces, mientras se cumpla una determinada condicin Dos tipos tradicionales: FOR - WHILE
for (<inicial>; <condicin>; <repetir>) {<lista de instrucciones>}
foreach( <elemento en coleccin> ) { <lista de instrucciones>}
BUCLES ANIDADOS Problemilla: generar los numeros de 1 a 9 colocados en una tabla de 3 por 3 (ascendente o descendente).
Ejercicio: - Creacin de carpetas ASIR1, ASIR2, DAW1, DAW2, DAM1,DAM2, SMR1, SMR2, SMRd1, SMRd2, a partir de un vector de nombres. - Creacin de 20 subcarpetas de usuarios por cada carpeta creada. Solucin con FOR , FOREACH, y WHILE
Canalizaciones (Pipes)
Las canalizaciones actan como una serie de tubos conectados. (Ejecucin secuencial). Los elementos que se desplazan por la canalizacin pasan a travs de cada tubo. Los comandos se conectan entre s con el operador de canalizacin "|". El resultado de cada comando se utiliza como entrada en el siguiente comando. Ej:
Cada paso de la canalizacin puede devolver un array de resultados. Para actuar sobre cada uno de los elementos del array se recurre a $_ Es muy til realizar filtrados mediante where-object ( o sus alias where ? ) Get-Service | where {$_.status -eq "Running" }
Podemos almacenar los resultados de una canalizacin en una variable para procesarlos despus con un bucle foreach
$updates=get-service | where {$_.DisplayName -like "*Update*}
El ejemplo anterior es vlido, pero no muy lgico. Las propias canalizaciones nos permiten simplificar eso.
(Escribir en na sla lnea):
El orden de las canalizaciones no es trivial. Si queremos que se ordenen las listas, mediante sortobject, deberemos hacerlo antes de formatear la tabla:
(Escribir en na sla lnea, y CORREGIR el ERROR):
get-service | where {$_.DisplayName -like "*Windows*} | format-table -property name,status | sort-object -property status
Funciones:
function
Conjunto de instrucciones (identificadas por un nombre y agrupadas entre llaves { } ), que pueden reutilizarse a travs de una llamada (su nombre), y alterar su comportamiento mediante parmetros.
Ejemplo de definicin : function Suma ($a, $b) { $res=$a+$b Write-Host La suma es $res } Suma 2 2
Funciones: function
No es necesario el uso explicito de argumentos. Dentro de la funcin, el array $args, contiene todos los parmetros que pasemos. Return (opcional), devuelve el resultado generado (si le hubiera) Ejemplo: function SumaTodo { $res=0 foreach($s in $args) {$res=$res+ $s} return $res } SumaTodo 1 2 3 4 5 6
Funciones: function
Lo que devuelve una function, puede ser utilizado para ms cosas. function suma($a, $b) { $a+$b } #sin return, nos devolver la ltima operacin #los parmetros se separan con espacios. Encerramos todo #entre prntesis, para distinguir parametros de la siguiente #operacin $a= (suma 10 20) *2
Funciones: function
Las Function se pueden guardar en ficheros y ser reutilizados. Desde otro script se incluyen con . [NombreFichero] Fichero: Discos.ps1
Funciones: function
LINKS tiles Computer Performance Todo tipo de scripts , incluso Powershell http://www.computerperformance.co.uk/powershell/index.htm
Conceptos principales:
Clase: descripcin abstracta de un grupo de objetos, que contiene datos (atributos) y procedimientos que son capaces de actuar sobre esos datos (mtodos). Todo objeto es instancia directa de una clase. Atributos: describen el estado de un objeto. Son variables de tipo simple (numricos, caracteres) o bien complejos (otros objetos). Mtodos: Representan las acciones que pueden realizarse por el objeto, sobre el objeto, o datos locales del objeto.
Conceptos principales:
Herencia: propiedad que permite a los objetos ser construidos a partir de otros objetos, utilizando las estructuras de datos y mtodos previstos en antepasados. Las clases se suelen agrupar en jerarquas, con una clase principal [Object] de la que dependen la mayor parte del resto. Por ello, casi todos los objetos suelen tener propiedades comunes (derivadas de la clase origen)
POWERSHELL
Introduccin a Powershell Creacin y depuracin de scripts. Estructuras del lenguaje.
Interpretacin de scripts del sistema. Adaptaciones. Scripts para la administracin de cuentas de usuario, procesos y servicios del sistema operativo Utilizacin de extensiones de comandos para tareas de administracin: POWERCLI
WMI Windows Management Instrumentation Conjunto de objetos y procedimientos que permiten tener acceso y compartir la informacin de administracin de los equipos de una red.
Acceso a la totalidad del sistema operativo de cualquier
equipo de la red
La totalidad de objetos WMI accesibles se puede obtener mediante: Get-WmiObject -list (ms de 1000)
Get-WmiObject -list | Where-Object {$_.name -match "Win32"} (ms de 600)
Parmetros tiles de Wmiobject. Ejemplos: namespace, Lista de espacios disponibles: Get-WmiObject Namespace root class __Namespace
Parmetros tiles de Wmiobject. Ejemplos: namespace (2) Lista de elementos en otro namespace Get-WmiObject Namespace root\directory\ldap -list
Cmo obtener tamao disponible total de todos los discos no pticos del equipo?
http://technet.microsoft.com/es-es/library/dd315292.aspx
2) Convirtelo en funcin.
3) Crea una funcin que acepte por parmetro una carpeta de red y cree una unidad de red conectada a esa carpeta. Ej: ConectaCarpeta \\192.168.0.10\Musica
COM Component Object Model - Plataforma de Microsoft para componentes de software. - Permite la comunicacin entre procesos y la creacin dinmica de objetos, en cualquier lenguaje de programacin que soporte dicha tecnologa. - Abarca las tecnologas OLE, OLE Automation, ActiveX, COM+ y DCOM
VBA: Visual Basic for Applications: plataforma de desarrollo para automatizacin de aplicaciones office. Ejemplo de solucin idntica en VBA:
Podemos exportar/importar datos va CSV (mtodo 2) - CSV es un formato donde las columnas se separan por comas
- Al importar en excel, crea una sola columna. Es necesario: Seleccionar la columa Datos -> Texto en Columnas Delimitados-> Tabulacin, Coma Finalizar
- (PtrToStringAuto, y SecureStringToBSTR) convierten el password encriptado en un texto plano, y se lo pasa a la funcin para construir el objeto dominio.
A partir de ahora, haremos ejemplos sencillos, en los que o nos conectamos ya como un usuario del dominio, o se pasa el password como texto plano:
- Acceso al contenedor de usuarios, y a una unidad organizativa en concreto (desde el propio dominio)
- Bsqueda de usuarios.
- Librera ActiveDirectory: Para ver la librera, lo mejor es activarla desde del Powergui: File->PowerShell Libraries - Una vez activado, el intelisense tendr incluido todos los cmdlets *-AD*
Librera ActiveDirectory:
- Unidades organizativas:
Librera ActiveDirectory:
Librera ActiveDirectory:
Librera ActiveDirectory:
Librera ActiveDirectory:
- Eliminacin de elementos.
EJEMPLOS POWERSHELL