我如何从 c# 代码中的 whoami.exe 结果中获取登录 ID

如果我打开 cmd 并输入whoami/logonid我会得到一个登录 ID 号,

经过一番研究,我发现了这一行:

var logonId = UserPrincipal.Current.Sid;

这段代码为我提供了一个以 whoami/lgonid 开头的数字,但它们不同。

我不想运行 whoami throw c# 代码,我只需要获取结果编号。

例如:如果我写 whoami/user 我得到了用户名,那么 C# 代码中的等价物是 WindowsIdentity.GetCurrent().Name;

我需要同样的登录名


慕沐林林
浏览 254回答 2
2回答

守着星空守着你

ProcessStartInfo.RedirectStandardOutput在实例化 whoami 时使用。您可以解析为 logonid 获得的文本。

哈士奇WWW

您可以使用ProcessStartInfo.RedirectStandardInput和ProcessStartInfo.RedirectStandardoutput属性来实现这一点。以下是示例代码:public static string GetLoginId(){    Process p = new Process();    p.StartInfo.UseShellExecute = false;    p.StartInfo.RedirectStandardInput = true;    p.StartInfo.RedirectStandardOutput = true;    p.StartInfo.FileName = "cmd.exe";    p.Start();    StreamWriter myStreamWriter = p.StandardInput;    myStreamWriter.WriteLine("whoami /logonid");    // To avoid deadlocks, always read the output stream first and then wait.    string output = p.StandardOutput.ReadToEnd();    p.WaitForExit();    Console.WriteLine(output);}
打开App,查看更多内容
随时随地看视频慕课网APP