Powershell, удаленный доступ к сценарию запрещен для сетевых ресурсов - PullRequest
7 голосов
/ 17 октября 2011

Я пытаюсь выполнить скрипт powershell удаленно, используя invoke-command.Сценарий опирается на файл конфигурации, который доступен через локальную сеть.Сценарий вызывается следующим образом:

Invoke-Command -ComputerName 192.168.137.181 -FilePath c:\scripts\script.ps1 -ArgumentList \\192.168.137.1\share\config.xml

Конфигурация, как вы можете видеть, представляет собой файл xml и загружается с использованием:

$xml = New-Object XML
$xml.Load(args[0])

Когда сценарий вызывается локально наЗатем машина запускается без каких-либо проблем и читает файл конфигурации.Однако, когда я запускаю его с другого компьютера с помощью команды invoke, я получаю

"Доступ к пути" \\ 192.168.137.1 \ share \ config.xml 'запрещен "

исключение, которое выдается при выполнении метода Load.

Файл доступен каждому с правами на чтение и запись.И машина, на которой должен выполняться скрипт (.181), и машина, на которой он выполняется физически, имеют одинаковые учетные данные, поэтому я не передаю их в командлет invoke-command.У общего компьютера (.1) разные учетные данные, но это никогда не было проблемой при локальном вызове сценария из .181.

Не могли бы вы указать мне правильное направление?Я застрял на этом шаге и не могу найти решение самостоятельно.Я попытался загрузить строку xml с помощью метода WebClient # DownloadString и передать учетные данные для общего компьютера, но это не помогло.

Заранее спасибо

1 Ответ

9 голосов
/ 17 октября 2011

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

Попробуйте решение, упомянутое здесь: http://blogs.msdn.com/b/clustering/archive/2009/06/25/9803001.aspx

...