Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PowerShell para administradores

4,126 views

Published on

Published in: Technology
  • Be the first to comment

PowerShell para administradores

  1. 1. Simplificando las tareas de administración mediante el uso de Powershell<br />Alejandro Pacheco Microsoft Chile<br />Alejandro.pacheco@microsoft.comhttp://blogs.msdn.com/apacheco<br />Pablo Campos SáezMCT, MCTS, RHCT<br />pacampos@alx.cl<br />http://geeks.ms/blogs/pcampos<br />
  2. 2. Agenda<br /><ul><li>Qué es y para quién es
  3. 3. !Objetos, Objetos, Objetos, Objetos!
  4. 4. Seguridad
  5. 5. Cmdlets y su salida |pipes|
  6. 6. Arreglos
  7. 7. Estructuras de iteración
  8. 8. WMI
  9. 9. Remoting
  10. 10. Demos DemosDemos</li></li></ul><li>PowerShell<br />Por qué?<br />Qué?<br />Shell Interactiva<br />Completo set de comandos<br />Nuevo Language <br />de Scripting<br />Orientada a Objetos<br />Revolucionaria<br />
  11. 11. Objetos<br />“Un objectoesunacolección de partes y cómousarlas ”<br />Cómo se Usan<br />Partes<br />Usarlas<br />Metodos<br />Partes<br />Propiedades<br />Pedalear<br />Manubrio<br />GiroDerecho<br />Ruedas<br />GiroIzquierdo<br />Pedales<br />PresionarFrenoDelantero<br />Frenos<br />Marco<br />PresionarFrenoDelantero<br />
  12. 12. Objetos<br />CómoUsarlas<br />Métodos<br />Partes<br />Propiedades<br />Stop()<br />Nombre del Servicio<br />Start()<br />Estado<br />Pause()<br />Descripción<br />Windows<br />Service<br />
  13. 13. Ejemplo:Cambiando el aspecto de la shell<br />$host.UI.RawUI<br />$host.UI.RawUI<br />$Host.UI.RawUI<br />ForegroundColor<br />Green<br />= “Green”<br />.ForegroundColor<br />Real-World Object<br />$Host.UI.RawUI<br />ForegroundColor<br />Handles<br />Green<br />Data<br />= “Green”<br />.ForegroundColor<br />
  14. 14. Cmdlets y susparámetros<br />Cmdlet<br />Parameter Name<br />ParameterValue<br />Los Cmdletsusanunanotaciónestandar<br />cmdlets: Verbos-Sustantivo<br />Tipos de Parámetros: integer, string, date, etc.<br />Get-Process<br />-name<br />lsass<br />(Parameter Name Optional)<br />Get-Process<br />lsass<br />
  15. 15. Get-Process<br />Get-Process | Get-Member<br />Get-Process | Get-Member | more<br />Get-Process | Get-Member -MemberType Property | more<br />Get-Process | Get-Member -MemberType Properties | more<br />Get-Process | Get-Member -MemberType Method | more<br />Demo: Propiedades y métodos de un cmdlet<br />
  16. 16. Demostración: Listar los Cmdletsdisponibles (Get-Command)<br />Get-Command<br />Get-Command -Verb Get<br />Get-Command -Noun Variable<br />Get-Command *Object<br />
  17. 17. Salida de un Cmdlet<br />PowerShell pordefecto no emitetexto<br />Cmdletsemitenobjetos<br />El formato de salida de los objetos da la ilusion de queestexto, pero no lo es<br />Windows PowerShell Default Formatting<br />Object<br />Cmdlet<br />Text<br />
  18. 18. Características de Windows PowerShell<br />Tab<br />F7<br />Tab<br /><ul><li>History</li></ul>Get-C<br />Get-ChildItem<br />Get-Process<br /><ul><li>Aliases
  19. 19. Profile</li></li></ul><li>Qué son los alias?<br />Alias<br />Refers to<br />Cmdlet<br />Los alias son atajos, términosfáciles de recordarquehacenreferencia a un cmdlet<br />Set-Alias GH Get-Help<br />
  20. 20. Arreglos<br />Estructura de datos que contiene más objetos<br />Cada objeto tiene su propio conteiner<br />Se accede a los conteiner usando []<br />$Processes = Get-Process<br />Object<br />Object<br />Object<br />Object<br />Object<br />$Processes[4].name<br />$Processes[0].name<br />
  21. 21. Dos variantes del foreach: Construct and Cmdlet<br />$list = Get-ChildItem -Recurse<br />foreach ( $file in $list ){<br /> $name = $file.name; $size = $file.length<br /> write-output “$name is $size bytes”<br />}<br />Get-ChildItem -Recurse | ForEach-Object { <br /> $name = $_.name; $size = $_.length<br /> write-output “$name is $size bytes” <br />}<br />foreaches un alias de un cmdlet<br />
  22. 22. Iteraciónbásica<br />do/while<br />do/until<br />while<br />while<br />do<br />do<br /> ($looping)<br />{ <br /> code<br />}<br /> { <br /> code<br />} ($looping)<br /> { <br /> code<br />} ($done)<br />while<br />until<br />
  23. 23. Ejecutando parte de un script con if/else<br /> ( $db.Mounted ){<br /> “online”<br />}<br />if<br />else<br /> {<br /> “offline”<br />}<br />
  24. 24. Usandoelseif con if/else<br />if( $p.ProductVersion -eq “6.0.6000.16386” ){<br /> “first version”<br />}<br />elseif( $p.ProductVersion -eq “6.1.6150.18432” ){<br /> “second edition”<br />}<br />else{<br /> “unknown release”<br />}<br />
  25. 25. Demos<br />Comandos más Comunes<br />Estructuras de decisión <br />Estructuras de iteración y Filtros <br />
  26. 26. Windows PowerShell Default Security Settings <br />.<br />PS C:&gt; Get-ExecutionPolicy<br /> Restricted<br />PS C:&gt;Set-ExecutionPolicyRemoteSigned<br />
  27. 27. ¿ Quées WMI?<br />WMI – Windows Management Instrumentation<br />Implementación de Microsoft <br /> WBEM (“Web-Based Enterprise Management”)<br /> CIM (“CommonInformationModel”)<br />Es el método para administrar remotamente las máquinas<br />
  28. 28. Arquitectura <br />Aplicación<br />COM/DCOM WbemServices<br />Repositorio de Datos Estáticos, dinámicamente referenciados <br />CIM Object Manager<br />COM/DCOM WbemServices<br />Object Provider<br />WIN32<br />RPC<br />SNMP<br />WMI<br />DMI Objects<br />Win32 Objects<br />SNMP Objects<br />WMI Objects<br />
  29. 29. WMI y PowerShell<br />PowerShell<br />Class<br />Class<br />Class<br />Class<br />CIMV2<br />Namespace<br />Virtualization<br />Namespace<br />
  30. 30. Get-WMIObject<br />Get-WMIObject<br />Parámetros Básicos<br />-Namespace – Especifíca el repositorio WMI donde esta almacenada la clase<br />-Class– Especifíca el nombre de la clase WMI a consultar<br />-List – Muestra todas las clases del espacio de nombre<br />-ComputerName– Especifíca el computador a conectar<br />-Credential– Especifíca las credenciales del host remoto<br />
  31. 31. Demos<br />
  32. 32. Habilitar remoting<br />PS C:&gt; Enable-PSRemoting<br />1. Iniciar o reiniciar (si ya esta iniciado) el servicio WinRM<br /> 2. Establecer el tipo del servicio WinRM en inicio automático<br /> 3. Crear una escucha para aceptar solicitudes en cualquier dirección IP<br /> 4. Habilitar una excepción de firewall para el tráfico WS-Management (sólo para http).<br />
  33. 33. Sitios de Interés<br />Facebook: www.facebook.com/ComunidadesMS<br />Twitter: www.twitter.com/ComunidadesMS<br />Sitio Technet: www.technetchile.cl<br />Eventos y Webcast: www.eventosms.cl<br />
  34. 34. Simplificando las tareas de administración mediante el uso de Powershell<br />Gracias<br />Alejandro Pacheco Microsoft Chile<br />Alejandro.pacheco@microsoft.comhttp://blogs.msdn.com/apacheco<br />Pablo Campos SáezMCT, MCTS, RHCT<br />pacampos@alx.cl<br />http://geeks.ms/blogs/pcampos<br />

×