我们正在删除 AD 中的旧计算机帐户,这些帐户的密码已超过 60 天(目前有超过 15,000 个帐户属于此类)。为了获取此列表,我运行了这个简单的 dsquery 语句来生成一个列表:
dsquery 计算机 -stalepwd 60 -limit 100000 > C:\Temp\Servers.txt
我们目前已实施 GPO,要求计算机使用 BitLocker 并将其恢复密钥存储在 AD 中。问题是,在 15,000 多个已过期的计算机帐户中,我无法删除那些在 AD 中具有 BitLocker 以供存档的帐户,因此我需要找到一种方法来精简列表。我想要的最终结果是计算机帐户密码已过期但没有在 AD 中存储 BitLocker 恢复密钥的计算机帐户列表。
有人曾经这样做过吗或者知道从哪里开始寻找可以完成这样的事情?
答案1
前往 Joe Richards 的网站获取“AdFind”http://www.joeware.net并尝试一下这个脚本(显然,要对结果进行抽查,直到你确信它能够可靠地完成你想要的操作)。
@echo off
for /f "usebackq delims=" %%i in (`dsquery computer -stalepwd 60 -limit 100000`) do (
call :do_find %%i
)
goto end
:do_find
rem Search for computer at specified DN without a Bitlocker recovery key.
adfind -b %1 -f "(msFVE-RecoveryPassword=*)" 2>NUL | find "0 Objects returned" >NUL 2>NUL
if errorlevel 1 goto end
rem Echo DNs of computers w/o bitlocker recovery keys
echo %1
:end
该命令应循环遍历具有“陈旧”密码的计算机,检查在发现每台“陈旧”计算机的 DN 处是否存在具有非空属性“msFVE-RecoveryPassword”的对象。如果没有返回任何对象,则目录中不存在恢复密码。
Joe Richards 的工具确实值得表扬。它们让 AD 管理变得轻松多了。