Apo*_*let 5 c# directoryservices active-directory
我试图从远程主机获取本地组的所有成员.我找到了一种使用System.DirectoryServices.AccountManagement命名空间的方法,但最终出现了不一致...
使用PrincipalSearcher.FindAll(参见下文),我获得了一个组的所有成员(Domain + Local).
输出:
码:
using (var machineContext = new PrincipalContext(ContextType.Machine, hostname))
using (var gpSeach = new PrincipalSearcher(new GroupPrincipal(machineContext)))
{
foreach (GroupPrincipal gp in gpSeach.FindAll().Where(gp => gp.SamAccountName == "Administrators"))
{
foreach (var member in gp.Members)
{
Trace.WriteLine("Member: " + member.Name+ " - " + member.Sid);
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用GroupPrincipal.FindByIdentity,我只获取组的本地成员:
输出:
码:
using (var machineContext = new PrincipalContext(ContextType.Machine, hostname, null, ContextOptions.Negotiate, "myUsername", "myPassword"))
using (GroupPrincipal localAdminGp = GroupPrincipal.FindByIdentity(machineContext, IdentityType.Name, "Administrators"))
{
foreach (var member in localAdminGp.Members)
{
Trace.WriteLine("Member: " + member.Name + " - " + member.Sid);
}
}
Run Code Online (Sandbox Code Playgroud)
在窗帘下发生了什么来获得这两种不同的结果!?!
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |