0

我对 Powershell 很陌生,而且我在从 CSV 中查找信息时遇到了困难。我有一个 AD 用户组,我试图从 CSV 中查找包含他们的 samAccountName 的条目。

CSV 具有标题 samAccountname、IP、子网和主机名。例如这里是一个摘录: neilp,10.1.52.22,10.1.52.0,Hostname01

我最终需要在 CSV 中找到也在 AD 组中的任何 samAccountnames 的所有主机名。

我一直在尝试 Compare-Object cmdlet,但没有成功:

Import-Module ActiveDirectory

$Test_Users = Get-ADGroupMember Test_Users
$Data = Import-csv .\Data.csv

$Data | ForEach-Object {Compare-Object $_ $Test_Users-ExcludeDifferent }

任何人都可以帮忙吗?

4

2 回答 2

0

尝试这个:

Import-Module ActiveDirectory

$Test_Users = Get-ADGroupMember Test_Users
$Data = Import-Csv .\Data.csv

Compare-Object $Data $Test_Users -Prop sAMAccountName -Include -Exclude | % {
  $account = $_.sAMAccountName
  $Data | ? { $_.sAMAccountName -eq $account } | % { $_.Hostname }
}
于 2013-07-19T11:33:51.377 回答
0

我解决此类问题的方法是将两个对象数组连接起来,然后使用Group-ObjectCmdLet。请注意在 CVS 中使用与Get-ADGroupMemberCmdLet 中的属性名称相同的列标题。

Import-Module ActiveDirectory

$a =  Import-csv .\Data.csv
$b =  Get-ADGroupMember Test_Users

$c = $a + $b | group-object -property XXXX

然后你可以循环遍历$c数组来构建一个新对象。

于 2013-07-19T10:28:23.067 回答