如何在AD中“计算机对象”的“描述”字段中找到特定的字符串?

时间:2019-02-13 22:56:05

标签: powershell automation active-directory

当前,Active Directory中正在使用计算机对象的描述字段,其中包含用户名,计算机类型和启用日期。我有一个Powershell脚本来标识既有30天又有44天的计算机对象,并在描述中附加了标签“超过30天”和“超过44天”。每次运行脚本时,我都要检查是否已将标签附加到满足30天和44天非活动条件的对象上。如何在Description属性中搜索已经附加到标签的标签...因此我设置的无效标签在脚本每次运行时都不会应用?

当前,这是我为30天以上的“不活动”添加不活动标签的方法:

Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties Description | ForEach-Object {Set-ADComputer $_ -Description "$($_.Description) More than 30 Days Old" }

我希望能够在尝试再次添加之前检查标签是否已经存在。

1 个答案:

答案 0 :(得分:0)

这将获得没有附加标签的计算机:

$descriptionFilter = "*More than*days old*"
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time -and description -notlike $descriptionFilter} -Properties Description | ForEach-Object {Set-ADComputer $_ -Description "$($_.Description) More than 30 Days Old" }

如果您想事先检查而不进行任何更改,则只需运行:

$descriptionFilter = "*More than*days old*"
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time -and description -notlike $descriptionFilter} -Properties Description 

descriptionFilter字符串的中间星号可以代替3044,但是请确保在数字周围包含空格。如果您确实想查看带有附加标签的计算机,则只需将-notlike更改为-like