Powershell-Update属性“departmentNumber”

时间:2015-08-18 21:38:13

标签: powershell active-directory

我有以下脚本 - 除了departmentNumber之外它有效。有什么想法吗?

# 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)"}
}

仍然没有运气 - 我的语法搞砸了吗?

2 个答案:

答案 0 :(得分:2)

我正在快速浏览一下Set-ADUser的帮助:https://technet.microsoft.com/en-us/library/ee617215.aspx

我看到-Department的参数,但不是-DepartmentNumber

的参数

在公司的结构中是否可以使用-Department?

对于自定义属性,您应该能够使用-Add参数

-Add @{otherTelephone='555-222-1111', '555-222-3333'; otherMobile='555-222-9999' }

为了使用-Add或-Replace,您需要使用哈希表作为输入而不是字符串。 这是我用来将字符串转换为单个项哈希表的一组快速命令:

$DeptNo = 'test'
$hash = @{}
$hash.Add('DepartmentNumber',$DeptNo)
$hash

$ hash的输出:

Name                           Value
----                           -----
DepartmentNumber               test

我认为你可以使用-Add $ hash来让它做你想做的事。

答案 1 :(得分:0)

这是我的代码,它使它工作:

Set-ADUser -Identity $samName -Add @{'departmentNumber'="$UserDept"}

重要的是要注意,如果没有任何内容,您只能使用-Add 否则使用-Replace

$UserDept是一个数字,但引号使它成为一个字符串 并且该属性必须在其周围加上单引号。