PowerShell读、写、删除注册表键值的例子

发布时间:2019-10-13编辑:脚本学堂
分享一些PowerShell读、写、删除注册表的键值的例子,有需要的朋友参考下吧。

1,访问注册表键值
在Powershell中,用户可以通过类似于HKCU:(作为HKEY_CURRENT_USER)和HKLM:(代表HKEY_LOCAL_MATCHINE)的虚拟驱动器访问注册表键值。
如:Dir Registry::HKEY_LOCAL_MACHINESoftware
通过这种方式用户可以很容易的复制、粘贴注册表内的键值,用户可以通过下面的命令获取已经注册的文件后缀:
dir Registry::HKEY_CLASSES_ROOT.* -name | Sort-Object

2,读取注册表键值
powershell中,用户能够以虚拟驱动器的形式来处理注册表的内容
Get-RegidtryValues函数列举存储在一个注册表键值下的所有键值,例如:
 

复制代码 代码示例:

function Get-RegistryValues($key) {
                 (Get-Item $key).GetValueNames()
}

Get-RegistryValues HKLM:SoftwareMicrosoftWindowsCurrentversion
Get-RegistryValue读取任意注册表键值并返回其内容,例如:
function Get-RegistryValue($key, $value) {
                  (Get-ItemProperty $key $value).$value
}
Get-RegistryValue ' HKLM:SoftwareMicrosoftWindowsCurrentversion' `
SM_GamesName

3,写入注册表键值
添加或修改注册表键值,创建名为Set-RegistryValue函数用来操作注册表键值。
例如:
 

复制代码 代码示例:
function Set-RegistryValue($key, $name, $value, $type="String") {
  if ((Test-Path $key) -eq $false) { md $key | Out-Null }
       Set-ItemProperty $key $name $value -type $type
  }
   Set-RegistryValue HKCU:SoftwareTestABC myValue Hello
   Set-RegistryValue HKCU:SoftwareTestABC myValue 12 Dword
   Set-RegistryValue HKCU:SoftwareTestABC myValue `
([Byte[]][Char[]]"Hello") Binary

4,移除注册表键值
通过Remove-Item删除目标注册表键,函数Remove-RegistryKey。
例子:
 

复制代码 代码示例:
function Remove-RegistryKey($key) {
Remove-Item $key -Force
}

通过Remove-ItemProperty函数删除注册表值。
例子:
 

复制代码 代码示例:
function Remove-RegistryValue($key, $value) {
Remove-ItemProperty $key $value
}