03-11-2017, 11:27 AM
0
Estos dias me ha surgido la necesidad ,(o mas bien pereza por meter credenciales), de evitar cuando lanzo un script para recoger información de la infraestructura virtual, que me pida la introducción de usuario y contraseña a la hora de conectarme a un VMM de Microsoft.
Normalmente dentro del script de powershell, tendria que hacer un get-vmmserver ip (o nombre), y me pediria el usuario y contraseña para conectarme, quiero evitar eso, que simplemente ejecute mi script, me dé lo que necesito sin meter credenciales.
Para ello, lógicamente debemos almacenarlas en alguna parte:
$Credentials = Get-Credential
(aqui para que salga para pedir usuario y contraseña)
$Credentials.Password | ConvertFrom-SecureString | Set-Content c:\datos\server.txt
(aqui deja la contraseña en un archivo llamado server.txt)
$Password = Get-Content “c:\cifrado\server.txt” | ConvertTo-SecureString
$Username = “dominio\usuario”
$Credentials = New-Object System.Management.Automation.PSCredential $Username,$Password
$Password = $Credentials.GetNetworkCredential().Password
Y con éstas últimas líneas pasamos a la lectura de las credenciales en el fichero que hemos generado.
get-vmmserver -credential $credentials -computername ip
Ésta última linea lo que hace es pedir las credenciales pero no nos va a salir un prompt, sino que directamente leerá la variable “credentials” del fichero generado.
Una forma de evitar el estar metiendo el login.
un saludo
Normalmente dentro del script de powershell, tendria que hacer un get-vmmserver ip (o nombre), y me pediria el usuario y contraseña para conectarme, quiero evitar eso, que simplemente ejecute mi script, me dé lo que necesito sin meter credenciales.
Para ello, lógicamente debemos almacenarlas en alguna parte:
$Credentials = Get-Credential
(aqui para que salga para pedir usuario y contraseña)
$Credentials.Password | ConvertFrom-SecureString | Set-Content c:\datos\server.txt
(aqui deja la contraseña en un archivo llamado server.txt)
$Password = Get-Content “c:\cifrado\server.txt” | ConvertTo-SecureString
$Username = “dominio\usuario”
$Credentials = New-Object System.Management.Automation.PSCredential $Username,$Password
$Password = $Credentials.GetNetworkCredential().Password
Y con éstas últimas líneas pasamos a la lectura de las credenciales en el fichero que hemos generado.
get-vmmserver -credential $credentials -computername ip
Ésta última linea lo que hace es pedir las credenciales pero no nos va a salir un prompt, sino que directamente leerá la variable “credentials” del fichero generado.
Una forma de evitar el estar metiendo el login.
un saludo