1
Simplificando las tareas de administración mediante el uso de Powershell
Pablo Campos SáezMCT, MCTS, [email protected] http://geeks.ms/blogs/pcampos
Alejandro Pacheco Microsoft [email protected]://blogs.msdn.com/apacheco
2
Agenda
Qué es y para quién es !Objetos, Objetos, Objetos, Objetos! Seguridad Cmdlets y su salida |pipes| Arreglos Estructuras de iteración WMI Remoting Demos Demos Demos
3
PowerShell
Qué?
Shell Interactiva
Nuevo Language de Scripting
Por qué?
Completo set de comandos
Orientada a Objetos
Revolucionaria
4
Objetos“Un objecto es una colección de
partes y cómo usarlas ”
PartesPropiedades
Manubrio
Ruedas
Pedales
Frenos
Marco
UsarlasMetodos
Pedalear
Giro Derecho
Giro Izquierdo
Presionar Freno Delantero
Presionar Freno Delantero
PartesCómo se
Usan
5
Objetos
Nombre del Servicio
PartesPropiedades
Estado
Descripción
Stop()
Cómo UsarlasMétodos
Start()
Pause()WindowsService
6
Ejemplo:Cambiando el aspecto de la shell
GreenGreenForegroundColorForegroundColor
$Host.UI.RawUI$Host.UI.RawUI
$host.UI.RawUI
Real-World ObjectReal-World Object
HandlesHandles DataData
.ForegroundColor = “Green”
GreenGreenForegroundColorForegroundColor
$Host.UI.RawUI$Host.UI.RawUI
$host.UI.RawUI.ForegroundColor = “Green”
7
Los Cmdlets usan una notación estandar cmdlets: Verbos-SustantivoTipos de Parámetros: integer, string, date, etc.
CmdletParameter
NameParameter
Value
Cmdlets y sus parámetros
Get-Process -name lsass
Get-Process lsass (Parameter Name Optional)
8
Demo: Propiedades y métodos de un cmdletGet-Process
Get-Process | Get-Member
Get-Process | Get-Member | more
Get-Process | Get-Member -MemberType Property | more
Get-Process | Get-Member -MemberType Properties | more
Get-Process | Get-Member -MemberType Method | more
9
Demostración: Listar los Cmdlets disponibles (Get-Command)
Get-Command
Get-Command -Verb Get
Get-Command -Noun Variable
Get-Command *Object
10
Salida de un CmdletPowerShell por defecto no emite texto
Cmdlets emiten objetosEl formato de salida de los objetos da la ilusion de que es texto, pero no lo es
ObjectObjectCmdletCmdlet TextTextWindows PowerShell
Default Formatting
Windows PowerShell
Default Formatting
11
Características de Windows PowerShell
TabTab
•History
• Aliases • Profile
Get-CGet-C
Get-ChildItemGet-ChildItem
F7
Get-ProcessGet-Process
12
Qué son los alias?Los alias son atajos, términos fáciles de recordar que hacen referencia a un cmdlet
Refers to
CmdletCmdlet
AliasAlias
Set-Alias GH Get-Help
13
Arreglos
Estructura de datos que contiene más objetosCada objeto tiene su propio conteinerSe accede a los conteiner usando []
$Processes = Get-Process
$Processes[0].name
$Processes[4].name
ObjectObject Object Object Object
14
Dos variantes del foreach: Construct and Cmdletforeach es un alias de un cmdlet
$list = Get-ChildItem -Recurse
foreach ( $file in $list ){
$name = $file.name; $size = $file.length
write-output “$name is $size bytes”
}
Get-ChildItem -Recurse | ForEach-Object {
$name = $_.name; $size = $_.length
write-output “$name is $size bytes”
}
15
Iteración básica
($looping)
{
code
}
{
code
} ($looping)
{
code
} ($done)
while
while
do do
until
do/whiledo/while do/untildo/untilwhilewhile
16
Ejecutando parte de un script con if/else
( $db.Mounted ){ “online”}
if
{ “offline”}
else
17
Usando elseif con if/else
if( $p.ProductVersion -eq “6.0.6000.16386” ){ “first version”}
elseif( $p.ProductVersion -eq “6.1.6150.18432” ){ “second edition”}
else{ “unknown release”}
18
Demos
Comandos más ComunesEstructuras de decisión Estructuras de iteración y Filtros
19
Windows PowerShell Default Security Settings .
PS C:> Get-ExecutionPolicy
RestrictedPS C:> Set-ExecutionPolicy RemoteSigned
20
¿ Qué es WMI?
WMI – Windows Management Instrumentation
Implementación de Microsoft WBEM (“Web-Based Enterprise Management ”)CIM (“Common Information Model”)
Es el método para administrar remotamente las máquinas
21
Arquitectura
Object Provider
CIM Object Manager
WMI Objects
SNMP Objects
Win32 Objects
DMI Objects
Aplicación
Repositorio de Datos Estáticos, dinámicamente referenciados
WMI SNMP WIN32 RPC
COM/DCOM Wbem Services
COM/DCOM Wbem Services
22
WMI y PowerShell
CIMV2Namespace
VirtualizationNamespace
Class
Class
Class
Class
PowerShell
23
Get-WMIObject
Parámetros Básicos-Namespace – Especifíca el repositorio WMI donde esta almacenada la clase-Class – Especifíca el nombre de la clase WMI a consultar-List – Muestra todas las clases del espacio de nombre-ComputerName – Especifíca el computador a conectar-Credential – Especifíca las credenciales del host remoto
Get-WMIObject
24
Demos
25
Habilitar remoting
PS C:\> Enable-PSRemoting1. Iniciar o reiniciar (si ya esta iniciado) el servicio WinRM 2. Establecer el tipo del servicio WinRM en inicio automático 3. Crear una escucha para aceptar solicitudes en cualquier dirección IP 4. Habilitar una excepción de firewall para el tráfico WS-Management (sólo para http).
26
Sitios de Interés
Facebook: www.facebook.com/ComunidadesMS
Twitter: www.twitter.com/ComunidadesMS
Sitio Technet: www.technetchile.cl
Eventos y Webcast: www.eventosms.cl
27
Gracias
Simplificando las tareas de administración mediante el uso de Powershell
Pablo Campos SáezMCT, MCTS, [email protected] http://geeks.ms/blogs/pcampos
Alejandro Pacheco Microsoft [email protected]://blogs.msdn.com/apacheco