2012-01-27 120 views
0

我們有一個軟件用於我們的業務,需要管理員權限才能運行。但是,員工不允許訪問具有管理員權限的帳戶。這是在Windows 7環境中。使用Process.Start作爲本地管理員帳戶啓動單獨的程序

我們通過GPO在所需的計算機上設置了本地管理員帳戶。 我創建的軟件的目標是啓動需要管理權限的軟件作爲本地管理員帳戶。

到目前爲止,軟件正在正常工作,因爲它正在啓動該軟件作爲帳戶,但它仍然給出它沒有管理權限時給出的錯誤。如果您在軟件上點擊右鍵並選擇runas,並手動輸入帳戶詳細信息,則可以正常工作。

SecureString pwd = new SecureString(); 
foreach (char c in "somepassword") { pwd.AppendChar(c); } 
var psi = new ProcessStartInfo 
{ 
    FileName = location, 
    UserName = "localadminaccountname", 
    Domain = Environment.MachineName, 
    Password = pwd, 
    UseShellExecute = false, 
    Verb = "runas" 
}; 
try 
{ 
    Process.Start(psi); 
} 

有一個異常catch語句,包含錯誤報告代碼。當調用Process.Start(psi)時不會引發異常。 (更新)

謝謝。

編輯 的Windows 7企業搭建了用戶訪問控制設置爲「從不通知」,所以沒有顯示UAC彈出時的Process.Start(PSI)被調用。

+0

你看到UAC彈出窗口要求執行驗證當以編程方式啓動您的過程時? – ken2k 2012-01-27 10:20:44

+1

「有一個異常錯誤報告。」:您認爲了解異常情況會有所幫助嗎? – 2012-01-27 10:29:20

+0

編輯問題以澄清這些問題。 – 2012-01-27 10:33:42

回答

0

如果將UAC設置爲「從不通知」,則將其禁用 - 用戶以最大權限集運行。

這意味着如果用戶是管理員帳戶,則不需要使用「runas」動詞。這也意味着,如果用戶不是管理員帳戶,則可能是因爲用戶無法提升並且OTS(肩上)高程被禁用,您的應用程序可能無法工作(

相關問題