2013-08-01 7 views
1

Я пытаюсь выполнить программу внутри сценария оболочки питания. Сценарий PS вызывается из метода C# с использованием Runspaces. Программа пытается выполнить обновление файла конфигурации на удаленном сервере. Когда я запускаю все это, я получаю следующую ошибку:Ошибка при доступе к путям UNC с помощью сценария powershell при удалении

System.UnauthorizedAccessException: доступ к пути \\ какой-то путь запрещен.

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

Кто-нибудь сталкивался с этим раньше? Мне сказали, что это не работает, потому что я запускаю его через Visual Studio и C#, и мне не разрешат обращаться к сетевым ресурсам через скрипт powershell, который запускается через класс C#. Кто-то еще сказал мне, что разрешения, которые я использую для запуска сценария PS в рабочей области, не переводятся в программу, которую я вызываю в скрипте.

Другие идеи и возможные решения?

Благодаря

ответ

5

Похоже, вы пытаетесь изменить файл на пути UNC на вторичном сервере. Это не будет работать из-за возрастной проблемы «двойного прыжка». Вы находитесь на машине A, выполняете удаленный сценарий в B, который пытается изменить файл на C. Ваша аутентификация от A до B не может быть повторно использована для подключения от B до C. Это ограничение для разработки для NTLM (интегрированная проверка Windows).

Однако все не потеряно: вы должны использовать аутентификацию CredSSP при подключении с помощью PowerShell, удаленной от A до B, а затем вы можете подключиться к C без проблем.

Ссылки: