powershell para administradores

27
1 Simplificando las tareas de administración mediante el uso de Powershell Pablo Campos Sáez MCT, MCTS, RHCT pacampos@alx.cl http://geeks.ms/blogs/pcampos Alejandro Pacheco Microsoft Chile Alejandro.pacheco @microsoft.com http:// blogs .msdn.com/a pacheco

Upload: pablo-campos

Post on 25-May-2015

3.293 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: PowerShell para administradores

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

Page 2: PowerShell para administradores

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

Page 3: PowerShell para administradores

3

PowerShell

Qué?

Shell Interactiva

Nuevo Language de Scripting

Por qué?

Completo set de comandos

Orientada a Objetos

Revolucionaria

Page 4: PowerShell para administradores

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

Page 5: PowerShell para administradores

5

Objetos

Nombre del Servicio

PartesPropiedades

Estado

Descripción

Stop()

Cómo UsarlasMétodos

Start()

Pause()WindowsService

Page 6: PowerShell para administradores

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”

Page 7: PowerShell para administradores

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)

Page 8: PowerShell para administradores

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

Page 9: PowerShell para administradores

9

Demostración: Listar los Cmdlets disponibles (Get-Command)

Get-Command

Get-Command -Verb Get

Get-Command -Noun Variable

Get-Command *Object

Page 10: PowerShell para administradores

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

Page 11: PowerShell para administradores

11

Características de Windows PowerShell

TabTab

•History

• Aliases • Profile

Get-CGet-C

Get-ChildItemGet-ChildItem

F7

Get-ProcessGet-Process

Page 12: PowerShell para administradores

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

Page 13: PowerShell para administradores

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

Page 14: PowerShell para administradores

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”

}

Page 15: PowerShell para administradores

15

Iteración básica

($looping)

{

code

}

{

code

} ($looping)

{

code

} ($done)

while

while

do do

until

do/whiledo/while do/untildo/untilwhilewhile

Page 16: PowerShell para administradores

16

Ejecutando parte de un script con if/else

( $db.Mounted ){ “online”}

if

{ “offline”}

else

Page 17: PowerShell para administradores

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

Page 18: PowerShell para administradores

18

Demos

Comandos más ComunesEstructuras de decisión Estructuras de iteración y Filtros

Page 19: PowerShell para administradores

19

Windows PowerShell Default Security Settings .

PS C:> Get-ExecutionPolicy

RestrictedPS C:> Set-ExecutionPolicy RemoteSigned

Page 20: PowerShell para administradores

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

Page 21: PowerShell para administradores

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

Page 22: PowerShell para administradores

22

WMI y PowerShell

CIMV2Namespace

VirtualizationNamespace

Class

Class

Class

Class

PowerShell

Page 23: PowerShell para administradores

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

Page 24: PowerShell para administradores

24

Demos

Page 25: PowerShell para administradores

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

Page 26: PowerShell para administradores

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

Page 27: PowerShell para administradores

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