0

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

ETC

4

3 回答 3

3

编辑 CSV 文件并用双引号将显示名称括起来,如下所示,

id
"MacAskill Danny"
"Cedric Gracia"

之后,像这样使用一个中间变量,

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
}

我不知道为什么需要中间变量。使用参数传递和解析变量时发生了一些奇怪的事情-filter

于 2013-10-07T06:26:58.703 回答
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 $_' }
于 2014-08-14T21:20:42.647 回答
0

我知道这是一篇旧帖子,但它确实为我省去了很多麻烦。无法弄清楚如何使用导入的值找到用户,但只需创建一个中间变量,我就能让我的脚本工作。我什至不需要使用任何双引号。

克里斯

于 2014-12-09T20:52:34.750 回答