4

У меня есть две удаленные машины: 1 мы называем это драйвером, 2 мы называем это клиентом. Они находятся в одном домене, назовем их «TECH.com».

На компьютере с драйвером у меня есть сценарий PowerShell, который управляет клиентским компьютером: 1, восстановить контрольную точку на клиенте. 2, остановите клиента. 3, запустите клиент. и т.д. Я пытаюсь заставить клиентский компьютер выполнить другой сценарий PowerShell (который может находиться либо на / на клиенте, либо / и на драйвере. Я могу скопировать файл с драйвера на клиент при необходимости) на клиентской машине.

Поэтому я провел некоторое исследование и нашел два метода: 1, WS Management. 2, WMI я включил-psremoting на обеих машинах. У меня есть тестовый WsMan на обеих машинах, и они видят, что он работает нормально. Я смог перенести файлы между этими двумя компьютерами. Однако, когда я попытался запустить Invoke-команду, она выдала мне ошибки:

Connecting to remote server XXXXXXtech.com failed with the following error message : WinRM cannot process the request. The following 
error with errorcode 0x80090311 occurred while using Kerberos authentication: There are currently no logon servers available to service the logon request.  
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.
    + CategoryInfo          : OpenError: (XXXXXX.XXXXtech.com:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : AuthenticationFailed,PSSessionStateBroken

1 ответ1

5

Пара вариантов:


На локальном компьютере разрешите подключение к удаленному компьютеру без аутентификации:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value $remoteMachine -Force

Если вы находитесь в одном домене и у вас есть права администратора на удаленном компьютере, попробуйте ввести удаленный сеанс под своим именем пользователя.


В противном случае вам может понадобиться / захотеть установить объект учетных данных и использовать его для запуска сеанса для Invoke-Command .

$script = { Write-Host "Hello, World!" }
$computerName = "Server Name Or Ip Address"
$username = "domain\user"
$pw = "worstpasswordever"

# Create Credentials
$securepw = ConvertTo-SecureString $pw -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argument $username, $securepw

# Create and use session
$session = New-PSSession -credential $cred -ComputerName $computerName
Invoke-Command -Session $session -ScriptBlock $script
Remove-PSSession $session

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .