Я пытаюсь создать виртуальную машину, которая должна иметь возможность создавать новые сеансы (с помощью New-PSSession). Очень увлекательный about_Remote_Troubleshooting мой постоянный спутник, конечно же!
После запуска базовой машины (Win 8.1 Enterprise):
mycompany.com
.dev.mycompany.com
так что у разработчиков есть песочница, с которой можно поиграть.dev.mycompany.com
.my-vm\msorens
который находится в группе администраторов на локальном компьютере.Первое препятствие:
Попытка просто бежать 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