2016-10-25 4 views
4

Я пытаюсь удалить удаленную PowerShell из моего домена, подключенного к ПК, на сервер в нашей DMZ, но я не могу понять, как заставить его работать.PowerShell Remoting to Workgroup Computer

Сервер DMZ имеет прослушиватель, настроенный для HTTP на установленном по умолчанию порту 5985, который включен. Два сетевых адаптера в машине обозначены как «Общедоступные» сети, поэтому я изменил правило брандмауэра удаленного доступа (HTTP-In) для общедоступного профиля, чтобы принимать подключения от моего IP-адреса, а также уже настроенную локальную подсеть.

На моей клиентской машине (Windows 10) я добавил имя хоста сервера в WSMan: \ localhost \ Client \ TrustedHosts, и я добавил в реестр локальную учетную запись TokenFilterPolicy (значение: 1, Тип: DWORD).

Я создаю объект учетных данных с моими локальными учетными данными для сервера (имя_сервера \ имя_пользователя), а затем я пытаюсь использовать $Sess = New-PSSession -ComputerName DMZCOMPUTER -Port 5985 -Credential $Cred, соединение всегда пытается использовать Kerberos для подключения к машине, которая, очевидно, не будет работать.

Если у меня возникли проблемы $Sess = New-PSSession -ComputerName DMZCOMPUTER -Port 5985 -Credential $Cred -Authentication Basic Я получаю сообщение об ошибке, в которой отключен незашифрованный трафик. Другие схемы автореализации создают разные сообщения об ошибках, но я никогда не был удален.

У меня отсутствует какая-либо конфигурация? Каковы требуемые настройки (сервер & клиент), чтобы использовать удаленную powershell для подключения к серверу рабочей группы из подключенного домена.

+0

Вы должны взглянуть на эту статью: https: //blogs.msdn.microsoft.com/wmi/2009/07/24/powershell-remoting-between-two-workgroup-machines/ и эта книга: https: //devopscollective.gitbooks.io/secrets-of-powershell-remoting/content/index.html – 4c74356b41

+0

@ 4c74356b41 - Я на самом деле посмотрел на эту ссылку и получил меня дальше других, но я отсортировал t его выход и ссылка на самом деле имеют некорректную информацию сейчас, что я понял это – Martin

ответ

5

В итоге я понял это, было несколько проблем с тем, что я делал. Сначала ссылка на https://blogs.msdn.microsoft.com/wmi/2009/07/24/powershell-remoting-between-two-workgroup-machines/ содержит некорректную информацию. В нем указано, что запись реестра LocalAccountTokenFilterPolicy должна находиться на клиентской машине, это неверно, оно должно быть на сервере.

Другим решением было только то, что я являюсь сторонником, использующим полное доменное имя сервера в значении TrustedHosts, а затем используя только имя хоста при попытке создать сеанс.

Если кто-то пытается получить эту работу шаги, чтобы следовать являются:

  1. Run Enable-PSRemoting на сервере
    • Это запустит службу WinRM и установить его запуск автоматической
    • Он создаст HTTP-прослушиватель
      • Вы можете это проверить, выполнив winrm enumerate winrm/config/listener
    • Это позволит правила брандмауэра удаленного управления Windows
    • Он будет создавать и настраивать LocalAccountTokenFilterPolicy реестра ключей
    • Это приведет к сбросу разрешений на четырех сессий хосты
      • Вы можете проверить это, работает Get-PSSessionConfiguration
  2. Запустить WinRM ы е р в на клиентской машине
  3. Run Set-Item WSMan:\localhost\Client\TrustedHosts -Value <hostname or FQDN or server>
    • Вы можете добавить -Concatenate к концу Set-Item если вы пытаетесь добавить сервер в список
  4. Run $Cred = Get-Credential Я только что вошел имя пользователя и пароль (не имя_сервера \ имя_пользователя), как предложено kevmar
  5. Запустите команду, такую ​​как $S = New-PSSession -ComputerName <same name exactly that you put in the TrustedHosts> -Credential $Cred
  6. Если все работает должным образом, команда должна просто вернуть
  7. Если вы получите сообщение об ошибке с упоминанием Kerberos убедитесь, что вы используете один и тот же имя в параметре ComputerName и TrustedHosts
  8. Если вы получаете доступ запрещен проверку ошибок, что LocalAccountTokenFilterPolicy настроен на сервере
+2

Ничего себе, я никогда не смог бы получить эту работу без доменов и профиля общедоступной сети без этой записи. Я всегда устанавливал TrustedHosts на SERVER. Вы все равно должны добавить клиентский ip к брандмауэру сервера, как это, в общедоступных сетях: «Set-NetFirewallRule -Name WINRM-HTTP-In-TCP -RemoteAddress » (Имя не является именем, которое вы видите на панели управления брандмауэром , но запись в реестре.) Приятно, что копия работает с pssessions. – js2010

+0

Также «enable-psremoting -force -skipnetworkprofilecheck» для общедоступных сетей. – js2010

+1

В win7 вы можете установить powershell 4 (wmf 4), а затем запустить «enable-psremoting -force -skipnetworkprofilecheck», даже если пользователь системы с uac включен, и профиль общедоступной сети. Тем не менее, все еще нет команд firewall. https://www.microsoft.com/en-us/download/details.aspx?id=40855 (Windows6.1-KB2819745-x64-MultiPkg.msu) Корпорация Майкрософт рекомендует в любом случае не включать ее с PS 2.0. https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/enable-psremoting?f=255&MSPPError=-2147217396 – js2010

1

Сначала попробуйте создать объект учетных данных только с вашим именем пользователя и паролем. Пропустите попытку назначить имя домена или сервера в учетных данных.

Затем попробуйте подключиться к IP-адресу вместо имени компьютера. Вам все равно нужно добавить его в значения доверенных хостов.

Последнее, что нужно использовать, - Test-WSMan для устранения неполадок. Сообщение об ошибке, которое предоставляет, должно дать вам сильный намек на то, что проблема.

+1

Спасибо за помощь. Это подтолкнуло меня в правильном направлении, и Test-WSMan помог устранить неполадки. – Martin

Смежные вопросы