Archive

Archive for the ‘powershell’ Category

Powershell – Iniciar todas nuestras VMs

March 18, 2011 Leave a comment

Que tal Gente, tuve un requerimiento de un script sencillo para el inicio de todas las VMs que se encuentran registradas en un vCenter, aquí les dejo el codigo:

$cred=get-credential
echo “INGRESA IP O FQDN DEL VCENTER o ESX/ESXi”
$serv=read-host
connect-viserver –server $serv -credential $cred
$vms = Get-VM
$vms | Select name | Export-CSV c:\listavms.csv -NoTypeInformation

$i = 1
$vms_1 = Import-CSV c:\listavms.csv
ForEach ($vm in $vms_1) {
Start-VM -VM $vm.name
If (($i%10) -eq 0) {
Sleep 300
}
$i = $i + 1
}
Disconnect-VIServer -Confirm:$false

Posiblemente existe mejores maneras de realizar esto, pero cumplió con su objetivo.

Powershell – almacenar credenciales de acceso encriptadas para nuestros scripts

January 30, 2011 Leave a comment

Que tal gente, creo que es básico proteger los usuarios y passwords que utilizamos en nuestros scripts de powershell ya que puede ser que estos caigan en manos de personas no autorizadas o simplemente que no sean las indicadas. Existe una manera muy fácil de encriptar nuestros accesos utilizando un cmdlet llamado New-VICredentialStoreItem

Vamos a ver un ejemplo de como realizarlo:

Paso 1-. Abrimos nuestra consola de vSphere PowerCLI, en este caso estaremos almacenando las credenciales de mi host  esxi01.hispavirt.test.com

new-vicredentialstoreitem -host esxi01.hispavirt.test.com -user root -password password -file C:\Scripts\esxi01.xml

esto nos creará un archivo .xml en la ruta especificada, el cual contiene la información de nuestro acceso con la password encriptada:

<?xml version=”1.0″ encoding=”UTF-8″?>
<viCredentials>
<version>1.0</version>
<passwordEntry>
<host>esxi01.hispavirt.test.com</host>
<username>root</username>
<password>Oyo4ODwkOS9LpW6tJ2dgApd7wS8wXxCnuhwgK735CJ9JuFstw1Jav2QhLFXh8a1LoMD+CaBDurJyp0PyJUee7uEaqDNQjouIVd5/Wud2CX07ID4ht0ujsUlcZtdbE85o34k4E5wmr22BuW8emKsHsOKaA0jcIePiIqI9T9xo+Y4=</password>
</passwordEntry>
</viCredentials>

Paso 2-. Una vez listo nuestro archivo con nuestras credenciales encriptadas, solo es cuestión de en cualquiera de nuestros scripts obtener dicha información utilizando el cmdlet get-vicredentialstoreitem, aquí les dejo un ejemplo para obtener un listado de VMs y exportarla a un archivo .CSV:

$creds = Get-VICredentialStoreItem -file C:\Scripts\esxi01.xml
Connect-VIServer -Server $creds.Host -user $creds.User -password $creds.Password
$vms = Get-VM
$vms | Select name | Export-CSV c:\listavms.csv -NoTypeInformation

 

 

Powershell – pocas lineas – obtener los ultimos eventos

January 23, 2011 Leave a comment

Que tal Gente en este post les voy a dejar unas lineas de codigo de powershell que podrán estar utilizando para obtener los últimos eventos de un objeto del vcenter, utilizando el cmdlet Get-VIEvent

Obtener los eventos de nuestro cluster llamado “HA-DRS” de las ultimas 5 horas:

Get-Cluster “HA-DRS” | Get-VIEvent -Start (Get-Date).AddHours(-5) | Format-Table CreatedTime, FullFormattedMessage -AutoSize

Obtener los eventos de una VM en especifico, en este caso la VM “win2k3″ por las ultimas 5 horas:

Get-VM “win2k3” | Get-VIEvent (Get-Date).AddHours(-5)| Format-Table CreatedTime, FullFormattedMessage -AutoSize

Podemos filtrar los mensajes para errores:

Get-Cluster “HA-DRS” | Get-VIEvent -Type Error | Format-Table CreatedTime, FullFormattedMessage -AutoSize

El salida de esta linea de codigo nos da algo como esto:

Categories: powershell Tags: , ,
Follow

Get every new post delivered to your Inbox.

Join 38 other followers