Cómo usar las credenciales de un usuario que se conecta a otra máquina usando Powershell
A veces necesitamos importar un módulo de un repositorio en una unidad de red y no hemos conectado usando Powershell a otra máquina, y desde esa sesión da error al hacerlo como si no encontrara el modulo.
Por defecto esto es debido a una característica intrínseca de seguridad de PowerShell que desde esa sesión no se permitirá la delegación de las credenciales para acceder a un componente en un carpeta compartida en la red.
Para poder hacerlo será necesario usar CredSSP (Credentials Security Service Provider ) como tipo de autenticación. Windows 7 y Windows 2008 soportan por defecto CredSSP.
En el caso de que una maquina C1 se conecte a otra llamada S1 por Powershell:
En la maquina cliente C1 para activar el extremo cliente de SSP para a WINRM, ejecutar las siguientes líneas:
Enable-WSManCredSSP -Role client -DelegateComputer *
Para activar el extremo servidor SSP para WINRM en S1:
Enable-WSManCredSSP -Role server
En la maquina cliente C1
Enter-PSSession –computername nombre_cualificado_de_S1 –auth CredSSP –cred dominio\usuario
Para restablecer la configuración a como estaba antes:
Para desactivar el extremo cliente SSP para WINRM:
Disable-WSManCredSSP -Role client
Para desactivar el extremo SSP para WINRM:
Disable-WSManCredSSP -Role server