Cómo almacenar credenciales de forma segura con PowerShell
Hay scripts de PowerShell en los que debe autenticar y almacenar contraseñas en PowerShell. A veces, desea obtener un mensaje de credenciales para completar las credenciales y ejecutar el script. En otra ocasión, querrás automatizar la tarea y guardar la contraseña de forma segura en un formato cifrado. En este artículo, aprenderá cómo almacenar credenciales de forma segura con PowerShell.
Interactivo versus no interactivo
- El método interactivo requiere la interacción del usuario, como solicitarle que ingrese un nombre de usuario y contraseña. Continúa cuando se proporciona la información necesaria.
- El método no interactivo no requiere la intervención del usuario durante la ejecución del script y normalmente depende de ajustes preconfigurados, procesos automatizados o datos proporcionados con antelación.
Importante: Introduzca siempre las contraseñas de forma segura y nunca en texto plano.
Almacenar credenciales en PowerShell para la interacción del usuario (interactivo)
Si desea que la secuencia de comandos solicite un nombre de usuario y contraseña, siga los pasos de uno de los métodos siguientes.
Método 1. Obtener credencial
- Ejecute el cmdlet Get-Credential para almacenar de forma segura sus credenciales en la variable $Creds
$Creds = Get-Credential- Aparece una solicitud de credencial de Windows PowerShell donde debes completar las credenciales
- Ejecute la variable $Creds en PowerShell
$Creds- El resultado muestra el nombre de usuario y la contraseña como una cadena segura.
UserName Password
-------- --------
myusername System.Security.SecureStringMétodo 2. PSCredencial
- Ejecute el siguiente comando para almacenar de forma segura sus credenciales en la variable $Creds
$Creds = [System.Management.Automation.PSCredential]::new((Read-Host -Prompt "Enter username"), (Read-Host -Prompt "Enter password" -AsSecureString))- Introduce el nombre de usuario y la contraseña
Enter username: myusername
Enter password: ****************- Ejecute la variable $Creds en PowerShell
$Creds- El resultado muestra el nombre de usuario y la contraseña como una cadena segura.
UserName Password
-------- --------
myusername System.Security.SecureStringEsto es excelente cuando tienes un script que ejecutas interactivamente y puedes ingresar las credenciales cada vez. Pero, ¿qué pasa si no estás detrás de la computadora y quieres automatizar el script con una tarea programada? Entonces, debes usar un método diferente.
Almacenar credenciales en PowerShell para automatización (no interactivo)
Para almacenar las credenciales en el sistema para que se cargue cada vez que ejecute un script de PowerShell, debe seguir los pasos a continuación:
- Ejecute el cmdlet Get-Credential para almacenar de forma segura sus credenciales en la variable $Creds
$Creds = Get-Credential- Introduce tus credenciales
- Exporte las credenciales a un archivo XML cifrado
$Creds | Export-CliXml -Path "C:\creds\credential.xml"Nota: El cmdlet Export-Clixml cifra objetos de credenciales mediante la API de protección de datos de Windows. El cifrado garantiza que sólo su cuenta de usuario pueda descifrar el contenido del objeto de credencial. El archivo CLIXML exportado no puede ser utilizado en una computadora diferente ni por un usuario diferente.
- Navegue hasta la ruta y verifique el archivo XML.
- Abra el archivo XML y verifique que la contraseña esté cifrada.
- En su secuencia de comandos de PowerShell, ahora puede ejecutar el cmdlet Import-Clixml y señalarlo a la ruta donde está presente el archivo XML para que cargue el nombre de usuario y la contraseña cifrada.
$Creds = Import-CliXml -Path "C:\creds\credential.xml"¡Eso es todo!
Leer más: Configurar la autenticación basada en certificados de Exchange Online para scripts desatendidos »
Conclusión
Aprendió a almacenar credenciales de forma segura con PowerShell. Existen diferentes métodos para guardar credenciales en PowerShell. Compruebe si es un script interactivo o no interactivo y aplique el método correcto. Asegúrese siempre de que las contraseñas se completen de forma segura y no en texto claro.
¿Disfrutaste este artículo? También te puede gustar Cómo conectarse a Microsoft Graph PowerShell. No olvides seguirnos y compartir este artículo.


