Невозможно использовать PowerShell Enter-PSSession для подключения к удаленному серверу.
У меня проблемы с подключением к удаленному серверу с помощью PowerShell, где удаленный компьютер использует номер порта не по умолчанию. Настройка следующая: у меня есть виртуальный хост-сервер с несколькими виртуальными машинами. Все эти виртуальные машины имеют одинаковый IP-адрес, но доступ к ним осуществляется через другой порт, например:
a.b.c.d:3000
a.b.c.d:3001
etc
Итак, у меня есть сценарий PowerShell:
$password = ConvertTo-SecureString "<MyPassword>" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("<Domain\UserName>", $password)
Enter-PSSession -ComputerName <IPAddress> -Port <PortNumber> -Credential $cred
Биты внутри "<>" относятся к отдельным машинам. При запуске этого скрипта я получаю следующую ошибку:
Enter-PSSession: не удалось подключиться к удаленному серверу со следующим сообщением об ошибке: клиент не может подключиться к месту назначения, указанному в запросе. Убедитесь, что служба в месте назначения работает и принимает запросы. Обратитесь к журналам и документации для службы WS- Management, работающей в месте назначения, чаще всего IIS или WinRM. Если местом назначения является служба WinRM, выполните следующую команду в месте назначения для анализа и настройки службы WinRM: "winrm quickconfig". Для получения дополнительной информации см. Раздел "Помощь по устранению проблем about_Remote_Troupe". В C:\PowerShell\Test7.ps1:25 char:16 + Enter-PSSession <<<< -ComputerName -Port -Credential $cred + CategoryInfo: InvalidArgument: (:String) [Enter-PSSession], PSRemotingTransportException + FullyQualifiedErrorId: CreateRemoteRunace:
Другой вариант, который я попробовал, выглядит следующим образом:
$password = ConvertTo-SecureString "<MyPassword>" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("<Domain\UserName>", $password)
$powershell_uri = "http://<IPAddress>:<PortNumber>"
Enter-PSSession -ConnectionUri $powershell_uri -Credential $cred
но это дало следующую ошибку:
Enter-PSSession: не удалось подключиться к удаленному серверу со следующим сообщением об ошибке: клиент не может подключиться к месту назначения, указанному в запросе. Убедитесь, что служба в месте назначения работает и принимает запросы. Обратитесь к журналам и документации для службы WS- Management, работающей в месте назначения, чаще всего IIS или WinRM. Если местом назначения является служба WinRM, выполните следующую команду в месте назначения для анализа и настройки службы WinRM: "winrm quickconfig". Для получения дополнительной информации см. Раздел "Помощь по устранению проблем about_Remote_Troupe". В C:\PowerShell\Test7.ps1:21 char:16 + Enter-PSSession <<<< -ConnectionUri $powershell_uri -Credential $cred # -ComputerName -Port -Credential $cred + CategoryInfo: InvalidArgument: (http://:/:Uri) [Enter-PSSession], PSRemotingTransportException + FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Я установил TrustedHosts на своей локальной машине (winrm set winrm/config/client @{TrustedHosts=""}), а на удаленной машине я выполнил команду "winrm quickconfig". На удаленной машине я также выполнил команду "winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port=""}".
Буду очень признателен за любую помощь в установлении соединения в PowerShell с этими машинами.
2 ответа
На удаленном компьютере:
- В: Панель управления \ Сеть и Интернет \ Центр управления сетями и общим доступом
Убедитесь, что удаленный компьютер не находится в общедоступном месте, но установите его на работу или частный Запустите PowerShell в режиме администратора и введите команду:
Enable-PSRemoting
выходПерейдите в Панель управления -> Система и безопасность -> Брандмауэр Windows и нажмите Дополнительные параметры
Добавьте ip-диапазон вашего управляющего компьютера в удаленное управление Windows (http-In) как в приватных правилах, так и во входящих правилах домена.
На управляющем компьютере:
- Запустите PowerShell в режиме администратора и введите команду:
Set-Item WSMan: \ localhost \ Client \ TrustedHosts -Связать remotecomputer.domain.suffix -Force
используя полный сетевой путь вашего удаленного компьютера. Это добавит сетевое имя удаленного компьютера к вашим доверенным хостам.
Это должно делать свое дело.