这会将禁用的计算机帐户打印到屏幕上。我想针对结果运行条件语句,如果结果为真,则将其移动到我的“已禁用”OU。
get-adcomputer -ldapfilter "(&(objectCategory=computer)(objectClass=computer)(useraccountcontrol:1.2.840.113556.1.4.803:=2))"|select Name, enabled
答案1
Get-ADComputer -LDAPFilter "(&(objectCategory=computer)(objectClass=computer)(useraccountcontrol:1.2.840.113556.1.4.803:=2))" | Move-ADObject -TargetPath "OU=disabled,DC=ad,DC=example,DC=net"
注意:这将捕获当前 OU 中的所有计算机。您需要限制搜索范围以过滤掉它们,否则它将重试移动(我不确定它是否会对这些计算机失败,或者只是跳过它们)
清洁工还想让我提一下,您可以-Filter {(DistinguishedName -notlike "OU=disabled,DC=ad,DC=example,DC=net")}
向该 Get-ADComputer 语句中添加一个,以过滤掉已经移动的计算机。
答案2
通过 Active Directory 用户和计算机 GUI 可以轻松完成此操作。您可以查看所有已禁用的计算机,然后选择全部并移动到所需的 OU。
为了实现它,您只需要在 Active Directory 用户和计算机中创建一个已保存的查询,已保存的查询 -> 右键单击 -> 新建 -> 查询 -> 单击定义查询 -> 选择自定义搜索模式 -> 高级 -> 粘贴以下查询。
“(&(objectCategory=计算机)(objectClass=计算机)(useraccountcontrol:1.2.840.113556.1.4.803:=2))”
答案3
不得不分享新的东西。。我知道这是老帖子了,但我今天必须为客户做这件事... :)
Get-ADComputer -Filter {(Enabled -eq $False)} | Move-ADObject -TargetPath "OU=ToBeRemoved,DC=dc,DC=example,DC=com"