gpt4 book ai didi

powershell - 如何使用Powershell将字符串编码为REG_BINARY

转载 作者:行者123 更新时间:2023-12-03 00:19:34 26 4
gpt4 key购买 nike

我正在尝试使用Powershell将值写入REG_BINARY。如果提供数据,我可以写入REG_BINARY,但是我需要能够对我要在文件中写入的内容进行编码,以便可以使用系统和日期变量。下面是我的代码和错误。

如果取消注释第一个$ data,它将起作用。

function Convert-ToCHexString 
{
param ([String] $str)
$ans = ''
[System.Text.Encoding]::ASCII.GetBytes($str) | % { $ans += "0x{0:x2}," -f $_ }
return $ans.Trim(' ',',')
}

$Folder = Convert-ToCHexString Z:\
$Username = Convert-ToCHexString $env:USERNAME
$Filename = Convert-ToCHexString \archive.pst

$key = "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\0a0d020000000000c000000000000046"

#$data = 0x5a,0x3a,0x5c,0x61,0x72,0x63,0x68,0x69,0x76,0x65,0x2e,0x70,0x73,0x74
$data = $Folder + "," + $Username + "," + $Filename + ",0x00,0x00,0x00"

Set-ItemProperty -path $key -name "001f0324" -value ([byte[]]($data))

以下是我得到的错误:

无法转换值“0x5a,0x3a,0x5c,0x6a,0x62,0x79,0x65,0x72,0x73,0x5c,0x61,0x72,0x63,0x68,0x69,0x76,0x65,0x2e,0x70,0x73,0x74,0x00 0x00”以键入“System.Byte []”。错误:“无法转换值” 0x5a,0x3a,0x5c,0x6a,0x62、0x79、0x65、0x72、0x73、0x5c,0x61,0x72、0x63、0x68、0x69、0x76、0x65、0x2e,0x70、0x73、0x73、0x74 “,0x00,0x00”键入“System.Byte”。错误:“其他不可分析的字符在字符串的末尾。”“

最佳答案

如果该属性需要一个字节数组,请使用[Text.Encoding]::Unicode.GetBytes($data)。不确定末尾的0x00,0x00,0x00是什么情况,但是如果需要,只需在字节数组的末尾附加三个0,然后再将其传递给Set-ItemProperty。

关于powershell - 如何使用Powershell将字符串编码为REG_BINARY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18092544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com