获取用户所属的特定 AD 组

问题描述

我终其一生都无法弄清楚这一点。我想要做的是获取用户所属的所有组的列表。然后我想传递这些并抓住我正在寻找的特定群体。

以下是我目前所拥有的:

         Route.get("/getdata",async (req,res)=>{
            const { firstname,lastname,username}=req.body;
            const user = await User.findOne({firstname,username});
            if(user===user._id){
                res.status(200).json(user);
                console.log(user);
            }
            else{
                res.status(401).json("user not registered");
                console.log("user is not registered");
            }
        });

这不返回任何内容我有一种感觉,我没有在我的 Where-Object 中引用正确的属性,但我很难找到它是什么。我知道 (Get-ADUser $user -Properties MemberOf ).MemberOf | Where-Object {$_.Name -contains 'Part of Group Name'} 的结果是:

(Get-ADUser $user -Properties MemberOf ).MemberOf

我就是不知道如何引用“CN”。

解决方法

试试这个:

(Get-ADUser $user -Properties memberOf).memberOf |
  Where-Object { $_ -like 'CN=*Part of Group Name*,*' }

PowerShell v3 及更高版本中的 (...).memberOf 语法在功能上等同于管道到 Select-Object -ExpandProperty memberOf,因此您也可以这样编写:

Get-ADUser $user -Properties memberOf |
  Select-Object -ExpandProperty memberOf |
  Where-Object { $_ -like 'CN=*part of group name*,*' }

(在不支持 (...).memberOf“语法糖”的 PowerShell v2 中需要第二种变体。)

,

有一个 cmdlet 可以很好地获取用户的组成员身份。请尝试以下操作:

Get-ADPrincipalGroupMembership -Identity $user | Select -ExpandProperty Name | Select-String -Pattern 'Part of Group Name'