作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一个.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/
我是一名优秀的程序员,十分优秀!