Powershell注册表操作小结

摘要:
Powershell可以使用文件操作API来操作注册表。上面的示例演示了如何使用cd指令(Set Location)设置当前注册表路径。您可以使用与文件夹操作相关的API来操作注册表项。新项3由于注册表中的项只有一种类型,因此在使用新项创建文件夹时不需要指定type参数。Mkdir是一个直接创建文件夹的api,对于创建注册表项也是有效的。

Powershell可以使用文件操作API来操作注册表,注册表项就类似于Windows的文件夹。

Powershell注册表操作小结第1张

如下是一个简单的示例:

Powershell注册表操作小结第2张

上述例子就演示了利用cd指令(Set-Location)设置当前的注册表路径, 然后通过dir指令(Get-ChildItem)获取所有的子项。

注册表项API

在Powershell中,注册表项基本上和文件夹是对等的,可以使用文件夹操作相关API来操作注册表项。通常的操作有:

例如,我们可以用New-Item来创建一个注册表项。

New-Item Item3

Powershell注册表操作小结第3张

由于注册表的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默认值的

Powershell注册表操作小结第4张

对于这个值,我么可以用特殊的名称"(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.

参考文章:

免责声明:文章转载自《Powershell注册表操作小结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#实现对数据库的备份还原(完全)IDEA文件查找功能失效(ctrl+shift+N)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql批量更新数据(性能优化) 第一种方式

   首先想到的是,一条一条更新的速度太慢了,然后就想批量更新,一次更新N条数据。实践是检验真理的唯一标准,不一会儿,代码就敲完了,重新试了一下,效果依旧不理想。啊哦,真是要崩溃!后面又想到了利用异步,我一下子开多个mysql连接,同时处理,可是依旧慢的一笔。然后就放弃了,更新的效率肯定是满足不了了。然后就想着绕弯子了,我新建一张表,把旧表数据取出来,处理...

lua中文教程【高级知识】

一、编译和运行和调试 1、lua和其他解释型语言一样,先转换成为中间码再执行 2、dofile和loadfile的区别:loadfile编译返回不执行,返回错误代码;dofile执行,返回错误信息 3、loadstring通常用于程序外部的代码,load表达式,在前边加上“return”,assert方法发出警告信息 4、require方法:加载运行库【可...

基于BindingSource的WinForm开发

1.引言 BindingSource组件是数据源和控件间的一座桥,同时提供了大量的API和Event供我们使用。使用这些API我们可以将Code与各种具体类型数据源进行解耦;使用这些Event我们可以洞察数据的变化。 2.简单绑定 DataTable myTable = myTableAdapter.GetData();//创建Table Binding...

表与表之间建关系(约束)

目录 约束条件default默认值 unique唯一 primary key主键 auto_increment自增 表与表之间建关系 外键 表关系 一对多关系 多对多 一对一 修改表(了解) 复制表(了解) 约束条件 default默认值 # 补充知识点 插入数据的时候可以指定字段 create table t1( id int,...

VC中Spin控件的使用

微调按钮设置成set buddy inter选上 然后可以(1)通过 setbuddy+setrange函数    或(2)auto buddy自动选上,只要编辑框的tab order 比微调按钮小1就可以自动了 (另转)VC中Spin控件的使用 http://leichaofu.blog.163.com/blog/static/459481820098...

SQLServer update语句用法

  UPDATE语句用于创建一个更新查询,根据指定的条件更改指定表中的字段值。UPDATE语句不生成结果集,而且当使用更新查询更新记录之后,不能取消这次操作。 语法:UPDATE table SET newvalue WHERE criteria 说明:table参数指定表的名称,其中包含要更改的数据。 newval...