2011-07-13 68 views
5

我試圖如何啓動控制檯應用程序在系統Windows用戶帳戶下運行?

var process = new Process 
{ 
    StartInfo = new ProcessStartInfo 
    { 
     FileName = filename, 
     UserName = "System", 
     UseShellExecute = false, 
    }, 
}; 

process.Start(); 

,但它產生

Win32Exception是未處理

登錄失敗:未知的用戶名或密碼錯誤

我將不得不使用CreateProcessAsUser? 我如何獲得適當的參數傳遞給該方法?

回答

8

系統賬號密碼是由Windows interally保持(我認爲),即試圖通過這種方式提供的憑據啓動進程爲系統帳戶最終註定要失敗的。

,但我卻發現使用Windows服務描述一個巧妙的方法可以用來運行由(AB)的系統帳戶下的進程個論壇上發帖:

Tip: Run process in system account (sc.exe)

或者在Windows的Sysinternals工具PsExec似乎允許您使用-s開關在System帳戶下運行進程。

+1

'psexec -s'是我常用的方法。記住'psexec'確實需要一個高架發射器本身。 – Richard

0

名應LocalSystem,如果你想用高權限(這是管理員組的成員)或LocalService正常特權

EDIT運行過程:我的錯誤本地系統&本地服務不regulary用戶,因此,它們不能作爲用戶名提供。 Kragen的解決方案是正確的

+0

謝謝!但它顯示了同樣的錯誤 –

相關問題