我一直在反对这个问题,并且无法弄清楚为什么这不起作用。
Import-Module ActiveDirectory
$Users = Get-ADGroupMember -identity “Accounting” -recursive | select name | export-csv -path "D:\group.csv"
$csv = Import-Csv "D:\group.csv"
foreach ($user in $csv) {Get-ADUser -filter "'Name -eq ""$user""'"}
答案 0 :(得分:1)
我认为你有几个问题。
Import-Csv
将返回一个对象数组,而不仅仅是名称。解决这个问题的方法不止一种,但这应该是你想要的更多Import-Module ActiveDirectory
$Users = Get-ADGroupMember -identity “Accounting” -recursive | select name
foreach ($user in $Users) {Get-ADUser -filter {Name -eq $user.Name}}
即便如此,也不仅仅是需要。它是多余的,因为Get-ADGroupMember
已经返回了你需要的类似对象。你需要对这些数据做什么?如果你确实需要Get-AdUser
,那么只需将输出传递给它。
Get-ADGroupMember -identity “Accounting” -recursive | Get-Aduser
答案 1 :(得分:0)
$user
是CSV文件中的一行。你需要解决该行的Name
字段(你也有太多的单引号和双引号)。
foreach ($user in $csv) {Get-ADUser -filter "Name -eq '$($user.name)'"}
或者您可以将CSV文件设为名称的香草列表,而不是将其视为CSV:
Get-ADGroupMember -identity “Accounting” -recursive | select -expandproperty name | out-file "c:\group.txt"
$csv = get-content -path "c:\group.txt"
foreach ($user in $csv) {Get-ADUser -filter "Name -eq '$user'"}
但是,如果您仅将该文件用作组搜索和用户查找之间的管道,则可以通过将Get-ADGroupMember
的输出直接汇总到Get-ADUser
来完全跳过该文件。 / p>
Get-ADGroupMember -identity “Accounting” -recursive | Get-ADUser;