Назад | Перейти на главную страницу

New-PSSession через границы домена

Я пытаюсь создать виртуальную машину, которая должна иметь возможность создавать новые сеансы (с помощью New-PSSession). Очень увлекательный about_Remote_Troubleshooting мой постоянный спутник, конечно же!

После запуска базовой машины (Win 8.1 Enterprise):

Первое препятствие:

Попытка просто бежать New-PSSession не удалось с отказом в доступе из-за междоменных проблем. На странице устранения неполадок, упомянутой выше:

Когда пользователь в другом домене является членом группы администраторов на локальном компьютере, пользователь не может удаленно подключиться к локальному компьютеру с правами администратора.

Я не уверен, что это правда (из-за моего неопытности в вопросах домена), но применение рецепта для этого средства позволило New-PSSession работать:

New-ItemProperty `
-Name LocalAccountTokenFilterPolicy `
-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
-PropertyType DWord `
-Value 1

(И это хоть и менее безопасно, но нормально, так как это просто виртуальная машина-песочница.)

Второе препятствие:

С установленным выше патчем я мог успешно выполнить любое из этих действий:

PS> New-PSSession
PS> New-PSSession -ComputerName localhost
PS> New-PSSession -ComputerName my-vm

Однако на самом деле мне нужно указать полное доменное имя машины:

PS> New-PSSession -ComputerName my-vm.dev.mycompany.com

Это не удается из-за отсутствия учетных данных. Что подводит нас к следующему:

PS> New-PSSession -ComputerName my-vm.dev.mycompany.com -Credential (Get-Credential)

Я пробовал свои локальные (my-vm) учетные данные, что привело к WinRM не может обработать запрос; нет доступных серверов входа.

Я пробовал учетные данные домена моей компании (обратите внимание, что это mycompany.com, а не домен, на котором виртуальная машина фактически находится на dev.mycompany.com), что привело к Доступ запрещен.

Есть ли способ заставить это работать?

На работе у нас такая же ситуация. Вот несколько шагов, которые мы делаем на компьютерах новых коллег, чтобы они могли подключиться к этому серверу, находясь за пределами нашего домена.

На стороне клиента

winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'

На стороне сервера

Enable-PSRemoting -Force
winrm quickconfig

Для HTTPS

winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="_";CertificateThumbprint="_"}

Для HTTP

winrm create winrm/config/Listener?Address=*+Transport=HTTP

Тест с

Test-WsMan ComputerName
Test-WsMan ComputerName -UseSSL

Создать сеанс с

New-PSSession -ComputerName Computer1 -Credential (Get-Credential)

Конечно, вам нужно настроить брандмауэр, чтобы сервер мог прослушивать порт удаленного взаимодействия PowerShell.

Изменить: установить TrustedHosts с помощью PowerShell

Или с помощью PowerShell (как администратор)

Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "Computer1,Computer2"

И проверьте (для этого не нужен Админ)

Get-Item WSMan:\localhost\Client\TrustedHosts