Доступ к сети как локальная система, запускающая Exe из сетевого ресурса

Я запускаю исполняемый файл Dotnet 3.5 в Windows 7 Ent в качестве сценария запуска компьютера GPO в домене. Сценарий находится в общей сетевой папке. EXE запускается как локальная система. EXE работает правильно.

Я хотел бы получить доступ к веб-службе в этом exe, но похоже, что локальная система не имеет доступа к сетевым ресурсам согласно документации. Однако, если тот же исполняемый файл скопирован на диск C и запущен оттуда под той же учетной записью и при тех же условиях (например, сценарий запуска GPO), тогда можно будет получить доступ к веб-службе.

Как получается, что локальная система имеет доступ к веб-службе при запуске с диска C :, но не с общего сетевого ресурса? Можно ли что-нибудь сделать, чтобы заставить его работать из общего сетевого ресурса без предварительного копирования на локальный диск? Локальная система такая же, как SYSTEM и такая же, как NTAuthority \ system?

Я пробовал следующее, чтобы заставить его работать. Ничего из этого не работает:

  1. Выдать себя за пользователя домена в коде.
  2. Полное доверие ко всем зонам в конфигурации безопасности .Net
  3. Добавьте общий сетевой ресурс в список надежных сайтов в IE.
  4. Используйте имя netbios вместо полного имени файлового сервера, то есть \ server \ share, а не \ server.domain.com \ share

Следующее, что я не могу сделать, чтобы решить эту проблему:

  1. Измените учетную запись службы клиента групповой политики на пользователя домена
  2. Запустите exe как сценарий входа в систему. Это должен быть сценарий запуска.

Чтобы воспроизвести эту проблему, я делаю следующее:

  1. Создайте простой исполняемый файл с некоторой сетевой функцией, например WebClient.DownloadString ("http://www.google.com" )
  2. Развернуть exe в общий сетевой ресурс
  3. Запустите как обычный пользователь, чтобы показать, что ошибки нет
  4. Запустите whoami, чтобы показать текущего пользователя
  5. запустите psexec -s -i cmd.exe
  6. Cmd запустится как SYSTEM (Local System или NT Authority \ System)
  7. Запустите whoami, чтобы показать текущего пользователя
  8. Запустите exe из сетевой папки, чтобы показать, что страница не загружается.
  9. Скопируйте exe на диск C.
  10. Запустите exe, чтобы показать, что страница загружена.

person asuboy75    schedule 22.06.2015    source источник
comment
stackoverflow.com/q/249928/62576   -  person Ken White    schedule 22.06.2015
comment
Кен Уайт, проблема выше. У меня нет проблем с доступом к сетевому ресурсу. Мой exe уже находится в общей папке и работает без проблем. Я предоставил DOMAINNAME \ COMPUTERNAME $ соответствующее разрешение. Проблема в том, что при запуске из общего сетевого ресурса exe не может подключиться к Интернету в контексте локальной системы. Но может, если тот же exe запускается с диска C :. Я не могу изменить учетную запись входа в систему клиентской службы групповой политики, которая запускает этот exe.   -  person asuboy75    schedule 23.06.2015
comment
Я решил эту проблему. Проблема заключалась в том, что мне нужно предоставить разрешения на чтение и выполнение для всех родительских папок на пути к общему сетевому ресурсу, где находился exe. Например, если исполняемый файл находится в \\ server \ share \ folder1 \ folder2 \ folder3 \ abc.exe, то мне нужно предоставить разрешение на чтение и выполнение для всех из них:   -  person asuboy75    schedule 17.02.2017