我有下面的代码,显示具有SamAccountName(以'X'开头)的用户所属的所有组,并将输出导出为CSV文件:
Get-ADUser -Filter {SamAccountName -like "X*"} -Properties memberof |
Select name, @{N="MemberOf";E={$_.memberof -join ";"}} |
Export-Csv "C:\Users\chicken\Desktop\export_powershell\extract_test.csv"
代码工作正常,但输出出现一些问题。实际上,它会返回用户所属的所有组,但是我只需要为每个用户导出一个特定的组(以“ G-ORG”开头的组)。
如何为每个用户过滤输出以仅包含以'G-ORG'开头的组?
示例输出:
User1,"CN=YVD_Access; CN=Proxy_ACCESS_GD; CN=RVH_BIS HSBC; CN=G-ORG-MULTI-CANAL-APPLICATION; CN=......"
USER2,"CN=G-ORG-ARCHI; CN=Proj_X; CN=Proj_X; CN=X_REF; CN=......"
USER3,"CN=HAV_SH; CN=G-ORG-IT; CN=EPH; CN=......"
USER...
必填输出:
User1,"CN=G-ORG-MULTI-CANAL-APPLICATION"
USER2,"CN=G-ORG-ARCHI"
USER3,"CN=G-ORG-IT;"
USER...
答案 0 :(得分:0)
仅对成员列表中以CN=G-ORG-
开头的专有名称进行过滤,而不是将它们全部加入:
$_.memberof | Where-Object { $_.StartsWith('CN=G-ORG-') }
如果有不止一场比赛,则可以加入结果
($_.memberof | Where-Object {...}) -join ';'
或选择其中一个(例如第一个)
$_.memberof | Where-Object {...} | Select-Object -First 1
根据要求。