zoukankan      html  css  js  c++  java
  • 使用PowerShell读、写、删除注册表键值

    访问注册表键值

    在PowerShell中,用户可以通过类似于HKCU:(作为HKEY_CURRENT_USER)和HKLM:(代表HKEY_LOCAL_MATCHINE)的虚拟驱动器访问注册表键值。

    如:Dir Registry::HKEY_LOCAL_MACHINESoftware

    通过这种方式用户可以很容易的复制、粘贴注册表内的键值,用户可以通过下面的命令获取已经注册的文件后缀:

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

    读取注册表键值

    在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

    写入注册表键值

    添加或修改注册表键值在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:SoftwareTestABC myValue Hello 
       Set-RegistryValue HKCU:SoftwareTestABC myValue 12 Dword 
       Set-RegistryValue HKCU:SoftwareTestABC 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 
    }

    -------------powershell注册表相关命令(可能不全)------------------
    这些个命令的具体用法,请看手册
    get-childitem 即dir
    new-item              新建(注册表)目录项
    remove-item           删除目录项
    rename-item           改名目录项
    copy-item                复制目录树
    move-item             移动目录树

    New-ItemProperty                        新建某键,并赋值。即新建键值对
    remove-itemproperty                        删除注册表 某键值对
    Copy-ItemProperty                        把键和值,从某注册表路径复制到另一个。
    Move-ItemProperty                        移动键的位置,键值不变
    Rename-ItemProperty                           更改键名,键值不变
    Clear-ItemProperty                        清空某键的值,但键名不变

    Get-ItemProperty                            注册表键值  -> powershell变量值 ,即读取
    set-itemproperty                            powershell变量值 -> 注册表键值  ,即写入


    值的类型:
    String=字符串
    MultiString=多字符串
    ExpandString=可扩充字符串
    Binary=二进制值 
    DWord=32位值
    QWord=64位值


    get-acl 显示注册表某目录的安全描述符
    set-acl 更改注册表项的安全描述符。
    注意:此二条命令只对,注册表目录有效。无法在注册表的键和值上设置权限。


    -------------------------例子-------------------------
    目的:
    列表HKEY_CURRENT_USER
    cd    hkcu: 回车
    dir    回车

    目的:
    建立一个键名为powershella,值为powershellb的键值对。类型为string
    New-ItemProperty -path hkcu: -name powershella -value powershellb -PropertyType string

    目的:
    建立一个键名为powershellc,值为【空】的键。类型为string
    New-ItemProperty -path hkcu: -name powershellc -value  "" -PropertyType string

    目的:
    读取powershella的值,进入变量$mmmm
    $mmmm = (Get-ItemProperty -path hkcu: -name powershella).powershella

    目的:
    把注册表 hkcu:powershella 的值,设置成变量$nnnn的值
    $nnnn = "chuanjiaoshi"
    set-ItemProperty -path hkcu: -name powershella -value $nnnn

    目的:
    获取hkcu:software目录的权限
    get-acl hkcu:software

  • 相关阅读:
    python3 logging模块
    第二周作业购物车程序
    第一周作业-三级菜单
    第一周作业-模拟登陆
    python元组与购物车程序
    python之路-day1-while循环
    centos安装phpmyadmin
    第196天:js---调用函数的五种方式
    第195天:js---函数对象详解(call、apply)
    第194天:js---函数对象详解(arguments、length)
  • 原文地址:https://www.cnblogs.com/edward2013/p/3485586.html
Copyright © 2011-2022 走看看