管理員,我有以下的C#代碼執行的PowerShell從C#
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
invoker.Invoke("Set-ExecutionPolicy Unrestricted");
// ...
}
這使我異常
訪問註冊表項 「HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的PowerShell \ 1 \ ShellIds \ Microsoft.PowerShell' 被拒絕。
根據this,解決方法是以管理員身份啓動PowerShell。
通常,這可以通過右鍵單擊PowerShell並選擇「以管理員身份運行」來完成。有沒有辦法做到這一點編程?
這不適用於Windows Server 2012和PowerShell 3.0上的我。 :( – Anonymous 2013-10-22 11:54:10
我很驚訝OP將此標記爲答案,在他提到的問題中,「右鍵單擊PowerShell並選擇」以管理員身份運行「,這意味着它們所運行的憑據已經是管理員組的成員但是他們被MS補充稱爲UAC的奇妙安全(咳嗽,咳嗽)所阻止。解決方案發布(並且已經過檢查)並沒有解決這個問題。我的一部分人說要標記這篇文章,因爲答案沒有解決*發佈*問題... – Jason 2014-09-17 20:59:54
這是來自代碼項目2005年很老的代碼。它不會在Windows 2012中工作。我不得不找到一些方法將其轉換爲64位。 – 2015-10-02 23:28:45