我有以下代码,显示所有具有以'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...
只需过滤以CN=G-ORG-
开头的专有名称的成员列表,而不是加入所有名称:
$_.memberof | Where-Object { $_.StartsWith('CN=G-ORG-') }
如果可以有多个匹配,则可以加入结果
($_.memberof | Where-Object {...}) -join ';'
或者选择其中一个(例如第一个)
$_.memberof | Where-Object {...} | Select-Object -First 1
根据要求。