La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Código: HOL-WIN53 Microsoft Windows Server 2008 R2 PowerShell.

Presentaciones similares


Presentación del tema: "Código: HOL-WIN53 Microsoft Windows Server 2008 R2 PowerShell."— Transcripción de la presentación:

1 Código: HOL-WIN53 Microsoft Windows Server 2008 R2 PowerShell

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 Windows Server 2008 R2 Requisitos para su instalación: –Instalar en caracteristicas Windows PowerShell

9 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

10 Listado cmdlets ► Get-command

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

12 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

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

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

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

16 Ayuda ► Para solicitar la ayuda podremos operar con la siguiente sintaxis:  Get-help cmdlet  Man cmdlet  Help cmdlet  cmdlet -?

17 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

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

19 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

20 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

21 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

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

23 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

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

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

26 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

27 Introducción  Registro. Clave HKEY_Current_User Clave HKEY_Local_Machine  Entorno  Variables

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

29 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

30 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

31 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

32 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

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

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

35 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

36 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>

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

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

39 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>

40 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

41 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 C:\Scripts\Script.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see “get-help about_signing” for more details. At line:1 char:9 +.\Script.ps1 <<<<

42 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

43 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

44 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

45 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

46 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

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

48 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

49 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

50 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

51 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

52 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

53 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

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

55 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

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

57 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

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

59 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

60 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

61 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

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

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

64 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

65 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”}

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

67 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

68 Suscripción gratuita en: http://www.informatica64.com/technews.aspx

69 Informática 64 http://www.informatica64.com i64@informatica64.com +34 91 146 20 00


Descargar ppt "Código: HOL-WIN53 Microsoft Windows Server 2008 R2 PowerShell."

Presentaciones similares


Anuncios Google