我想從C#應用程序運行PowerShell腳本,並且需要腳本在我的C#應用程序以非管理員用戶身份運行時運行(例如網絡服務或其他域帳戶)。如何從C#運行PowerShell腳本作爲非升級用戶
以前,我用的是下面的代碼:(!請教我,如果有一個更好的辦法)
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
// load the powershell module
invoker.Invoke("Import-Module MyModule");
// run the cmdlet defined in the module
invoker.Invoke("MyCmdlet");
}
我不知道這是否是運行的模塊中定義的cmdlet的最佳方法。在任何情況下,如果我以管理用戶身份運行,此功能完美無缺。然而,我試圖運行這個網絡服務,並且我在RunspaceInvoke的構造函數中遇到了一個不友好的錯誤:
不允許請求的註冊表訪問。
有沒有一種方法可以將我的PowerShell cmdlet作爲未提升的用戶(例如網絡服務)運行?我不需要或不想訪問註冊表。該cmdlet本身也不需要提升特權。
謝謝,但我不想提升或模仿。我試圖將PowerShell腳本作爲*低權限*用戶運行,而不是高權限用戶。 – 2010-02-14 17:34:49