我想通过Powershell获取AD用户帐户,我需要从csv导入名称并检索他们的AD结果。
该列表仅与"显示名称"
一起存储test.csv
name
Peter Chan
John Wu
Tom Wong
PS脚本
$list = Import-Csv '.\test.csv'
foreach ($i in $list) {
Get-ADUser -Filter "Name -eq '$i.name'"
}
错误
Get-ADUser : Error parsing query: 'Name -eq @{name=Peter Chan}.name' Error Message: 'syntax error' at position: '10'.
At line:2 char:1
+ Get-ADUser -Filter "Name -eq $i.name"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Get-ADUser], ADFilterParsingException
+ FullyQualifiedErrorId : Error parsing query: 'Name -eq @{name=Peter Chan}.name' Error Message: 'syntax error' at
position: '10'.,Microsoft.ActiveDirectory.Management.Commands.GetADUser
当我运行Get-ADUser -Filter" Name-like' Peter Chan'" ,我可以得到我想要的结果。它显示它是一个数组类型@ {name = Peter Chan} .name,我需要在代码上更改什么?
答案 0 :(得分:2)
变量在字符串中扩展而不是属性表达式。
改变这个:
Get-ADUser -Filter "Name -eq '$i.Name'"
要
Get-ADUser -Filter "Name -eq '$($i.Name)'"