为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕沐林林 2021-09-19 16:06:11
如果我打开 cmd 并输入whoami/logonid我会得到一个登录 ID 号,经过一番研究,我发现了这一行:var logonId = UserPrincipal.Current.Sid;这段代码为我提供了一个以 whoami/lgonid 开头的数字,但它们不同。我不想运行 whoami throw c# 代码,我只需要获取结果编号。例如:如果我写 whoami/user 我得到了用户名,那么 C# 代码中的等价物是 WindowsIdentity.GetCurrent().Name;我需要同样的登录名
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

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


查看完整回答
反对 回复 2021-09-19
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您可以使用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);

}


查看完整回答
反对 回复 2021-09-19
  • 2 回答
  • 0 关注
  • 253 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信