Compartir a través de


Se produce un error en el cmdlet Enter-PSSession cuando se especifica la ruta de acceso de red en la variable de entorno PSModulePath

En este artículo se proporciona una resolución a un problema que Enter-PSSession finaliza inesperadamente cuando se especifica una ruta de acceso de red en PSModulePath.

Número de KB original: 4076842

Síntoma

Cuando se especifica una ruta de acceso de red en la variable de entorno PSModulePath , se produce un error en el Enter-PSSession cmdlet y recibe el siguiente mensaje de error:

Enter-PSSession: el comando "Measure-Object" se encontró en el módulo "Microsoft.PowerShell.Utility", pero no se pudo cargar el módulo. Para obtener más información, ejecute "Import-Module Microsoft.PowerShell.Utility".
At line:1 char:1
+ Intro-PSSession server_name
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Measure-Object:String) [Enter-PSSession], CommandNotFoundException
+ FullyQualifiedErrorId: CouldNotAutoloadMatchingModule

Causa

Cuando se crea una sesión de PowerShell y se autentica a través de Kerberos, la sesión no admite el doble salto. Por lo tanto, la sesión de PowerShell no se puede autenticar mediante recursos de red.

Cuando PowerShell intenta enumerar los módulos en la ruta de acceso de red, se produce un error de acceso denegado y el comando finaliza inesperadamente.

Solución

Para corregir el problema, cree la sesión de PowerShell para autenticarse con CredSSP. Debe configurarse de antemano. En el equipo que es el destino del Enter-PSSession comando, ejecute este comando:

Enable-WSManCredSSP -Role Server

En el equipo en el que ejecuta el Enter-PSSession comando, ejecute este comando:

Enable-WSManCredSSP -Role Client -DelegateComputer Server_name  

Nota:

Server_name es el nombre del equipo que es el destino del Enter-PSSession comando.

Cada vez que se ejecuta este comando, el Server_name especificado se agrega a la lista. La lista se almacena en la siguiente subclave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentials

Para ver el estado de la configuración de CredSSP, ejecute el Get-WSManCredSSP comando .

Después de habilitar CredSSP, puede autenticarse a través de CredSSP mediante este comando:

Enter-PSSession server_name -Authentication CredSSP -Credential (Get-Credential user_name)

Solución alternativa

Para solucionar este problema, asigne el recurso compartido de red a una letra de unidad como S:y, a continuación, coloque la letra de unidad en .PSModulePath Tener una letra de unidad que apunte a un recurso compartido de red no provocará la terminación inesperada de Enter-PSSession.

Sin embargo, dentro de la sesión remota de PowerShell, la letra de unidad asignada no estará disponible y los módulos del recurso compartido de red seguirán sin estar disponibles. Solo estarán disponibles los módulos locales.

Esta solución alternativa solo impedirá que se Enter-PSSession bloquee al permitir que las sesiones normales de PowerShell tengan acceso a los módulos que se encuentran en el recurso compartido de red.