gpt4 book ai didi

c# - 通过 SID 获取本地用户

转载 作者:行者123 更新时间:2023-11-30 22:40:33 24 4
gpt4 key购买 nike

问题:我想通过SID获取本地windows用户:

我找到了这段代码

[ADSI]("WinNT://$Env:Computername/<SID=S-1-5-18>")

在这里: http://www.eggheadcafe.com/software/aspnet/32882679/add-builtin-account-to-local-group-using-winnt-adsi-provider.aspx

我从中推断出,我可以在 (VB) .NET 中用这个来完成:

Dim strURL As String = "WinNT://" + strComputerName + "/<SID=" + strSID + ">"
Dim de As DirectoryServices.DirectoryEntry = New DirectoryServices.DirectoryEntry(strURL)
de.Properties("whatever").Value.ToString()

但是,这是行不通的。任何人都知道我如何WITHOUT 遍历所有用户(这需要首先从 byte[] 转换为字符串,然后比较 [不区分大小写] 很多字符串,这使得速度很慢)。

最佳答案

如果您使用的是 .NET 3.5 或更新版本,则可以使用此代码(在将对新的 System.DirectoryServices.AccountManagement 命名空间的引用添加到您的项目之后):

using System.DirectoryServices.AccountManagement;

// create a machine-context (local machine)
PrincipalContext ctx = new PrincipalContext(ContextType.Machine);

UserPrincipal up = UserPrincipal.FindByIdentity(ctx, IdentityType.Sid, <YourSidHere>);

if (up != null)
{
Console.WriteLine("You've found: {0}", up.DisplayName);
}
else
{
Console.WriteLine("ERROR: no one found");
}

关于c# - 通过 SID 获取本地用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com