首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell -从注册表项转换十六进制

Powershell -从注册表项转换十六进制
EN

Stack Overflow用户
提问于 2013-07-01 17:22:51
回答 3查看 15.4K关注 0票数 5

我有以下来自MRU列表的输出。如何将其转换为字符串或ASCII字符?

‘'gp "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU"’

18:{80,0,120,0...}

5:{50,0,109,0...}

EN

回答 3

Stack Overflow用户

发布于 2013-07-01 17:50:01

假设gp "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU"

提供:

代码语言:javascript
复制
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32
PSChildName  : LastVisitedPidlMRU
PSDrive      : HKCU
PSProvider   : Microsoft.PowerShell.Core\Registry
MRUListEx    : {14, 0, 0, 0...}
11           : {114, 0, 117, 0...}
9            : {69, 0, 120, 0...}
19           : {83, 0, 107, 0...}
10           : {78, 0, 79, 0...}
17           : {123, 0, 57, 0...}
15           : {115, 0, 108, 0...}
7            : {123, 0, 57, 0...}
4            : {118, 0, 109, 0...}
21           : {109, 0, 115, 0...}
22           : {100, 0, 101, 0...}
24           : {123, 0, 55, 0...}
8            : {123, 0, 69, 0...}
0            : {123, 0, 69, 0...}
5            : {123, 0, 66, 0...}
12           : {83, 0, 110, 0...}
20           : {123, 0, 55, 0...}
23           : {83, 0, 99, 0...}
2            : {65, 0, 99, 0...}
16           : {110, 0, 111, 0...}
1            : {105, 0, 101, 0...}
18           : {75, 0, 105, 0...}
6            : {99, 0, 104, 0...}
13           : {123, 0, 55, 0...}
3            : {123, 0, 54, 0...}
14           : {123, 0, 57, 0...}

您可以尝试:

代码语言:javascript
复制
[System.Text.Encoding]::Unicode.GetString((gp "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU")."11")

这不是很好,但它可以有所帮助

票数 4
EN

Stack Overflow用户

发布于 2013-07-02 05:57:05

您可以使用Carbon PowerShell模块中的Get-RegistryKeyValue。它将以数组的形式返回该键值,然后您可以对其进行解码:

代码语言:javascript
复制
$path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU'
$result = Get-RegistryKeyValue -Path $path -Name 0
[System.Text.Encoding]::Unicode.GetString( $result )

但看起来该注册表值包含的不仅仅是文本。

免责声明:我是Carbon模块的创建者/维护者。

票数 3
EN

Stack Overflow用户

发布于 2013-07-01 18:06:49

使用“嘿,脚本先生”中的this tip!博客你可以这样做:

代码语言:javascript
复制
$key = "HKCU:\Softw...dlMRU"
Get-Item $key | select -Expand property | % {
  $value = (Get-ItemProperty -Path $key -Name $_).$_
  [System.Text.Encoding]::Default.GetString($value)
}

请注意,这些值可能包含不可打印的字符,因此仅包含这些字符是不够的。您必须进行一些额外的清理,例如,通过将-replace '[\x01-\x1F]'附加到GetString()调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17401065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档