El módulo AD de PowerShell no funcionará durante la sesión a menos que las credenciales se proporcionen explícitamente

El módulo AD de PowerShell no funcionará durante la sesión a menos que las credenciales se proporcionen explícitamente

Tengo un problema con un nuevo servidor central de 2016. (Recientemente migré un servidor de 2012r2)

En nuestro servidor 2012r2 anterior, podía ejecutar un script de PowerShell a través de una sesión ps remota (enter-pssession oldservername). Ahora en el nuevo servidor, recibo errores.

Este script utiliza comandos del módulo AD (get-aduser, get-adgroup, etc.).

cuando se ejecuta a través de una sesión remota, sucede esto:

PS C:\> enter-pssession newserver
[newserver]: PS C:\> get-aduser username
Unable to contact the server. This may be because this server does not exist, 
it is currently down, or it does not have the Active Directory Web Services running.
+ CategoryInfo          : ResourceUnavailable: (username:ADUser) [Get-ADUser], ADServerDownException
+ FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADUser

Sin embargo, si especifico como get-aduser username -Credential (Get-Credential), funciona bien.

Si ejecuto el script directamente en el servidor (rdp), funciona bien.

Invoke-Command -Session $sess -ScriptBlock {get-aduser username}también falla.

¿Asumo que tiene algo que ver con que la forma en que se pasan las credenciales es diferente en 2016? ¿Alguien se ha encontrado con esto antes? ¿Hay alguna manera de resolverlo?

Respuesta1

Básicamente te estás topando con el clásico problema de doble salto de Kerberos. Es probable que su servidor 2012 R2 anterior haya sido configurado para algún tipo de delegación Kerberos y su nuevo servidor no lo haya hecho (todavía).

Aquí hay una excelente publicación de blog de Technet que describe el problema en detalle en relación con PowerShell y las diversas formas de resolverlo.

PowerShell remoto Kerberos Double Hop resuelto de forma segura

información relacionada