Powershell – almacenar credenciales de acceso encriptadas para nuestros scripts

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

 

 

Leave a Reply