我有一个二进制注册表值,我想检查Powershell脚本中的一致性。我通过以下方式获取值:
(Get-ItemProperty -Path HKLM:\Software\ORL\WinVNC3 -Name ACL).ACL
结果返回一个字节字符串。
然后,我创建一个与期望值匹配的字节字符串变量,然后通过regedit.exe导出注册表项来查询此值。然后,通过在每个用逗号分隔的字节前面加“ 0x”,然后键入一个[byte],从该文本创建一个字节字符串。当我只盯着两个弦时,它们是完全相同的。但是,当我:
$RegistryValue -eq $CreatedValue
他们不会返回True。我究竟做错了什么?
我终于通过结合我自己的一些不同方法和Compare-Object cmdlet来解决了这个问题。谢谢,达拉斯。
$ ValueItsSupposedToBe =(获取项属性-路径HKLM:\ Software \ ORL \ WinVNC3-名称ACL).ACL
创建一个逗号分隔的值字符串,并将此字符串插入到比较脚本中。
在比较脚本中,分割字符串并将其转换为字节数组。
[byte []] $ ValueItsSupposedToBe = $ ValueItsSupposedToBe.Split(',')
$ CompareValue =(Get-ItemProperty -Path HKLM:\ Software \ ORL \ WinVNC3 -Name ACL).ACL
比较对象$ CompareValue $ ValueItsSupposedTobe
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句