在Powershell中比较广告组和CSV
我是Powershell的新手,我遇到了从CSV查找信息的难题。我有一个用户广告组,我试图从CSV中找到包含他们的samAccountName的条目 CSV的标题为samAccountname、IP、子网和主机名。例如,这里有一个摘录: 尼尔普,10.1.52.22,10.1.52.0,主机名01 我最终需要找到CSV中任何samAccountnames的所有主机名,这些主机名也在AD组中 我一直在尝试Compare-Object cmdlet,但没有成功:在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
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 }
}
这就成功了!非常感谢。我需要它,这样我就可以将这些主机名移动到它们在广告中的正确位置,所以在脚本的末尾钉上一个管道来完成它。所有人都得到了款待。再次感谢!