![](/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.