microsoft windows server 2008 powershell julián blázquez garcía [email protected]...

75
Microsoft Windows Server Microsoft Windows Server 2008 2008 PowerShell PowerShell Julián Blázquez García [email protected] HOL-WIN34

Upload: emigdia-maez

Post on 14-Apr-2015

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Microsoft Windows Server 2008Microsoft Windows Server 2008

PowerShellPowerShell

Julián Blázquez García

[email protected]

HOL-WIN34

Page 2: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 3: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

¿Windows PowerShell?

• Es un entorno de línea de comandos

• Acepta comandos de la línea de comandos estándar

• Permite acceder al sistema de archivos, al registro y al almacén de certificados

• Permite la ejecución de Script

• Incluso se pueden lanzar los Script desde la línea de comandos estándar

Page 4: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Windows PowerShell

Page 5: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Apariencia Similar

Page 6: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

¿Por qué usar PowerShell?

• La necesidad de extender los sistemas de Scripting

• Sistema más robusto

• Extensible a tareas de administración de sistemas y para el desarrollo

• Integración de entornos (por ejemplo Exchange)

• Evolución de los sistemas de comandos utilizados

Page 7: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Entorno PowerShell

• Presenta una Shell de símbolo de sistema interactivo

• Entorno de scripting

• Ejecución de comandos y aplicaciones

• Interacción local y remota

• Creado sobre Common Language Runtime de .NET y .NET Framework

Page 8: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Disponibilidad PowerShell

• Sistemas Operativos compatibles con PowerShell• Windows XP SP2• Windows Server 2003 SP1• Windows Vista• Windows Server 2008

• Requisitos para su instalación:– Descargar PowerShell para el sistema operativo en

http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx

– Instalado Microsoft .Net Framework 2.0

Page 9: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 10: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Cmdlets – Introducción

• Diseñados para usar objetos

• Trabajan como comandos binarios

• Se utilizan para agregar proveedores de Windows

• Utilizan la sintaxis de C#

• Su nomenclatura es mediante sustantivos y verbos

Page 11: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Listado cmdlets

• Get-command

Page 12: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Listado de cmdlest

• Para visualizar los cmdlets con verbo:

– Get-command –verb verbo– "get" sólo recuperan datos– "set" sólo establecen o modifican los datos– "format" sólo aplican formato a los datos– "out" sólo dirigen la salida a un destino determinado.

• Para ordenarlos por familias para un objeto:

– Get-comand –noun objeto p.e: service, process …

Page 13: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Sintaxis

• Los cmdlet contienen cada uno una sintaxis determinada.

• Mediante el parámetro –Syntax podemos recuperar la sintaxis de los cmdlet

– Get-command –syntax

• Para cmdlet específico

– Get-command –syntax cmdlet

Page 14: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Comandos y cmdlets

• No todos los comando que utilizamos son cmdlets aunque lleven sustantivo y verbo

• Aquí tenemos un ejemplo de función interna.

– Clear-host

• Para obtener todos los comandos

– Get-command *

• Los comandos pueden filtrarse

– Get-command –commandtype tipo (Alias, function, application)

Page 15: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Parámetros

• Powersell procesa los parámetros de forma directa.

• Los nombres de parámetros se utilizan siempre con un guión (-) como prefijo.

• Por ejemplo cuando a un cmdlet le aplicamos el parámetro -? nos muestra la ayuda.

Page 16: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Parámetros convencionales

• Whatif

• Confirm

• Verbose

• Debug

• Warn

• Erroraction

• Errorvariable

• Outvariable

• Force

• Exclude

• Include

• Passthru

• Path

• CaseSensitive

• Outbuffer

Page 17: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Ayuda

• Para solicitar la ayuda podremos operar con la siguiente sintaxis:

– Get-help cmdlet

– Man cmdlet

– Help cmdlet

– cmdlet -?

Page 18: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Alias

• El sistema trabaja mediante alias o abreviados

• Para obtener los alias podremos realizarlo mediante este filtro:

– Get-command –commandtype alias

• Si queremos obtener el comando que invoca el alias

– Get-alias alias

• Creación de alias.

– Set alias –name alias –value valor

Page 19: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Canalización de objetos

