我如何在 AD 中附加或添加描述?我想保留当前描述并在其前面添加一些文本
例如,计算机的描述为“会计部门”(不带引号)
我尝试过这个:
set-QADComputer -Identity computername
-Description {Disabled 8/17/2012, Termrpt "$($_.description)"}
我得到这个是为了描述
已禁用 2012 年 8 月 17 日,“$($_.description)”
但我希望原始描述前面加上如下文字
已禁用 2012/8/17,会计部
有任何想法吗?
我尝试使用括号,但它只会添加前置文本,而原始文本则会完全消失。
答案1
我没有使用 QWEST AD cmdlet,所以我不知道确切的语法,但通常最好的方法是检索当前描述,将其保存到变量,然后将 $Current_Desc + $addendum 写回对象。
答案2
我不使用 Qwest 模块。如果您愿意使用 RSAT 附带的 Microsoft AD 模块,则下面的操作非常简单。
Import-Module ActiveDirectory
# Let's check the Description
Get-ADUser jscott -Properties Description |
Select-Object -Property Description
Description
-----------
Junior Keyboard MRO Tech
# Cool, set it the new value
Get-ADUser jscott -Properties Description |
ForEach-Object {
Set-ADUser $_ -Description "Disabled 8/17/2012, Termrpt $($_.Description)"
}
# Let's check the new Description
Get-ADUser jscott -Properties Description |
Select-Object -Property Description
Description
-----------
Disabled 8/17/2012, Termrpt Disabled Junior Keyboard MRO Tech
我认为让您困惑的是将 用作$_
cmdlet 的参数,而不是在脚本块中。我将其包装Set-ADUser
在 中ForEach_Object
,确保$_
是来自管道的对象。在脚本块之外,就像您的情况一样,将其用作$_
参数将返回$null
。
答案3
除了 MDMarra 的回答(抢先了一步)之外,您还可以将字符串变量设置为等于附加的值+=
,因此类似于$Description += "blah"
将“blah”附加到变量值的末尾。
($Description += "blah"
简写$Description = $Description + "blah"
)