Powershell:import-csv和get-aduser

时间:2013-10-07 05:53:11

标签: powershell active-directory

我试图找到用户,存储在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

3 个答案:

答案 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)

我知道这是一个老帖子,但它确实让我很烦恼。无法弄清楚如何使用导入的值找到用户,但只需创建一个中间变量,我就可以让我的脚本工作了。我甚至不需要使用任何双引号。

克里斯