当前,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" }
我希望能够在尝试再次添加之前检查标签是否已经存在。
答案 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字符串的中间星号可以代替30
或44
,但是请确保在数字周围包含空格。如果您确实想查看带有附加标签的计算机,则只需将-notlike
更改为-like
。