从数组导出特定输出

问题描述 投票:0回答:1

我有以下代码,显示所有具有以'X'开头的SamAccountName的用户为其成员的组,并将输出导出为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...
arrays export output powershell-v3.0
1个回答
0
投票

只需过滤以CN=G-ORG-开头的专有名称的成员列表,而不是加入所有名称:

$_.memberof | Where-Object { $_.StartsWith('CN=G-ORG-') }

如果可以有多个匹配,则可以加入结果

($_.memberof | Where-Object {...}) -join ';'

或者选择其中一个(例如第一个)

$_.memberof | Where-Object {...} | Select-Object -First 1

根据要求。

© www.soinside.com 2019 - 2024. All rights reserved.