gpt4 book ai didi

powershell - 如何在 PowerShell 中从 csv 中查找 Active Directory 组名?

转载 作者:行者123 更新时间:2023-12-04 02:04:20 24 4
gpt4 key购买 nike

如果我有一个.csv:

ClientCode,GroupCode
1234,ABC
1234,DEF
1235,ABC
1236,ABC

我想得到一个哈希表,以 ClientCode 为键,值为所有包含 ClientCode 的广告组,例如:

ClientCode GroupCode      
---------- ---------
1234 ClientGroup_InAD_1234, some_other_client_1234
1235 ClientGroup_InAD_1235, some_other_client_in_AD_1235
1236 ClientGroup_InAD_1236

我该怎么做?

基本上,我在 Active Directory 中有客户端组,每个客户端都有一个代码,该代码与 csv 中的“ClientCode”相同。例如,我可能有一个名为“Bob”的客户,我已为其分配了一个代码“1234”。因此,Bob 在 AD 中的组将是“Bob_1234”。本质上,我希望能够搜索其中包含 ClientCode 的任何组。所以我想搜索所有具有“1234”的广告组。这将返回“Bob_1234”,并且 AD 中的任何组的名称中也包含“1234”。

到目前为止我已经尝试过:

$clientTable = @{}

foreach($rec in $csv_data) {
$groups = @(get-adgroup -Filter "name -like '*$($rec.clientcode)_*'")
write-host "Found $($groups.count) group(s) for: $($rec.clientcode)"
$clientTable[$ClientCode] = @($groups)
}

$clientTable

但我没有得到我想要的输出

最佳答案

您可以像这样使用循环。您需要在要通过过滤器查找的名称的开头使用 * 进行搜索。

foreach($rec in $csv) { 
$clientCode = "*_$($rec.ClientCode)"
if (!($clientTable.ContainsKey($clientCode))) {
$names = Get-ADGroup -Filter 'Name -like $clientCode' | select Name
$clientTable[$clientCode] = $names -join ","
}
}

这还将检查任何已经检查过的客户端 ID 并忽略它们。

关于powershell - 如何在 PowerShell 中从 csv 中查找 Active Directory 组名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com