所以我对活动目录中的递归组有疑问.我有一个方法来检查用户ID是否在组中.效果很好.今天发现它不检查递归组成员资格,我不太确定如何(或者如果)有办法做到这一点.这是我到目前为止非递归的内容:
public static bool CheckGroupMembership(string userID, string groupName, string Domain)
{
bool isMember = false;
PrincipalContext ADDomain = new PrincipalContext(ContextType.Domain, Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ADDomain, userID);
if (user.IsMemberOf(ADDomain, IdentityType.Name, groupName.Trim()))
{
isMember = true;
}
return isMember;
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了一些关于目录搜索器的东西,但我对直接使用AD有些新意,虽然我理解了这些概念,但其他一些东西对我来说仍然有点遗失.
谢谢!
想象一下,有一个 Powershell 脚本在 Windows 10 计算机上的 SYSTEM 帐户下运行,并检查当前登录的是哪个域用户。没什么大不了。
现在:我想检查该登录用户是否具有该计算机的管理员权限。到目前为止我能找到的每一项检查都只查看“.IsInRole([Security.Principal.WindowsBuiltInRole]::'Administrator')”。但这仅检查用户是否是本地组“管理员”的直接成员。但本地管理员组内可能存在一个域组,而用户是该域组的成员。所以他是管理员,即使他不是管理员组的直接成员。
如何同时检查两者?我只是想检查某人是否是管理员,无论这些管理员权限来自哪里。此检查也将在 SYSTEM 帐户下运行,而不是在受影响的用户帐户本身下运行。
有任何想法吗?