Powershell注冊表操作小結


Powershell可以使用文件操作API來操作注冊表,注冊表項就類似於Windows的文件夾。

如下是一個簡單的示例:

上述例子就演示了利用cd指令(Set-Location)設置當前的注冊表路徑, 然后通過dir指令(Get-ChildItem)獲取所有的子項。

注冊表項API

在Powershell中,注冊表項基本上和文件夾是對等的,可以使用文件夾操作相關API來操作注冊表項。通常的操作有:

例如,我們可以用New-Item來創建一個注冊表項。

New-Item Item3

由於注冊表的Item只有一個類型,因此無需像用New-Item創建文件夾那樣要指定Type參數。

另外,mkdir這種直接創建文件夾的api對於創建注冊表項也是有效的,非常方便。

注冊表值API

注冊表值並不是對應的文件的,而是ItemProperty。我們可以用ItemPropertyAPI就行注冊表的值操作:

簡單的示例如下:

Set-ItemProperty -Path "." -Name "link" -Type "DWord" -Value 23
Get-ItemPropertyValue -Path "." -Name "link"
Rename-ItemProperty -Path "." -Name "link" -NewName "link2"

我這里用的還是相對比完整的命令行,實際應用中可以簡化一下,例如

Set-ItemProperty "." "link" 23
Rename-ItemProperty "." "link" "link2"

默認值

對於Property的訪問,需要傳入Name作為參數的,但注冊表項是有一個特殊的Name默認值的

對於這個值,我么可以用特殊的名稱"(default)"來訪問它。

Set-ItemProperty -Path "." -Name "(default)" -Type "DWord" -Value 23

對象訪問

在程序中對於值的讀寫的時候,用Object訪問更為方便些。

$a = Get-ItemProperty "."
echo $a.link
$a.link = 256

值類型

在注冊表中,值有不同的類型,我們可以不指定類型,讓它自動識別。

Set-ItemProperty "." "link" "hello"
Set-ItemProperty "." "link" 323

同時,也可以主動指定Type類型:

Set-ItemProperty -Path "." -Name "link" -Type "DWord" -Value 23

注冊表支持如下幾種Type類型:

  • String:         REG_SZ.
  • ExpandString:     REG_EXPAND_SZ.
  • Binary:         REG_BINARY.
  • DWord:             REG_DWORD.
  • MultiString:     REG_MULTI_SZ.
  • Qword:          REG_QWORD.
  • Unknown:         REG_RESOURCE_LIST.

參考文章:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM