【发布时间】:2015-08-18 21:38:13
【问题描述】:
我有以下脚本 - 除了部门编号外,它可以工作。有什么想法吗?
# Import AD Module
Import-Module ActiveDirectory
# Import CSV into variable $users
$users = Import-Csv -Path C:\users.csv
# Loop through CSV file and update users if they exist
foreach ($user in $users) {
Get-ADUser -Filter "SamAccountName -eq '$($user.samaccountname)'" - Properties * |
Set-ADUser -EmailAddress $($user.EmailAddress) -Title $($user.Title) -Office $($user.Office) -OfficePhone $($user.OfficePhone) -departmentNumber $($user.departmentNumber) }
编辑:
我使用“-Add”运算符尝试了以下操作:
Import-Module ActiveDirectory
$users = Import-Csv -Path C:\users.csv
foreach ($user in $users) {
Get-ADUser -Filter "SamAccountName -eq '$($user.samaccountname)'" -Properties * |
Set-ADUser -Add @{departmentNumber = "$($user.departmentNumber)"}
}
以下,使用“-Replace”运算符:
Import-Module ActiveDirectory
$users = Import-Csv -Path C:\users.csv
foreach ($user in $users) {
Get-ADUser -Filter "SamAccountName -eq '$($user.samaccountname)'" -Properties * |
Set-ADUser -Replace @{departmentNumber = "$($user.departmentNumber)"}
}
还是没有运气——我的语法是不是搞错了?
【问题讨论】:
-
如果我们能看到 CSV 内容会很有帮助。如果您没有收到错误消息,则可能是
$user.departNumber的值是$null或类似地不是您所期望的。 -
我正在使用测试 CSV,其中一条记录使用上面 Set 子句中列出的相同列,并且每个字段都有一个要输入的值。
标签: powershell active-directory