我试图找到用户,存储在 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
我试图找到用户,存储在 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
编辑 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
。
# 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 $_' }
我知道这是一篇旧帖子,但它确实为我省去了很多麻烦。无法弄清楚如何使用导入的值找到用户,但只需创建一个中间变量,我就能让我的脚本工作。我什至不需要使用任何双引号。
克里斯