G
G
Grigory Bondarenko2021-05-13 12:44:17
PowerShell
Grigory Bondarenko, 2021-05-13 12:44:17

How to securely connect from a domain controller to workstations via Powershell?

There is a fleet of Windows 10 computers joined into a domain using Active Directory. The domain controller is spinning on Windows Server 2012 R2. To administer workstations, sometimes you have to connect to them by opening a command line session. To do this, I run the PsExec utility on the domain controller with the -s key and the "cmd" command. But this scheme has problems with Cyrillic, so you need to deal with the remote PowerShell session.
Now I normally connect to the test machine with a domain administrator account:

PS C:\Users\DomainAdmin> Enter-PSSession -ComputerName test.mydomain.local
[test]: PS C:\Users\DomainAdmin\Documents> whoami
mydomain\DomainAdmin

But this is no good from a security point of view, so we try to use the local administrator account of the workstation:
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

To resolve error 0x80090311, add the workstation to the list of trusted hosts:
PS C:\Users\DomainAdmin> Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 'test.mydomain.local'

And we try again, but we get another error:
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

How to solve the problem, colleagues, tell me?

Answer the question

In order to leave comments, you need to log in

4 answer(s)
G
Grigory Bondarenko, 2021-05-14
@yurybx

It appears that opening a remote session as a domain administrator is safe, as no credentials are passed to the remote machine. This is how Kerberos works, and Powershell uses exactly this authentication mechanism. Well, a head-on check confirms this: if you try to read some network folder in a remote session, then we will get an error.
https://docs.microsoft.com/en-us/answers/questions...

M
Maxim Grishin, 2021-05-13
@vesper-bot

If you connect yourself - everything is OK. If you want a script, file an account that does not have domain admin rights, but has local admin rights on the target PCs, and connect using it. Domain, since you already have a domain.

M
MaxKozlov, 2021-05-14
@MaxKozlov

If by local admin you mean a local user that was created exactly on the computer, and not in the domain, try using the username without a domain - "admin" and the negotiate authorization, not kerberos, by default

M
Mnemonic0, 2021-05-14
@Mnemonic0

Do not connect from DC to user PCs. Never, never.
Do not use one account to log into all PCs.
The best option is to use LAPS.
If by your mistake. Logon To for the user test.mydomain.local\admin - specify not only the PC to which you are connecting, but also the PC from which you are connecting.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question