Powershell小技巧之获取注册表值的类型

所属分类: 脚本专栏 / PowerShell 阅读数: 1334
收藏 0 赞 0 分享

当你不需要获取注册表数据类型而只要其值是非常简单的:你可以使用Get-ItemProperty:

复制代码 代码如下:

Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

如果你需要获取数据类型,只需要多几个步骤:

复制代码 代码如下:

$key = Get-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

$key.GetValueNames() |
  ForEach-Object {
    $ValueName = $_

    $rv = 1 | Select-Object -Property Name, Type, Value
    $rv.Name = $ValueName
    $rv.Type = $key.GetValueKind($ValueName)
    $rv.Value = $key.GetValue($ValueName)
    $rv
  }

访问注册表键值

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

复制代码 代码如下:

dir Registry::HKEY_CLASSES_ROOT\.* -name | Sort-Object

读取注册表键值

在PowerShell中,用户能够以虚拟驱动器的形式来处理注册表的内容
下面的Get-RegidtryValues函数列举存储在一个注册表键值下的所有键值,完整代码如下所示:
 

复制代码 代码如下:

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

Get-RegistryValues HKLM:\Software\Microsoft\Windows\Currentversion
Get-RegistryValue读取任意注册表键值并返回其内容,完整代码如下所示:
function Get-RegistryValue($key, $value) {
                  (Get-ItemProperty $key $value).$value
}
Get-RegistryValue ' HKLM:\Software\Microsoft\Windows\Currentversion' `
SM_GamesName

写入注册表键值

添加或修改注册表键值在PowerShell中也是很方便的就可以完成的,下面创建名为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:\Software\TestABC myValue Hello
   Set-RegistryValue HKCU:\Software\TestABC myValue 12 Dword
   Set-RegistryValue HKCU:\Software\TestABC myValue `
([Byte[]][Char[]]"Hello") Binary

移除注册表键值

通过Remove-Item删除目标注册表键,函数Remove-RegistryKey的完整代码如下所示:

复制代码 代码如下:

function Remove-RegistryKey($key) {
Remove-Item $key -Force
}
通过Remove-ItemProperty函数删除注册表值,完整的代码如下所示:
function Remove-RegistryValue($key, $value) {
Remove-ItemProperty $key $value
}

支持所有PS版本

更多精彩内容其他人还在看

PowerShell遍历文件、文件夹的方法

这篇文章主要介绍了PowerShell遍历文件、文件夹的方法,本文使用Get-ChildItem命令实现,需要的朋友可以参考下
收藏 0 赞 0 分享

使用PowerShell操作Windows服务的命令小结

这篇文章主要介绍了使用PowerShell操作Windows服务的命令小结,本文只是做了一个命令列表,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中调用外部程序和进程操作命令例子

这篇文章主要介绍了PowerShell中调用外部程序和进程操作命令例子,给出了进程操作的一些命令和调用外部应用程序的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中正则表达式使用例子

这篇文章主要介绍了PowerShell中正则表达式使用例子,本文用实例来说明如何使用正则匹配到想要的内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell是什么?

这篇文章主要介绍了PowerShell是什么?本文解读了PowerShell的一些术语,对PowerShell做了一个完全介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell直接脚本时出现无法加载文件因为禁止执行脚本

Powershell直接脚本时出现无法加载文件因为在此系统中禁止执行脚本,有关此问题的解决方法如下
收藏 0 赞 0 分享

Tornado中database模块被取消的替代方法

这篇文章主要介绍了Tornado中database模块被取消的替代方法,新的方法是使用torndb模块,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell学习笔记--使用正则表达式查找文件

本文介绍PowerShell中使用正则表达式的查找文件的方法,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便。
收藏 0 赞 0 分享

Windows Powershell 介绍和安装

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。
收藏 0 赞 0 分享

Windows Powershell 自定义控制台

这篇文章主要介绍了Windows Powershell 自定义控制台,包括选项、字体、布局和颜色四个方面的自定义风格,希望对大家有所帮助
收藏 0 赞 0 分享
查看更多