【问题标题】:Need assistance with PowerShell Script to clean up computers in AD that meet criteria需要 PowerShell 脚本协助来清理 AD 中符合条件的计算机
【发布时间】:2020-12-03 14:31:57
【问题描述】:

您好,提前感谢您的帮助! 如果满足特定条件,则希望删除 AD 中的计算机(工作站 OU)。

在继续删除之前,我需要确保它们具有共同的规范名称的“LOCATION”部分。如果它们不在我的位置,这可能是调查的理由,我不想删除它们。这是一台 PC 的示例(大写是我更改的字段):

ORGANIZATION.COM/Workstations/BUSINESS UNIT/Desktops/LOCATION/COMPUTER NAME

我目前有以下脚本,可以将它们打印到 .csv 中,这很有帮助,但更进一步,最好将其打印在屏幕上,然后快速查看并继续删除。有什么建议吗??

Get-Content C:\Temp\Powershell\hosts.txt | ForEach-Object {
  Get-ADComputer $_ -Properties Name,CanonicalName |Select-Object Name,CanonicalName
} -ErrorAction Ignore | Export-Csv C:\Temp\Powershell\Output.csv

甚至第二行代码我都可以使用 output.csv,但不知道从哪里开始......

再次感谢!

【问题讨论】:

  • 这个脚本可以实现我想要达到的效果... Get-Content ComputersToDelete.txt | % { Get-ADComputer -Filter { 名称 -eq $_ } } |删除-ADComputer -WhatIf ................................... ......我可以使用 -WhatIf 命令查看,然后在查看后继续进行
  • 在没有“WhatIf”的情况下运行上述命令时出现此错误:................................ ..................................................... ................................ Remove-ADComputer : 目录服务可以执行请求的操作仅在叶对象上 At line:1 char:91 + ... xt | % { Get-ADComputer -Filter { 名称 -eq $_ } } |删除-ADComputer

标签: powershell scripting active-directory


【解决方案1】:

添加了 -Recursive,它似乎按预期工作。

【讨论】:

  • 您原始问题中的所有命令都没有-Recursive 参数,那么您到底添加了什么?如果您在答案中发布完整的脚本/解决方案,可能对未来的读者有用:)
猜你喜欢
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 2021-06-24
  • 2016-11-17
  • 2017-12-15
相关资源
最近更新 更多