Я боролся с этим несколько часов и не могу понять этого. У меня два компьютера с Windows 7. Одна из них - моя рабочая станция, которая использует Powershell для административного обслуживания. Другой - это машина, на которой я хотел бы использовать удаленное взаимодействие Powershell для выполнения удаленных командлетов Powershell.
На обоих компьютерах я включил удаленное взаимодействие Powershell и добавил все компьютеры в TrustedHosts со значением *. На удаленном компьютере я запустил службу удаленного реестра и убедился, что службы DCOM, Winmgmt и Winrm работают. Брандмауэр также отключен на удаленном компьютере.
Командлет, который я пытаюсь запустить:
Get-Process -ComputerName $name
Где $ name - имя удаленной машины. Я все время получаю сообщение об ошибке, что не удалось подключиться к удаленному компьютеру. Я также пробовал использовать IP и получаю ту же ошибку. Эти ПК не входят в домен.
Я могу успешно сделать следующее:
Invoke-Command {get-Process} -ComputerName $name -Credential $creds
Где $ name - это имя компьютера, а $ creds - это имя пользователя и пароль для локальной учетной записи администратора удаленного компьютера. Это дает мне тот же результат, которого я ожидал.
Хотя это приемлемый обходной путь, мне любопытно, почему не использовать get-process с удаленным взаимодействием, как следует? Я видел несколько статей в сети, в которых говорилось, что люди добились успеха с этим самостоятельно.
Каждый раз я использую Powershell на своей рабочей станции с повышенными привилегиями.
Любые идеи?
Что ж, боюсь, вы сами даете ответ.
Ваша учетная запись администратора на локальном компьютере не имеет прав администратора на удаленном компьютере.
Get-Process
не принимает учетные данные, поэтому при запуске
Get-Process -ComputerName remoteMachine
вы аутентифицируетесь как localMachine\Administrator
, но когда вы вызываете его и вводите учетные данные, вы аутентифицируетесь как remoteMachine\Administrator
Запустите службу удаленного реестра, которая работала у меня на Win7.