• Actúan como tubos conectados de tal forma que los objetos pasan a través de cada tubo.

• La canalización se establece mediante el carácter “|”.

• Cada comando suele pasar su resultado al siguiente comando

• Reducen la demanda de recursos obteniendo resultados más inmediatos.

Page 20: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Salida de datos mediante pipe

• Podemos controlar los recursos del sistema.– Comprobar rendimiento del procesador con ambas instrucciones

• Get-childitem c:\windows –recurse

• Get-childitem c:\windows –recurse | out-host -paging

Page 21: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Cambios de formato

• Powershell presenta una serie de cmdlets para controla las propiedades que se muestran de objetos específicos.

• Comienzan por el verbo format:

– Format-Wide.

– Format-List.

– Format-Table.

– Format-Custom

Page 22: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Ejemplos

• Sacar por lista

– Get-process –name proceso | format-list

• Por tabla

– Get-process –name proceso | format-table.

• Mediante autoformato.

– Get-process –name proceso | format-table –property path,name,id,company -autosize

Page 23: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Comodines

• Los cmdlets y comandos admiten el uso de comodines.

• Son útiles cuando queremos obtener todos los datos de un objeto.

– Get-process –name proceso | format-list –property *

Page 24: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agrupando datos

• Los datos obtenidos cuando devuelven listas grandes pueden ser difíciles de comparar.

• Mediante el parámetro Groupby podemos agrupar el resultado en función del valor de una propiedad.

– Get-process –name * | format-table –wrap –autosize –groupby propiedad

Page 25: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Salida de datos• PowerShell está orientado a ofrecer los objetos

obtenidos por pantalla aunque podríamos sacarlos por otras ubicaciones.

• La salida presenta el verbo out.

• Por defecto la salida es por out-host.

• La especificación de la salida es importante hacerlo correctamente. P.ej. no es lo mismo– Get-process | out-host –paging | format-list

– Get-process | format-list | out-host –paging

• Las salidas deben establecerse al final de la sintaxis.

Page 26: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Tipos de salidas

• Salida por pantalla– Out-host –paging– More

• Imprimir datos.– Out-printer– Por defecto utiliza la predeterminada si queremos utilizar alguna

específica utilizaremos el parámetro –name impresora

• Fichero.– Out-file– Crea por defecto un fichero en formato unicode, si queremos

formato ASCII utilizaremos el parámetro –encoding ASCII.

Page 27: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 28: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Introducción

• Powershell define diferentes tipos de unidades a las que se puede tener objeto.

– Unidades lógicas de disco y almacenamiento.

– Alias

– Funciones

– Contenedor de certificados.

• Usuario

• Equipo

Page 29: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Introducción

– Registro.

• Clave HKEY_Current_User

• Clave HKEY_Local_Machine

– Entorno

– Variables

Page 30: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Unidades

• Para obtener las unidades utilizaremos el cmdlet:– Get-psdrive

• Si queremos diferenciarlos por proveedor– Get-psdrive –psprovider proveedor

Page 31: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Creación y eliminación unidades

• Crear nuevas unidades utilizadas exclusivamente por PowerShell que pueden definir alias de unidades

– New-psdrive –name nombre –psprovider proveedor –root ruta

• Eliminar unidades

– Remove-psdrive –name nombre

Page 32: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Archivos y carpetas

• Como otras Shell, PowerShell permite la gestión de ficheros y carpetas.

• Se pueden utilizar dir o ls aunque tienen sintaxis propias tipo verbo/sustantivo como get-childitem

• Para devolver los resultados dentro de los contenedores se utiliza el parámetro –recurse

• Si queremos obtener los elementos ocultos utilizaremos el parámetro -force

Page 33: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Filtrados y comodines

• Podremos filtrar elementos mediante el parámetro name

• Podremos utilizar caracteres comodines para controlar las búsquedas:

– *

– ?

– [ ] (búsqueda de caracteres que coincidan)

• Podremos excluir elementos mediante el parámetro exclude

Page 34: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Creación de elementos

• Pueden crearse elementos mediante la sintaxis cmdlets con el parámetro new-item y el valor file o directory.

– New-item –path ruta –itemtype directory

– New-item –path ruta –itemtype file

