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