繁体   English   中英

powershell (Get-WmiObject win32_physicalmedia).serialnumber 输出十六进制

[英]powershell (Get-WmiObject win32_physicalmedia).serialnumber output hex

当我使用(Get-WmiObject win32_physicalmedia).serialnumber ,输出是十六进制的。 示例: 31323334353637383930 然后我使用了下面的代码

$pass=""
$t=(Get-WmiObject win32_physicalmedia).serialnumber
$t -split '(.{2})' |%{ if ($_ -ne "") { $pass+=[CHAR]([CONVERT]::toint16("$_",16))  }}
write host $pass

输出为: 1234567890 问题是1234567890不是序列号——真正的序列号是2143658709 我需要一个脚本来将数字$input "1234567890"交换为$output "214365768709"

这假定您的 SN 字符串是偶数个字符,并且实数只是反转字符对。

$InString = '1234567890'

$OutString = ''
foreach ($Index in 0..($InString.Length / 2))
    {
    $CurPos = $Index * 2
    $OutString += $InString[$CurPos + 1] + $InString[$CurPos]
    }

$OutString

输出 = 2143658709

我认为这称为“中端”格式,其中每两个字节颠倒一次:中端

来自此处的帖子: Vista 中的 WMI Win32_PhysicalMedia SMART ID 和 7 权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM