Модуль PowerShell AD не будет работать через pssession, если учетные данные не указаны явно

Модуль PowerShell AD не будет работать через pssession, если учетные данные не указаны явно

Возникла проблема с новым основным сервером 2016 года. (Недавно перенес сервер с 2012r2)

На нашем предыдущем сервере 2012r2 я мог запустить скрипт powershell через удаленный сеанс ps (enter-pssession oldservername). Теперь на новом сервере я получаю ошибки.

Этот скрипт использует команды из модуля AD (get-aduser, get-adgroup и т. д.).

при запуске через удаленный сеанс происходит следующее:

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

Однако если я укажу как get-aduser username -Credential (Get-Credential), то все будет работать нормально.

Если я запускаю скрипт непосредственно на сервере (по RDP), он работает нормально.

Invoke-Command -Session $sess -ScriptBlock {get-aduser username}также терпит неудачу.

Я предполагаю, что это связано с тем, что в 2016 году изменился способ передачи учетных данных? Кто-нибудь сталкивался с этим раньше? Есть ли способ решить эту проблему?

решение1

По сути, вы столкнулись с классической проблемой двойного перехода Kerberos. Вероятно, ваш предыдущий сервер 2012 R2 был настроен на какую-то форму делегирования Kerberos, а ваш новый сервер — нет (пока).

Вот отличная запись в блоге Technet, в которой подробно описывается проблема, связанная с PowerShell, и различные способы ее решения.

PowerShell Remoting Kerberos Double Hop решен безопасно

Связанный контент