You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中SHA1哈希变量比较(-eq/-like)失效问题求助

问题描述

尝试比较两个存储SHA1哈希值的变量,一个来自WMI命令,另一个来自证书查询命令,二者显示的哈希值完全相同,但-eq或-like比较均返回False,且两个变量的类型均为String。

所用WMI命令:

(Get-WmiObject -Namespace "root\CIMV2\TerminalServices" -Class Win32_TSGeneralSetting | select SSLCertificateSHA1Hash | Select -first 1).SSLCertificateSHA1Hash

所用证书查询命令:

(Get-ChildItem Cert:\LocalMachine\My -Recurse | `
Where-Object {$_.NotAfter -gt ([datetime]::now).AddDays(36)} | WHERE {$_.Subject -match $HOSTNAME } | Select -first 1).Thumbprint

控制台输出示例:

PS C:\scripts> $THUMBPRINT
381E44961164E60E789FBA00A30A848A8E6DEE9A

PS C:\scripts> $CURRENT_RDP_THUMBPRINT
381E44961164E60E789FBA00A30A848A8E6DEE9A

PS C:\scripts> $CURRENT_RDP_THUMBPRINT -eq $THUMBPRINT
False

变量类型检查:

PS C:\scripts> $CURRENT_RDP_THUMBPRINT.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object


PS C:\scripts> $THUMBPRINT.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object
问题原因

这种现象几乎都是不可见控制字符导致的:

  • WMI返回的SSLCertificateSHA1Hash字符串可能带有隐藏的空字符(\0)、换行符或其他非打印字符
  • 两个字符串表面显示相同,但实际包含不同的不可见字符,导致长度不一致或内容不匹配
解决方法
  1. 验证字符串长度
    执行以下命令查看两个字符串的实际长度,确认是否一致:
$CURRENT_RDP_THUMBPRINT.Length
$THUMBPRINT.Length

如果长度不同,说明存在隐藏字符。

  1. 清理非十六进制字符
    使用正则表达式过滤掉所有非十六进制的字符(只保留0-9、A-F、a-f),确保两个字符串只包含哈希值本身:
$CURRENT_RDP_THUMBPRINT_CLEAN = $CURRENT_RDP_THUMBPRINT -replace '[^0-9A-Fa-f]', ''
$THUMBPRINT_CLEAN = $THUMBPRINT -replace '[^0-9A-Fa-f]', ''

之后再比较清理后的变量:

$CURRENT_RDP_THUMBPRINT_CLEAN -eq $THUMBPRINT_CLEAN
  1. 去除前后空白字符
    如果只是前后存在空格或换行,也可以先使用Trim()处理:
$CURRENT_RDP_THUMBPRINT = $CURRENT_RDP_THUMBPRINT.Trim()
$THUMBPRINT = $THUMBPRINT.Trim()

内容的提问来源于stack exchange,提问作者gijs007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:35:34