yurybx
@yurybx
системный администратор

Как безопасно подключаться с контроллера домена к рабочим станциям через Powershell?

Имеется парк компьютеров Windows 10, объединённых в домен при помощи Active Directory. Контроллер домена крутится на Windows Server 2012 R2. Для администрирования рабочих станций иногда приходится подключаться к ним, открывая сеанс командной строки. Для этого я на контроллере домена запускаю утилиту PsExec с ключом -s и командой "cmd". Но у этой схемы есть проблемы с кириллицей, поэтому нужно разобраться с удалённой сессией PowerShell.
Сейчас я нормально подключаюсь к тестовой машине с учётной записью администратора домена:
PS C:\Users\DomainAdmin> Enter-PSSession -ComputerName test.mydomain.local
[test]: PS C:\Users\DomainAdmin\Documents> whoami
mydomain\DomainAdmin

Но это никуда не годится с точки зрения безопасности, поэтому пробуем использовать учётку локального администратора рабочей станции:
PS C:\Users\DomainAdmin> Enter-PSSession -ComputerName test.mydomain.local -Credential "test.mydomain.local\admin"
Enter-PSSession : Сбой подключения к удаленному серверу test.mydomain.local. Сообщение об ошибке: WinRM не удается обработать запрос. При использовании проверки подлинн
ости Kerberos возникла следующая ошибка с кодом ошибки 0x80090311: Отсутствуют серверы, которые могли бы обработать запрос на вход в сеть.  
 Возможные причины:
  - Указаны неверные имя пользователя или пароль.
  - Используется проверка подлинности Kerberos без указания способа проверки подлинности и имени пользователя.
  - Kerberos принимает имена пользователей домена, но не принимает имена локальных пользователей.
  - Имя субъекта-службы (SPN) для имени и порта удаленного компьютера не существует.
  - Клиентский и удаленный компьютеры находятся в разных доменах, между которыми отсутствует доверительное отношение.
 После проверки указанных выше проблем попробуйте выполнить следующее:
  - Просмотрите в средстве "Просмотр событий" события, относящиеся к проверке подлинности.
  - Измените способ проверки подлинности, добавьте конечный компьютер в конфигурацию TrustedHosts для WinRM либо воспользуйтесь транспортом HTTPS.
 Помните о том, что компьютеры в списке TrustedHosts могут не проходить проверку подлинности.
   - Для получения дополнительных сведений о конфигурации WinRM выполните следующую команду: winrm help config. Подробности см. в разделе справки "about_Remote_Troublesh
ooting".
строка:1 знак:1
+ Enter-PSSession -ComputerName test.mydomain.local -Credential "test.mydomain.l ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (test.mydomain.local:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

Чтобы устранить ошибку 0x80090311, добавляем рабочую станцию в список доверенных хостов:
PS C:\Users\DomainAdmin> Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 'test.mydomain.local'

И пытаемся снова, но получаем другую ошибку:
PS C:\Users\DomainAdmin> Enter-PSSession -ComputerName test.mydomain.local -Credential "test.mydomain.local\admin"
Enter-PSSession : Сбой подключения к удаленному серверу test.mydomain.local. Сообщение об ошибке: Отказано в доступе. Подробности см. в разделе справки "about_Remote_Tr
oubleshooting".
строка:1 знак:1
+ Enter-PSSession -ComputerName test.mydomain.local -Credential "test.mydomain.l ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (test.mydomain.local:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

Как решить проблему, коллеги, подскажите?
  • Вопрос задан
  • 1619 просмотров
Решения вопроса 1
yurybx
@yurybx Автор вопроса
системный администратор
Похоже, что открытие удалённой сессии от имени доменного администратора - безопасно, т. к. на удалённую машину не передаются учётные данные. Так работает Kerberos, а Powershell использует именно этот механизм аутентификации. Ну и проверка в лоб это подтверждает: если в удалённой сессии попытаться прочитать какую-нибудь сетевую папку, то мы получим ошибку.
https://docs.microsoft.com/en-us/answers/questions...
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
vesper-bot
@vesper-bot
Любитель файрволлов
Если подключаетесь сами - все ОК. Если хотите скриптом - запилите УЗ, не имеющую прав домен-админа, но имеющую права локального админа на целевых ПК, и подключайтесь с её помощью. Доменную, раз уж у вас есть домен.
Ответ написан
@MaxKozlov Куратор тега PowerShell
Если под локальным админом вы имеете ввиду локального юзера, который создан именно а компе, а не в домене, попробуйте использовать имя пользователя без домена - "admin" и авторизацию negotiate, а не kerberos, по умолчанию
Ответ написан
Комментировать
@Mnemonic0
Не подключайтесь с DC к пользовательским ПК. Никогда, никак.
Не используйте одну учётную запись для входа на все ПК.
Лучший вариант - использование LAPS.

Если же по вашей ошибке. Logon To для пользователя test.mydomain.local\admin - указать не только ПК к которому подключаетесь, но и ПК с которого подключаетесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы