【发布时间】:2015-03-23 00:32:57
【问题描述】:
如果在 csv 文件中找到电子邮件地址,我正在尝试从 csv 文件中读取信息,并使用它将电话号码添加到我们的活动目录中。 (我知道 EmailAddress 属性是不可靠的,但我必须根据数据的导出位置来处理它)。我有一个 powershell 脚本:
Import-Module ActiveDirectory
$csv = Import-Csv c:\users\user1\Desktop\userphones2.csv
foreach ($line in $csv) {
Get-ADUser -Filter {EmailAddress -eq $line.email} |
Set-ADUser -OfficePhone $line.phone
}
当我运行它时,对于数据文件中的每条记录,我都会收到一个错误
Get-ADUser:在类型对象中找不到属性“电子邮件”:“System.Management.Automation.PSCustomObject”
CSV 文件的结构如下:
#TYPE System.Data.DataRow
"email","phone"
"user@example.com","8885555555"
"user2@example.com","8885555552"
如果我在 foreach 循环中执行写入输出而不是尝试获取数据,则此方法有效。我发现许多不同的语法描述了如何为这些过滤器将变量放在这样的行中,但没有任何效果。如何让这个过滤器工作?
【问题讨论】:
-
CSV 似乎没有字段
email。请提供示例输入数据。 -
确实如此。写输出使用相同的变量。我已经包含了前几行。
标签: powershell csv active-directory