Я пытаюсь запустить сценарий PowerShell из приложения C #, и мне нужно, чтобы этот сценарий запускался, когда мое приложение C # работает как пользователь без прав администратора (например, Сетевая служба или какая-либо другая учетная запись домена).
Ранее я использовал следующий код:
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
// load the powershell module
invoker.Invoke("Import-Module MyModule");
// run the cmdlet defined in the module
invoker.Invoke("MyCmdlet");
}
Я не знаю, является ли это лучшим подходом для запуска командлетов, определенных в модуле (пожалуйста, научите меня, если есть лучший способ!). В любом случае, это работает отлично, если я работаю от имени администратора. Однако я попытался запустить его в качестве сетевой службы и получил недружественную ошибку в конструкторе RunspaceInvoke:
Запрошенный доступ к реестру не разрешен.
Есть ли способ, с помощью которого я могу запускать свои командлеты PowerShell от имени пользователя без повышенных прав, такого как сетевая служба? Мне не нужно или желание получить доступ к реестру. Сам командлет также не требует повышенных привилегий.