ASP.NET PowerShell Олицетворение

Я разработал веб-приложение ASP.NET MVC для выполнения сценариев PowerShell.

Я использую веб-сервер VS и могу выполнять скрипты нормально.

Однако требуется, чтобы пользователи могли выполнять сценарии для AD, чтобы выполнять действия, которые их собственные учетные записи не могут выполнять.

Поэтому я использую олицетворение для переключения удостоверения перед созданием пространства выполнения PowerShell:

            Runspace runspace = RunspaceFactory.CreateRunspace(config);

        var currentuser = WindowsIdentity.GetCurrent().Name;

        if (runspace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) {
            runspace.Open();
        }

Я проверил, используя учетную запись администратора домена, и я получаю следующее исключение при вызове runspace.Open ():

Исключение безопасности Описание: приложение попыталось выполнить операцию, не разрешенную политикой безопасности. Чтобы предоставить этому приложению необходимые разрешения, обратитесь к системному администратору или измените уровень доверия приложения в файле конфигурации. Сведения об исключении: System.Security.SecurityException: Запрошенный доступ к реестру не разрешен.

Веб-приложение работает с полным доверием, и я явно добавил учетную запись, которую я использую для олицетворения, в группу локальных администраторов машины (хотя группа администраторов домена уже была там).

Я использую advapi32.dll вызов LogonUser для выполнения олицетворения аналогично этому посту (http://blogs.msdn.com/webdav_101/archive/2008/09/25/howto-calling-exchange-powershell-from-an-impersonated-thead.aspx)

Любая помощь приветствуется, так как на данный момент это немного ограничивает шоу.

Спасибо Бен

Ответы на вопрос(1)

Ваш ответ на вопрос