Приложение IIS получает сообщение об ошибке «Загрузка управляемой оболочки Windows PowerShell завершилась ошибкой 80070005» при выполнении powershell, но работает ли другое приложение на том же хосте? - PullRequest
0 голосов
/ 08 октября 2019

У меня есть два веб-приложения, размещенные на одном сервере 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 предлагает проблему с разрешениями.

Я безуспешно пробовал следующее:

  1. Пусть веб-приложение B использует тот же пул приложений, что и веб-приложение A
  2. Запустите 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?

1 Ответ

0 голосов
/ 08 ноября 2019

Я нашел способ обойти это, используя LocalSystem вместо Network Service.

...