在powershell中将字符串转换为reg二进制文件(utf8数组)

时间:2014-05-14 18:49:24

标签: powershell registry

我试图从文件中导入代理免除列表,然后将这些导入的值写入tge注册表中的两个单独的位置。一个是reg_sz,另一个是reg_binary

reg_binary是个问题。我收到错误,将字符串转换为utf8值。

我正在运行的内容如下:

cls
# $encUnicode = [System.Text.Encoding]::UNICODE
$endUTF8 = [System.Text.Encoding]::UTF8

$B = "H"

$POBS2 = $endUTF8.getstring($b)

write-host $POBS2

这会产生此错误:

Cannot convert argument "bytes", with value: "H", for "GetString" to type
"System.Byte[]": "Cannot convert value "H" to type "System.Byte[]". Error:
"Cannot convert value "H" to type "System.Byte".
Error: "Input string was not in a correct format."""
At C:\Temp\Foo.ps1:10 char:9
+         $POBS2 = $endUTF8.getstring($b)
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvali

1 个答案:

答案 0 :(得分:0)

该getstring()方法期望将字符数组作为输入。

$endUTF8 = [System.Text.Encoding]::UTF8

$B = [char[]]"H"

$POBS2 = $endUTF8.getstring($b)