我试图找到用户,存储在AD中的'users.csv'中:
Import-Module ActiveDirectory
import-csv "\users.csv" | ForEach-Object {
Get-ADUser -Filter {displayname -eq $_.id}}
但PS说没有找到'id'属性
users.csv内容:
id
MacAskill Danny
Cedric Gracia
e.t.c
答案 0 :(得分:3)
编辑CSV文件并用双引号括起显示名,如下所示
id
"MacAskill Danny"
"Cedric Gracia"
之后,使用像这样的itermediate变量,
Import-Csv .\users.csv | % {
$f = $_.id; # Set the displayname into a temp variable
get-aduser -filter { displayname -eq $f } # Use the temp variable with filter
}
我不知道为什么需要一个intermeidate变量。使用-filter
参数传递和解析变量时会发生一些奇怪的事情。
答案 1 :(得分:1)
# Use Import-csv and Get-ADUser together
# Import csv that contains "sn" column and get all AD users where
# sn matches any of the values imported from csv
Import-Csv C:\temp\1.csv | select sn -ExpandProperty sn | foreach { Get-ADUser -Filter 'sn -eq $_' }
答案 2 :(得分:0)
我知道这是一个老帖子,但它确实让我很烦恼。无法弄清楚如何使用导入的值找到用户,但只需创建一个中间变量,我就可以让我的脚本工作了。我甚至不需要使用任何双引号。
克里斯