PowerShell Remoting básico

Hola a todos después de la charla de PowerShell en Microsoft me comprometí con subir los ejemplos de powershell remoting. asiq comencemos

Primero que todo deben habilitar la función de remoting con el comando

Enable-PSRemoting

image

Después de esto ya estamos listos para comenzar a invocar comandos de manera remota.

Recuerden que si están en un entorno con dominio de Active Directory y su cuenta tiene derechos sobre el computador de destino, todo funcionara OK, de lo contrario nos enviara un mensaje de acceso denegado, para solucionar ese problema usaremos el cmdlet
get-credential y lo pasaremos como parámetro.
Imaginemos que mi dominio se llama capacita.local

$credencial=Get-Credential CAPACITAAdministrador

image

Ahora si queremos invocar un cmdlet remoto solo debemos ejecutar el comando

Invoke-Command -ComputerName SERVIDOR01 -Credential $credencial
-ScriptBlock {Get-Process}

El cmdlet Invoke-Command abre una sesión el el servidor01 con las credenciales almacenadas en la variable $credencial , luego ejecuta todo lo que este dentro de las llaves del parámetro –ScriptBlock, que en este caso es el cmdlet Get-Process y lo muestra por pantalla.

El problema es que con el cmdlet Invoke-Command se abre y cierra una sesión, esta no es persistente y no guarda el estado de posibles variable, para esto debemos crear una nueva sesión y usarla como parámetro

$sesion1=New-PSSession -ComputerName SERVIDOR01 -Credential $credencial

Ahora tenemos en la variable $sesion1 una sesión abierta hacia el computador SERVIDOR1

Invoke-Command -Session $sesion1 -ScriptBlock {Get-EventLog -logname system -Newest 5}

Lo anterior trae los 5 últimos logs de sistema del SERVIDOR1

La mejor manera de comprobar que realmente esta sesión es persistente es hacer una variable local y incrementarla en cierto valor ejecutándola remotamente

EJ:

Variable local: $paso

$paso= {$total += 5;$total}

Invoke-Command -Session $sesion1 -ScriptBlock $paso

El primer valor seria 5, después 10, después 15 y así sucesivamente , con esto podemos probar que el estado de las variables se conserva 🙂

Imaginemos que nuestro servidor remoto esta corriendo un proceso llamado notepad 🙂 y nosotros de nuestra estación de trabajo lo queremos detener

Invoke-Command -Session $sesion1 -ScriptBlock {Stop-Process -name  notepad}

Ahora si queremos trabajar directamente en el servidor remota en una consola de PS, solo debemos entrar a esta con el comando

Enter-PSSession -ComputerName SERVIDOR01 -Credential $credencial

Con esto entramos a una sesión interactiva remota de powershell

Saludos

[Evento] Chile: Conferencia Técnica TechNet: Simplificando las tareas de administración mediante el uso de Powershell

 powerShellIconLa administración de los servicios mediante interfaces gráficas o GUI ha sido uno de los grandes avances de los sistemas operativos, sin embargo cuando las tareas son muy complejas y operan sobre un conjunto grande de objetos o recursos del sistema, bien vale la pena tener a mano un  buen scripting que automatice este proceso.
En esta charla Pablo Campos y Alejandro Pacheco introducen las nuevas características de Powershell y muestran  algunos ejemplos prácticos de servicios y aplicaciones que pueden administrarse mediante el uso del mismo.
Oradores: Pablo Campos y Alejandro Pacheco

INFORMACION IMPORTANTE: – Este evento no incluye el pago de estacionamientos en el edificio. – Microsoft se reserva el derecho de utilizar los espacios disponibles, Una vez comenzado el evento

Producto: Microsoft technologies, Windows PowerShell
Idioma: Español
Audiencia: Generalista de IT

Microsoft Chile : Mariano Sanchez Fontecilla 310, Piso 6  Las Condes Santiago

REGISTRATE AQUI

OJO En este Mismo Blog estaré subiendo los demos de la charla del Martes 15

Booteo Nativo de VHD con Powershell y Windows 7

Hola a todos
Quizás este post no es muy novedoso, pero después de varios intentos infructuosos siguiendo manuales me decidí a hacer uno yo 🙂

Primero que todo tiene que tener a mano el DVD de Windows Server 2008 o Windows 7

Descargar un script de Powershell desde http://code.msdn.microsoft.com/InstallWindowsImage

Manos a la obra

1) Nos creamos un disco Duro VHD de unos 10 GB para probar de expansión dinámica

a)Desde el administrador de Discos seleccionamos “Crear VHD

image
b) Le damos la ruta EJ: H:2008VHD.vhd de 10GB de expansión Dinámica

image

c) Inicializamos el disco y lo formateamos
image image

Como se dan Cuenta quedo NTFS en la letra F:

d) ahora ocupamos nuestro archivo descargado de PowerShell
Install-WindowsImage.ps1

OJO que el powershell lo deben ejecutar como administrador

