在Powershell中比较广告组和CSV

在Powershell中比较广告组和CSV,powershell,csv,Powershell,Csv,我是Powershell的新手,我遇到了从CSV查找信息的难题。我有一个用户广告组,我试图从CSV中找到包含他们的samAccountName的条目 CSV的标题为samAccountname、IP、子网和主机名。例如,这里有一个摘录: 尼尔普,10.1.52.22,10.1.52.0,主机名01 我最终需要找到CSV中任何samAccountnames的所有主机名,这些主机名也在AD组中 我一直在尝试Compare-Object cmdlet,但没有成功: Import-Module Acti

我是Powershell的新手,我遇到了从CSV查找信息的难题。我有一个用户广告组,我试图从CSV中找到包含他们的samAccountName的条目

CSV的标题为samAccountname、IP、子网和主机名。例如,这里有一个摘录: 尼尔普,10.1.52.22,10.1.52.0,主机名01

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

我一直在尝试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 }

有人能帮忙吗?

我解决这个问题的方法是连接两个对象数组,然后使用
Group-Object
CmdLet。在
Get-ADGroupMember
CmdLet中,只需小心在CVS中使用与属性同名的列标题即可

Import-Module ActiveDirectory

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

$c = $a + $b | group-object -property XXXX
然后,您可以循环使用
$c
数组来构建新对象。

尝试以下操作:

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 }
}

这就成功了!非常感谢。我需要它,这样我就可以将这些主机名移动到它们在广告中的正确位置,所以在脚本的末尾钉上一个管道来完成它。所有人都得到了款待。再次感谢!