簡體   English   中英

Powershell - 從注冊表項轉換十六進制

[英]Powershell - converting hex from the registry key

我從MRU列表中得到以下輸出。 如何將其轉換為字符串或ASCII字符?

'gp“HKCU:\\ Software \\ Microsoft \\ Windows \\ CurrentVersion \\ Explorer \\ ComDlg32 \\ LastVisitedPidlMRU”'

18:{80,0,120,0 ...}
5:{50,0,109,0 ...}

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

給出:

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...}

你可以試試:

[System.Text.Encoding]::Unicode.GetString((gp "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU")."11")

這不是很好,但它可以幫助

您可以使用Carbon PowerShell模塊中的Get-RegistryKeyValue 它會將此鍵值作為數組返回,然后您可以解碼:

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

但看起來注冊表值不僅包含文本。

免責聲明 :我是Carbon模塊的創建者/維護者。

使用來自Hey,腳本專家的 提示 博客你可以做這樣的事情:

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

請注意,值可能包含不可打印的字符,因此僅此一項是不夠的。 您將不得不進行一些額外的清理,例如通過在GetString()調用中附加-replace '[\\x01-\\x1F]'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM