Si necesitamos ejecutar procesos sobre maquinas remotas que estan fuera de nuestro dominio tendremos que usar el cmdlet get-credential y pasar su valor como parametro a aquellos cmdlets que lo contemplen.
Y si queremos almacenar las credenciales para dejar el proceso totalmente automatizado?
De esta manera almacenamos el usuario y contraseña encriptada en un fichero de texto para luego poder usarlo en cualquier script, por ejemplo para recuperar la informacion de los discos de una maquina remota:
Y si queremos almacenar las credenciales para dejar el proceso totalmente automatizado?
$dominio=read-host "Dominio (FQDN)?" $file="cred.$dominio.txt" read-host "Dominio\usuario?"| out-file $file read-host "Contraseña a encriptar?" -assecurestring | convertfrom-securestring | out-file $file -append
De esta manera almacenamos el usuario y contraseña encriptada en un fichero de texto para luego poder usarlo en cualquier script, por ejemplo para recuperar la informacion de los discos de una maquina remota:
$credentials = get-content ("cred.$dominio.txt") $username=$credentials[0] $password=$credentials[1]|convertto-securestring $cred = New-Object System.Management.Automation.PSCredential ($username, $password) gwmi –computername $maquina win32_logicaldisk -filter "drivetype=3" -credential $credEl cmdlet que necesitas no tiene el parametro -credential? Ejecutalo como job:
start-job -argumentlist $maquina -credential $cred -scriptblock { param($maquina) #lo que se te ocurra }http://social.technet.microsoft.com/wiki/contents/articles/4546.working-with-passwords-secure-strings-and-credentials-in-windows-powershell.aspx#Best_Practices
Comentarios
Publicar un comentario