如何使用PowerShell脚本检测BitLocker的KeyProtector是否存在TpmPin
代码问题原因
Get-BitLockerVolume返回的是结构化的BitLocker卷对象,不是纯字符串,你直接将整个对象和Tpm字符串做-like匹配,永远不会命中,所以始终返回False。- TpmPin的配置信息存储在卷对象的
KeyProtector属性集合中,你没有读取该属性就直接做匹配,自然无法得到正确结果。
正确实现代码
你需要先读取卷对象的KeyProtector集合,再检查集合中是否存在KeyProtectorType为TpmPin的项:
# 获取C盘的BitLocker配置对象 $bitLockerVolume = Get-BitLockerVolume -MountPoint C # 检查密钥保护器集合中是否存在TpmPin类型 $hasTpmPin = $bitLockerVolume.KeyProtector.KeyProtectorType -contains 'TpmPin' # 输出布尔结果 $hasTpmPin
补充说明
你之前测试的字符串数组-contains示例可以正常运行,是因为你直接匹配的是字符串数组中的元素,BitLocker的场景只要先定位到对应属性的字符串集合,匹配逻辑和你的测试示例完全一致。
内容的提问来源于stack exchange,提问作者Rob Kelley
相关产品推荐
相关产品推荐

