为什么某些属性需要与Set-Aduser的其他属性不同的修改方法

时间:2015-09-24 18:32:47

标签: powershell active-directory

通常我使用" set-aduser -replace"用于更新Active Directory中的属性的选项,但我发现某些属性需要不同的语法来修改它们,我只是想知道为什么。一个很好的例子是下面的两个属性,Office和physicalDeliveryName,要修改的cmdlet相同,但语法不同。所有属性都不是一样的吗?

$users = gc -Path C:\0NIX\03SCRIPTS\TMP\jkirb\allen.txt            

foreach ($user in $users) {            
    Get-ADUser -Identity $user -Properties * | Select samaccountname, Office, physicalDeliveryOfficeName            
    Set-ADuser $user -Office "Allen"
    Set-ADuser $user -replace @{physicalDeliveryOfficeName="Allen"}
}

1 个答案:

答案 0 :(得分:1)

Set-ADUser帮助Detailed Description的第一句话解释了这一点:

  

Set-ADUser cmdlet可修改Active Directory用户的属性。您可以使用cmdlet参数修改常用属性值。可以使用“添加”,“替换”,“清除”和“删除”参数来修改与cmdlet参数无关的属性值。

因此,它似乎只是微软为公共属性提供了便利性参数。我想你总是可以使用更长的语法(即使是常见的属性)来制作统一的代码(以及更容易的函数包装等)。