Si al ejecutar el script ven el siguiente error es por la seguridad de ejecución de los scripts en powershell

image

Para solucionar el problema cambie se seteo de ejecución de scripts con el comando Set-ExecutionPolicy Unrestricted

e) Ahora inserte el DVD de Windows 7 “en mi caso G:”

.Install-WindowsImage.ps1 -WIM G:sourcesinstall.wim

Con esto nos deberia mostar la lista de sistema operativos con indices que puede cargar este dvd.

Index   Image Name
[1]     Windows 7 Enterprise

Done.

En el caso de Windows Server 2008 R2

Index   Image Name
[1]     Windows Server 2008 R2 Standard (Full Installation)
[2]     Windows Server 2008 R2 Standard (Server Core Installation)
[3]     Windows Server 2008 R2 Enterprise (Full Installation)
[4]     Windows Server 2008 R2 Enterprise (Server Core Installation)
[5]     Windows Server 2008 R2 Datacenter (Full Installation)
[6]     Windows Server 2008 R2 Datacenter (Server Core Installation)
[7]     Windows Web Server 2008 R2 (Full Installation)
[8]     Windows Web Server 2008 R2 (Server Core Installation)

Done.

Ahora que ya tenemos el índice [1] del sistema operativo y la ruta del archivo WIM podemos “Aplicarlo” en el disco VHD que creamos hace un rato F:

.Install-WindowsImage.ps1 -WIM G:sourcesinstall.wim -Apply -Index 1 –Destination F:

Applying "Windows 7 Enterprise" to F:…
ADVERTENCIA: This may take up to 15 minutes…

_________________________________________________________________________________
EDITADO 10/12/2009 … Si quieres que tu VHD pueda bootear desde el Virtual PC o Hyper-v debes cargar el bcdboot en el disco montado

Sigamos pensando que nuestro disco VHD lo tenemos montado en F:

Ejecutamos el siguiente comando

F:windowssystem32bcdboot F:windows /s F:

Si después queremos borrar algo que nos quedo mal en el Bcdedit

bcdedit /delete {ID}

Donde ID es el id de la entrada que quieres borrar

bcdedit /delete {ffe86a97-97eb-11de-88e4-8d9d20f53a42}

_________________________________________________________________________________

Listo… Ahora solo debemos modificar el booteo de nuestro sistema para que arranque con el vhd, para eso ocuparemos el comando bcdedit “como administrador”

Bcdedit /copy {current} /d “Win7VHD”
La entrada se copió correctamente en {ffe86a96-97eb-11de-88e4-8d9d20f53a42}
Con este comando copiamos la entrada de boteo actual de nuestro SO a una llamada Win7VHD, ahora debemos modificar los parámetros device y osdevice para que arranque por el VHD

bcdedit /set {ffe86a96-97eb-11de-88e4-8d9d20f53a42} device vhd=[H:]2008VHD.vhd

bcdedit /set {ffe86a96-97eb-11de-88e4-8d9d20f53a42} osdevice vhd=[H:]2008VHD.vhd

image

Escribimos bcdedit para ver si esta todo OK

image

Reiniciamos y Listo

Les dejo un par de fotos del booteo… “las saque con el teléfono y me reflejo en la pantalla ”

IMG_0510 IMG_0511 IMG_0512 IMG_0513 IMG_0514 IMG_0515 IMG_0516 IMG_0517

[Evento] Chile – Los Ángeles VIII Región

Hola a todos, este viernes 4 estaremos dando un montón de charlas en la ciudad de los Ángeles, esto es para todos los que dicen que nunca se hacen cosas fuera de Santiago…
“yo soy de Concepción :)”

ACTUALIZADO: El Hotel queda al lado del casino de Los Ángeles, la dirección es Colo Colo #565

10:30 – 10:40 | Bienvenida
10:45 – 11:30 | Max + Brede :- Introducción a Windows 7 + Demos de Seguridad Infantil.
11:30 – 12:15 | Pablo : Win Server 2008 R2
12:15 – 13:00 | Gonzalo: «Que es lo nuevo de ASP.NET 4.0»
14:00 – 14:45 | Ale: ASP.NET y silverlight
14:45 – 15:30 | Gonzalo: «Desarrollando Aplicaciones compatibles con Windows 7»
15:30 – 16:10 | Brede: IIS, PHP y SQL Server como buenos amigos
16:15 – 17:00 | Pablo: «Windows Deployment services con Windows 7»
17:00 – 17:45 | Francisco: silverlight

Max = Maximiliano Marin: Microsoft Student Partner
Pablo = Pablo Campos :MCP MCTS, Instructor Certificado Microsoft   YO 🙂
Ale = Alejandro Pacheco : Gerente de Relaciones Académicas, Microsoft Chile
Brede = Brede Basualdo: Microsoft Student Partner
Francisco : Francisco Agurto : Microsoft Student Partner
Gonzalo: Gonzalo «Chalalo» Pérez , Microsoft MVP ASP/ASP.NET