我在 Active Directory 中有一个查询,该查询应根据此脚本返回所有未激活 bitlocker 的计算机:
https://community.spiceworks.com/topic/1083065-bitlocker-status-on-all-computers
脚本运行良好,因此值就在那里。
但我的查询没有返回任何内容。它看起来像这样:
(&(&(objectCategory=computer)(objectClass=msFVE-RecoveryInformation)(!(msFVE-RecoveryPassword=*))))
我想退回没有活动 bitlocker 的计算机。
有人可以指出我可能犯错的正确方向吗,我仍然在学习 ldap 查询。
//编辑
所以我发现 msFVE-RecoveryInformation 本身就是对象,当我这样做时:
(&(&(objectClass=msFVE-RecoveryInformation)(msFVE-RecoveryPassword=*)))
它使用恢复密钥过滤对象,但计算机名称在属性“distinguishedName”中编码,如下所示:
CN=2020-02-10T16:32:51\+01:00{4C74584A-BF6C-4AFA-9E46-582DDFC207A6},CN=NAMEOFNTB,OU=computers,OU=blabla,DC=test,DC=local
不知何故我可以只过滤具有此属性的计算机?
答案1
您需要读取每个 msFVE-RecoveryInformation 对象中的 msDS-ParentDistName 属性,然后查询这些可分辨名称以获取计算机对象。
此外,这不是一个好的衡量方法,因为:
- 系统可能已重新映像。
- 加密可能会被关闭或无限期暂停。
- 系统可能已加密,但恢复密码/密钥未备份到 Active Directory。
- 恢复密码/密钥可能已重新生成/替换但未备份到 Active Directory。
- 某些驱动器可能已加密,但其他驱动器则未加密。
- 它不提供任何有关所用保护器的信息。例如,如果仅使用 TPM 保护器而没有 PIN。