![](/img/trans.png)
[英]Reverted to Membership from Identity and getting strange result for logged in user name
[英]Getting the logged in user name to activate a process with
我在C#和.NET 3.5中使用
我的目標是獲取登錄的用戶名,然后簡單地以該用戶名啟動進程。 通常,一個簡單的Process.Start(pathToProgram)
在這里會有所幫助,但是問題是我正在從安裝程序類中調用此行,這意味着msiexec當前正在工作,而我得到的用戶名是SYSTEM,而不是當前的實際用戶。登錄到Windows。
當然,該Environment.UserName
也會返回“ SYSTEM”,而不是已登錄的用戶。
如何以登錄用戶而不是系統用戶身份啟動進程?
您可以像這樣獲得當前登錄用戶的用戶名-
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
從SO后 -
Process p = new Process();
p.StartInfo.FileName = "C:\SetupVM.bat";
p.StartInfo.UserName = userName;
p.StartInfo.Password = "AdminPassword";
p.Start();
p.WaitForExit();
我認為,當您調用Environment.UserName
將獲得當前進程模擬的用戶的值,而如果您調用Environment.GetEnvironmentVariable("USERNAME")
,則將獲得啟動該進程的用戶的名稱,然后進程尚未啟動,並且當然還沒有模仿其他用戶。
但是,這只是一個原始想法,似乎對OP問題有用,但我仍在搜索一些參考資料以確認我的主張。
我歡迎任何對這一事實有更好理解的人,並比我更好地解釋它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.