我对Powershell很新,我从CSV中找到了砖块查找信息。我有一组AD用户,我试图从CSV中查找包含samAccountName的条目。
CSV的标题为samAccountname,IP,Subnet和Hostname。例如,这是一个摘录: 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 }
有人可以帮忙吗?
答案 0 :(得分:0)
我解决这个问题的方法是连接两个对象数组,然后使用Group-Object
CmdLet。请注意在CVS中使用与Get-ADGroupMember
CmdLet中相同名称相同的列标题。
Import-Module ActiveDirectory
$a = Import-csv .\Data.csv
$b = Get-ADGroupMember Test_Users
$c = $a + $b | group-object -property XXXX
然后你可以遍历$c
数组来构建一个新对象。
答案 1 :(得分: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 }
}