La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Microsoft Windows Server 2008 PowerShell Julián Blázquez García HOL-WIN34.

Presentaciones similares


Presentación del tema: "Microsoft Windows Server 2008 PowerShell Julián Blázquez García HOL-WIN34."— Transcripción de la presentación:

1 Microsoft Windows Server 2008 PowerShell Julián Blázquez García HOL-WIN34

2 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

3 ¿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

4 Windows PowerShell

5 Apariencia Similar

6 ¿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

7 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

8 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 –Instalado Microsoft.Net Framework 2.0

9 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

10 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

11 Listado cmdlets Get-command

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

13 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

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

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

16 Parámetros convencionales Whatif Confirm Verbose Debug Warn Erroraction Errorvariable Outvariable Force Exclude Include Passthru Path CaseSensitive Outbuffer

17 Ayuda Para solicitar la ayuda podremos operar con la siguiente sintaxis: –Get-help cmdlet –Man cmdlet –Help cmdlet –cmdlet -?

18 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

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

20 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

21 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

22 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

23 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 *

24 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

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

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

27 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

28 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

29 Introducción –Registro. Clave HKEY_Current_User Clave HKEY_Local_Machine –Entorno –Variables

30 Unidades Para obtener las unidades utilizaremos el cmdlet: –Get-psdrive Si queremos diferenciarlos por proveedor –Get-psdrive –psprovider proveedor

31 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

32 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

33 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

34 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

35 Trabajo con elementos Cambiar nombres: rename-item Mover elementos: move-item Copiar elemento: copy-item Eliminar elementos: remove-item Ejecutar elementos: invoke-item

36 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

37 Scripting Scripting a través de línea de comandos Política de Ejecución Ejecutar scripts –CScript –WScript –Windows PowerShell Scripts

38 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 PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> $a = 4 PS C:\Scripts> $b = 6 PS C:\Scripts> $a + $b 10

39 Script Línea de Comandos Permite instrucciones de control de flujo Windows PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> $a = 4 PS C:\Scripts> $b = 6 PS C:\Scripts> $a + $b 10 PS C:\Scripts> if ($a –gt $b) >> {$a} >> else >> {$b} >> 6 PS C:\Scripts>

40 Script Línea de Comandos Windows PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> $a = Get-Service PS C:\Scripts> $a Status Name DisplayName Running AeLookupSvc Experiencia con aplicaciones Stopped Appinfo Información de la aplicación Stopped AppMgmt Administración de aplicaciones Running Browser Examinador de equipos Stopped CertPropSvc Propagación de certificados Stopped COMSysApp Aplicación del sistema COM+ Running CryptSvc Servicios de cifrado Running Dhcp Cliente DHCP Running Dnscache Cliente DNS...

41 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 = + $b if ($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.

42 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 PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> C:\Scripts\Script.ps1 a = 4 b = 6 a no es mayor que b PS C:\Scripts>

43 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

44 Políticas de Ejecución Usar el cmdlet Get-ExecutionPolicy para descubrir que política de ejecución se está aplicando Windows PowerShell Copyright (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 <<<<

45 Políticas de Ejecución Usar el cmdlet Set-ExecutionPolicy para modificar la política de ejecución a aplicar Windows PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> Set-ExecutionPolicy Unrestricted PS C:\Scripts>./Script.ps1 a = 4 b = 6 a no es mayor que b

46 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 PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> Get-ExecutionPolicy Restricted PS C:\Scripts> WScript test.vbs Test VBScript

47 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

48 Crear un Perfil Para comprobar si existe o no un perfil creado: Para crear el perfil se debe ejecutar: Windows PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> Test-path $Profile False Windows PowerShell Copyright (C) 2006 Microsoft Corporation. Reservados todos los derechos. PS C:\Scripts> New-Item -Path $profile -ItemType file -Force

49 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

50 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

51 WMI Remoto Podemos utilizar PowerShell para acceder a un equipo remoto mediante el parámetro –computername Get-wmiobject –list –computername La cuenta utilizada debe pertenecer al grupo de administradores No es necesario que el equipo remoto tenga instalado PowerShell.

52 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 –MemberType Property

53 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

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

55 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

56 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

57 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

58 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

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

60 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

61 Ejemplos de clase estática [system.environment]::commandline [system.environment]::osversion [system.environment]::username [system.environment]::machinename [system.environment]::systemdirectory

62 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

63 Agenda PowerShell Cmdlets Unidades Scripting Objetos Gestión aplicaciones y objetos Tareas de administración

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

65 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

66 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 PowerShell Copyright (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

67 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

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

69 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*

70 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

71 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}

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

73 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

74 TechNews de Informática 64 Suscripción gratuita en

75 Contactos Informática 64 –http://www.informatica64.comhttp://www.informatica64.com – Julián Blázquez García


Descargar ppt "Microsoft Windows Server 2008 PowerShell Julián Blázquez García HOL-WIN34."

Presentaciones similares


Anuncios Google