如何查询注册表的值及 Powershell 应用

利用 c:\windows\system32\reg.exe 的 query 参数即可。

reg.exe 的参数如下:

C:\windows\system32> reg.exe /?
REG Operation [Parameter List]
  Operation  [ QUERY   | ADD    | DELETE  | COPY    | SAVE    | LOAD   | UNLOAD  | RESTORE | COMPARE | EXPORT | IMPORT  | FLAGS ]
返回代码: (除了 REG COMPARE)
  0 - 成功
  1 - 失败
要得到有关某个操作的帮助,请键入:
  REG Operation /?
例如:
  REG QUERY /?
  REG ADD /?
  REG DELETE /?
  REG COPY /?
  REG SAVE /?
  REG RESTORE /?
  REG LOAD /?
  REG UNLOAD /?
  REG COMPARE /?
  REG EXPORT /?
  REG IMPORT /?
  REG FLAGS /?

C:\windows\system32> reg query /?
REG QUERY KeyName [/v [ValueName] | /ve] [/s] [/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator]
  KeyName  [\\Machine\]FullKey
           Machine - 远程机器名称,省略当前机器的默认值。在远程机器上
                     只有 HKLM 和 HKU 可用。
           FullKey - 以 ROOTKEY\SubKey 名称形式
                ROOTKEY - [ HKLM | HKCU | HKCR | HKU | HKCC ]
                SubKey  - 在选择的 ROOTKEY 下的注册表项的全名
  /v       具体的注册表项值的查询。
           如果省略,会查询该项的所有值。
           只有与 /f 开关一起指定的情况下,此开关的参数才是可选的。它指定
           只在值名称中搜索。
  /ve      查询默认值或空值名称(默认)。
  /s       循环查询所有子项和值(如 dir /s)。
  /se      为 REG_MULTI_SZ 在数据字符串中指定分隔符(长度只为 1 个字符)。
           默认分隔符为 "\0"。
  /f       指定搜索的数据或模式。
           如果字符串包含空格,请使用双引号。默认为 "*"。
  /k       指定只在项名称中搜索。
  /d       指定只在数据中搜索。
  /c       指定搜索时区分大小写。
           默认搜索为不区分大小写。
  /e       指定只返回完全匹配。
           默认是返回所有匹配。
  /t       指定注册表值数据类型。
           有效的值是:
             REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,
             REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE
           默认为所有类型。
  /z       详细: 显示值名称类型的数字等值。
示例:
  REG QUERY HKLM\Software\Microsoft\ResKit /v Version
    显示注册表值版本的值
  REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s
    显示远程机器 ABC 上的、在注册表项设置下的所有子项和值
  REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se #
    用 "#" 作为分隔符,显示类型为 REG_MULTI_SZ 的所有值名称的所有
    子项和值。
  REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
    以区分大小写的形式显示项、值和数据和数据类型 REG_SZ
    的、在 HKLM 更目录下的、"SYSTEM" 出现的精确次数
  REG QUERY HKCU /f 0F /d /t REG_BINARY
    显示在 HKCU 根目录下、数据类型为 REG_BINARY 的数据的项、值和
    数据的 "0F" 出现的次数。
  REG QUERY HKLM\SOFTWARE /ve
    显示在 HKLM\SOFTWARE 下的项、值和数据(默认)

==================================

看一个 Powershell 应用示例:

<查询当前 IE 版本>  ie.ps1:

$version = c:\windows\system32\reg.exe query "hkey_local_machine\software\microsoft\internet explorer" /v version | select-string "version" | select-string "9.0"
    if ($version)
    {
        info("ie 9 is already installed, skipping ...");
        return;
    }

时间: 2024-08-26 18:14:07

如何查询注册表的值及 Powershell 应用的相关文章

Ubuntu - Dconf 注册表键值修改参考表

gsettings reset org.gnome.desktop.wm.preferences theme默认gnomegsettings set org.gnome.desktop.interface clock-show-date true顶部面板显示日期gsettings set org.gnome.SessionManager logout-prompt 'false'禁止注销重关机启延时gsettings set org.gnome.desktop.interface cursor-

windbg脚本实践2----监控特定注册表键值创建和删除

在Cmxxkey层面下断点,配合bp /t (/p)  命令可以监控指定线程 进程 对指定注册表键值的创建和删除. $$***************************************************************** $$ Script by kms_hhl to monitor regvalue delete set $$ Create Time 2014_11 $$ Execute by $$><D:\BaiduYunTongBu\百度云同步盘\windb

powershell检测注册表键值判断

Powershell一直在学习中,脚本编写能力有限,全凭自己的逻辑思路去写.如果有高手请留言指点. 在工作中碰到一个案例: 需要添加一个注册表项,判断如果有,显示存在.如果没有,添加键值. New-Item -Path C:\tools01 -ItemType directory -ForceGet-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" > C:\tools01

查询、创建、设置注册表键值的示例代码

示例代码将在注册表位置:HKEY_CURRENT_USER\Software\  读写键值 bool LicenseManage::OpenRegKey(HKEY& hRetKey) { if (ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,"Software", &hRetKey)) { return true; } return false; } bool LicenseManage::CreateRegKey(stri

注册表键值明明存在OpenSubKey始终返回null,解决方案

先上代码及实例 RegistryKey rsg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Macromedia\FlashPaper Printer\2\Installation\", false);为什么返回值是NULL L 原因其实是在64位电脑上跑32位程序,以上代码读取为空值,32位电脑读注册表使用OpenSubKey是正确的 解决方法: I will show you how to get connecting string

Qt读取注册表默认值

strReg = QString("HKEY_CLASSES_ROOT\\CLSID\\%1\\InprocServer32").arg(strGUID); QSettings *reg = new QSettings(strReg,QSettings::NativeFormat); strDllPath = reg->value(".",true).toString(); //这里居然是.,MFC里用""就可以了.. delete reg

内核模式下的注册表操作

注册表操作 注册表里的几个概念: 1.       创建关闭注册表项 NTSTATUS    ZwCreateKey(     OUT PHANDLE  KeyHandle,     IN ACCESS_MASK  DesiredAccess, //访问权限,一般为KEY_ALL_ACCLESS     IN POBJECT_ATTRIBUTES  ObjectAttributes,     IN ULONG  TitleIndex, //一般为NULL     IN PUNICODE_STRI

Windows内核函数(3) - 内核模式下的注册表操作

Windows内核函数(3) - 内核模式下的注册表操作 2010-12-13 13:37:16|  分类: 驱动编程 |  标签:status  hkey  ulsize  注册  kdprint  |举报|字号 订阅 注册表里的几个概念: 1.       创建关闭注册表项 NTSTATUS   ZwCreateKey(    OUT PHANDLE  KeyHandle,    IN ACCESS_MASK  DesiredAccess, //访问权限,一般为KEY_ALL_ACCLESS

Windows注册表的学习

什么是注册表 注册表是Windows在Win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息.参数等.直接控制着系统的启动.硬件的装载以及Winodws程序的运行 手册表的功能 记录用户安装在计算机上的软件和每个程序的相关信息,通过他可以控制硬件.软件.用户环境和操作系统界面的数据信息文件. 注册表的结构 快捷键regedit可以打开注册表,查看详细的结构 不同机器注册表结构 win7 ? win10 ? win08 ? 可以看到大部分机器的注册表的根键是差不多的. 简单结构 根