Powershell 将文本附加到 Active Directory 中的对象描述

Powershell 将文本附加到 Active Directory 中的对象描述

我如何在 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"

相关内容