Page 35: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Trabajo con elementos

• Cambiar nombres: rename-item

• Mover elementos: move-item

• Copiar elemento: copy-item

• Eliminar elementos: remove-item

• Ejecutar elementos: invoke-item

Page 36: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 37: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Scripting

• Scripting a través de línea de comandos

• Política de Ejecución

• Ejecutar scripts

– CScript

– WScript

– Windows PowerShell Scripts

Page 38: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Script Línea de Comandos

• Todas las variables empiezan con el carácter “$”

• Las variables mantienen sus valores durante toda la sesión del usuario

• Al cerrar la sesión las variables se eliminan

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> $a = 4PS C:\Scripts> $b = 6PS C:\Scripts> $a + $b10

Page 39: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Script Línea de Comandos

• Permite instrucciones de control de flujo

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> $a = 4PS C:\Scripts> $b = 6PS C:\Scripts> $a + $b10PS C:\Scripts> if ($a –gt $b)>> {$a}>> else>> {$b}>>6PS C:\Scripts>

Page 40: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Script Línea de Comandos

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> $a = Get-ServicePS C:\Scripts> $a

Status Name DisplayName------ ---- -----------Running AeLookupSvc Experiencia con aplicacionesStopped Appinfo Información de la aplicaciónStopped AppMgmt Administración de aplicacionesRunning Browser Examinador de equiposStopped CertPropSvc Propagación de certificadosStopped COMSysApp Aplicación del sistema COM+Running CryptSvc Servicios de cifradoRunning Dhcp Cliente DHCPRunning Dnscache Cliente DNS...

Page 41: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Scripts en Archivos

• Crear los scripts con la aplicación Notepad

• Salvar los archivos con extensión .ps1

$a = 4$b = 6“a = “ + $a“b = “ + $bif ($a –gt $b){ “a es mayor que b”}else{ “a no es mayor que b”}

Script que asigna valores a dos variables y comprueba cual es mayor.

Page 42: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Ejecutando Scripts

• Los scripts de PowerShell tienen extensión .ps1• Se debe especificar la ruta completa, aunque se

encuentre en la ruta actual• O añadir la ruta a la variable de entorno Path

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> C:\Scripts\Script.ps1

a = 4b = 6a no es mayor que b

PS C:\Scripts>

Page 43: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Políticas de Ejecución

• La política de ejecución determinan que Script podrá ser ejecutado en la máquina local

• Cuatro políticas de Ejecución– Restricted (por defecto)

• PowerShell no permite la ejecución de Scripts

– AllSigned• Únicamente Scripts firmados por publicadores de confianza

– RemoteSigned• Los firmados y los creados localmente en la máquina

– Unrestricted• Se ejecutarán todos los scripts

Page 44: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Políticas de Ejecución

• Usar el cmdlet Get-ExecutionPolicy para descubrir que política de ejecución se está aplicando

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> Get-ExecutionPolicy

Restricted

PS C:\Scripts> ./Script.ps1

File “get-help about_signing” for more details.At line:1 char:9+ .\Script.ps1 <<<<

Page 45: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Políticas de Ejecución

• Usar el cmdlet Set-ExecutionPolicy para modificar la política de ejecución a aplicar

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> Set-ExecutionPolicy Unrestricted

PS C:\Scripts> ./Script.ps1

a = 4b = 6a no es mayor que b

Page 46: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Scripts VBScript

• Se pueden ejecutar script escritos en VBScript desde PowerShell

• Se deben ejecutar mediante los comandos CScript o WScript

• Las políticas de ejecución no se le aplican a estos script

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> Get-ExecutionPolicy

Restricted

PS C:\Scripts> WScript test.vbs

Test VBScript

Page 47: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Perfiles

• Windows PowerShell ejecuta un script cada vez que se inicia sesión

• El script que se ejecuta es el que apunta la variable $Profile

• Por defecto $Profile apunta a My Documents\ WindowsPowerShell\Microsoft.PowerShell_Profile.ps1

• Se puede editar el perfil con el bloc de notas

• El perfil no se ejecuta si las políticas de ejecución está en Restricted

Page 48: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Crear un Perfil

• Para comprobar si existe o no un perfil creado:

