Powershell:如何将字节字符串与二进制注册表值进行比较

Ada*_*ram 1 registry powershell

我有一个二进制注册表值,我想检查 Powershell 脚本中的一致性。我正在通过以下方式检索价值:

(Get-ItemProperty -Path HKLM:\Software\ORL\WinVNC3 -Name ACL).ACL
Run Code Online (Sandbox Code Playgroud)

这将返回一个字节字符串作为结果。

然后,我创建了一个字节字符串变量,该变量与我所期望的相匹配,然后通过 regedit.exe 导出注册表项来查询该值。然后,我通过在由逗号分隔的每个字节前面加上“0x”并键入 [byte] 来从该文本创建一个字节字符串。当我只观察两个字符串时,它们完全相同。但是,当我:

$RegistryValue -eq $CreatedValue
Run Code Online (Sandbox Code Playgroud)

他们不返回 True。我究竟做错了什么?

gen*_*sys 5

尝试使用 compare-object cmdlet。

Compare-Object $RegistryValue $CreatedValue
Run Code Online (Sandbox Code Playgroud)

如果它们相等,您应该会==在结果表中看到运算符。