У меня есть два веб-приложения, размещенные на одном сервере Windows 2012 R2 (экземпляр AWS EC2). IIS версии 8.5.9600.16384.
Оба веб-приложения вызывают одну и ту же библиотечную функцию для выполнения одного и того же файла сценария Powershell на диске C :. Пулы приложений обоих веб-приложений работают в сетевой службе.
Однако только веб-приложение A может успешно выполнить сценарий Powershell. При выполнении того же сценария в веб-приложении B произошла следующая ошибка:
I n t e r n a l W i n d o w s P o w e r S h e l l e r r o r . L o a d i n g m a n a g e d W i n d o w s P o w e r S h e l l f a i l e d w i t h e r r o r 8 0 0 7 0 0 0 5 .
80070005 предлагает проблему с разрешениями.
Я безуспешно пробовал следующее:
- Пусть веб-приложение B использует тот же пул приложений, что и веб-приложение A
- Запустите procmon.exe и сравните записи, сгенерированные как A, так и B, и не нашли никакой разницы. И A, и B имеют события «запуска процесса» для сценария, который возвратил состояние «SUCCESS». Ошибка «ACCESS DENIED» не найдена.
Пример такого события «SUCCESS», которое завершилось ошибкой:
Event Class: Process Operation: Process Start Event Class: Process Operation: Process Start Result: SUCCESS Path: TID: 3568 Duration: 0.0000000 Parent PID: 1748 Command line: "powershell.exe" -NoProfile -ExecutionPolicy unrestricted -file "C:\scripts\dostuff.ps1" -arg1 "sometext" Current directory: c:\windows\system32\inetsrv\
Что может вызвать проблемы с разрешениями при выполнении Powershell?