• Para crear el perfil se debe ejecutar:

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> Test-path $Profile

False

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> New-Item -Path $profile -ItemType file -Force

Page 49: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 50: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Objetos

• Powershell trabajo con objetos com y .net.

• Dentro de los objetos más importantes con los que podemos trabajar en administración se encuentran los objetos de WMI.

• El acceso a objetos WMI se realiza mediante el cmdlet get-wmiobject que permite enumerar las clases de WMI

Page 51: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

WMI Remoto

• Podemos utilizar PowerShell para acceder a un equipo remoto mediante el parámetro –computername

Get-wmiobject –list –computername 192.168.0.1

• La cuenta utilizada debe pertenecer al grupo de administradores

• No es necesario que el equipo remoto tenga instalado PowerShell.

Page 52: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Obtención detallada de clases

• Si conocemos el nombre de una clase WMI podemos obtener la información.

– Por ejemplo una de las clases más utilizadas es Win32_operatingsystem

• Get-WmiObject -Class "Win32_OperatingSystem" -Namespace "root/cimv2 "

– Como esta clase presenta más propiedades podremos recuperarlas mediante Get-Member:

• Get-WmiObject -Class "Win32_OperatingSystem" -Namespace "root/cimv2 “ | Get-Member –MemberTypeProperty

Page 53: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Utilización de objetos

• Muchos componentes com y .net permiten realizar muchas tareas que amplían las funcionalidades de cmdlets.

• Muchos comandos cmdlets no se pueden utilizar remotamente frente a los componentes com y .net

• Pueden crearse instancias de una clase .Net mediante el cmdlet New-object

Page 54: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Almacenamiento en variables

• El uso de objetos para más de un uso dentro de la sesión puede referenciarse mediante variables:

– $app = new-object –typename system.diagnostics.eventlog –argumentlist application

– Genera la variable $app donde se almacena un registro de eventos para el registro aplicación.

• Podremos acceder remotamente proporcionando la IP o el nombre de equipo remoto como argumentos.

– New-object –typename system.diagnostics.eventlog application,192.168.0.1

Page 55: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 56: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Aplicaciones

• Muchas aplicaciones pueden automatizarse mediante objetos

• Algunas de las más utilizadas con Internet Explorer o Microsoft Office

• Utilizaremos I.E. como referencia mediante su ProgID: InternetExplorer.Application

Page 57: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Creación de la instancia

• $ie1 = new-object –comobject internetexplorer.application

– Podemos comprobar que se está ejecutando mediante get-process aunque no lo veamos.

– El valor visible se encuentra por defecto en false.

• Para poder ver las propiedades y métodos de I.E.

– $ie1 | get-member

• Si queremos hacer visible la ventana del I.E.

– $ie1.visble = $true

Page 58: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Uso de I.E. desde Powershell• Para ir a una url utilizaremos el método navigate:

– $ie1.navigate(“http://www.informatica64.com”)

• Permiten recuperar el contenido del texto HTML.– $ie1.Document.body.innertext

• Para cerrar el objeto utilizamos el método quit()– $ie1.quit()

• Aunque cerremos el objeto sigue apareciendo como un objeto com, para volverlo a utilizar deberemos eliminar la referencia– Remove-variable ie1– $ie1 = $null

Page 59: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Uso de clases

• No todas las clases de .net framework pueden crearse mediante new-object.

• Determinadas clases no hay que crearlas puesto que ya están creadas, solamente hay que utilizarlas.

• Estas clases se denominan estáticas puesto que no pueden crearse ni eliminarse.

Page 60: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Clases estáticas

• Cuando las definamos deben ir entre corchetes.

– [system.environment]

• El uso de miembros estáticos necesitarán especificar el parámetro static:

– [system.environment] | get-member -static

Page 61: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Ejemplos de clase estática

• [system.environment]::commandline

• [system.environment]::osversion

• [system.environment]::username

• [system.environment]::machinename

• [system.environment]::systemdirectory

Page 62: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Variables

• PowerShell admite la generación de variables

• Para mostrar la información de una variables puede utilizarse get-member

• PowerShell permite la manipulación de variables.– Para ver una lista completa de manipulaciones:

• Get-command –noun variable | format-table –propertyname,definition –autosize –wrap

• Podremos conocer todas la variables mediante la sentencia– Get-childitem variable

Page 63: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Agenda

• PowerShell

• Cmdlets

• Unidades

• Scripting

• Objetos

• Gestión aplicaciones y objetos

• Tareas de administración

Page 64: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Introducción

• Una de las funcionalidades más importantes que podremos encontrar en PowerShell es la administración de los sistemas.

• La administración puede ser local o remota.

• Permite combinar cmdlets con aplicaciones externas.

Page 65: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Administración de Procesos

• Uno de los elemento fundamentales es el control de los procesos

• Estos se realizan a través de dos cmdlets:

– Get-process

– Stop-process

• Get-process proceso

• Admite el uso de comodines y los modificadores -name e -id

Page 66: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Parar Procesos

• Podremos parar procesos mediante la orden stop-process

• Para ordenes en las cuales no queramos equivocarnos podremos utilizar el parámetro -confirm

Windows PowerShellCopyright (C) 2006 Microsoft Corporation. Reservados todos los derechos.

PS C:\Scripts> Stop-Process iexplorer

Confirmar¿Está seguro de que desea realizar esta acción?Realizando la operación "Stop-Process" en el destino "iexplore (3916)".[S] Sí [O] Sí a todo [N] No [T] No a todo [U] Suspender [?] Ayuda (el valor predeterminado es "S"): s

Page 67: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Administración de servicios• Podemos gestionar los servicios de un sistema mediante

los cmdlets service– Get-service

• Mediante –displayname podremos buscar un servicio por el nombre para mostrar.

• Los servicios pueden iniciarse, suspenderse o reiniciarse:– Stop-service

– Start-service

– Suspend-service

– Restart-service

Page 68: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Obtención de Datos con WMI

• Mediante Get-Wmiobject podremos obtener la configuración fundamental de Windows.

• Podremos obtener la información localmente mediante ‘.’ o mediante la IP de un equipo remoto.

Page 69: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Ejemplos

• Obtener datos de la BIOS– Get-wmiobject –class win32_bios

• Obtener datos del procesador.– Get-wmiobject –class win32_processor

• Mostrar actualizaciones instaladas.– Get –wmiobject –class win32_quickfixengineering

• Mostrar usuarios– Get-wmiobject –class win32_operatingsystem | select-object –

property *user*

Page 70: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Aplicaciones instaladas

• Aplicaciones que están instaladas

– Get-wmiobject –class win32_product

• Aplicaciones que pueden desinstalarse

– New-psdrive –name uninstall –psprovider registy-root HKLM:\software\microsoft\windows\ currentversion\uninstall

Page 71: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Instalar aplicaciones

• La clase win32_product permite instalar paquetes .msi

• En el caso de instalaciones remotas deberos especificar la ruta del paquete como una ruta de red UNC

• (get-WMIobjec –computername IP o nombre –list | where object –filterscript {$_.name-eq “Win32_Product”)} .invokemethod(“install”,”\\ruta unc paquete msi”}

Page 72: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Desinstalar aplicaciones

• Igualmente que instalamos podemos invocar al método uninstall para eliminar una aplicación:

– (get-wmiobject –class wind32_product –filter “name=‘aplicación’” –computername .) .invokemethod (“uninstall”,$null)

Page 73: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Cambiar estado de un equipo

• Un equipo lo podremos bloquear, cerrar la sesión, apagarlo o reiniciarlo.

– Bloquearlo

• Rundll32.exe user32.dll,lockworkstation

– Cerrar la sesión

• Shutdown.exe -1• (get-wmiobject –class win32_operatingsystem –

computername .) .invokemethod(“win32shutdown”, 0)

– Apagarlo o reiniciarlo

• Tsshutdn.exe o shutdown.exe

Page 74: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

TechNews de Informática 64

• Suscripción gratuita en [email protected]

Page 75: Microsoft Windows Server 2008 PowerShell Julián Blázquez García jblazquez@informatica64.com HOL-WIN34

Contactos

• Informática 64

– http://www.informatica64.com

[email protected]

– +34 91 146 20 00

• Julián Blázquez García

[email protected]