使用PowerShell修改注册表
下面的例子里,PowerShell修改了注册表键值,完成了Securityloopdisable,和loopbackcheckdisable.
#Securityloopdisablesothatyoucanlookatitonthesamemachine if(($gchn=Get-ItemProperty"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\"-Name"BackConnectionHostNames"-eaSilentlyContinue)-eq$null){ New-ItemProperty"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\"-PropertyTypeMultiString-Value"$url"-Name"BackConnectionHostNames" }else{ Set-ItemProperty"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\"-Name"BackConnectionHostNames"-Value($gchn.BackConnectionHostNames+"$url") } #disableloobbackcheck if((Get-ItemProperty"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\"-Name"DisableLoopbackCheck"-eaSilentlyContinue)-eq$null){ New-ItemProperty"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\"-PropertyTypeDWORD-Value"1"-Name"DisableLoopbackCheck" }
实例给大家了,下面分享一些powershell操作注册表的方法吧
访问注册表键值
在PowerShell中,用户可以通过类似于HKCU:(作为HKEY_CURRENT_USER)和HKLM:(代表HKEY_LOCAL_MATCHINE)的虚拟驱动器访问注册表键值。
如:DirRegistry::HKEY_LOCAL_MACHINE\Software
通过这种方式用户可以很容易的复制、粘贴注册表内的键值,用户可以通过下面的命令获取已经注册的文件后缀:
dirRegistry::HKEY_CLASSES_ROOT\.*-name|Sort-Object
读取注册表键值
在PowerShell中,用户能够以虚拟驱动器的形式来处理注册表的内容
下面的Get-RegidtryValues函数列举存储在一个注册表键值下的所有键值,完整代码如下所示:
functionGet-RegistryValues($key){ (Get-Item$key).GetValueNames() }
Get-RegistryValuesHKLM:\Software\Microsoft\Windows\Currentversion
Get-RegistryValue读取任意注册表键值并返回其内容,完整代码如下所示:
functionGet-RegistryValue($key,$value){ (Get-ItemProperty$key$value).$value } Get-RegistryValue'HKLM:\Software\Microsoft\Windows\Currentversion'`
SM_GamesName
写入注册表键值
添加或修改注册表键值在PowerShell中也是很方便的就可以完成的,下面创建名为Set-RegistryValue函数用来操作注册表键值,以下是完整的代码:
functionSet-RegistryValue($key,$name,$value,$type="String"){ if((Test-Path$key)-eq$false){md$key|Out-Null} Set-ItemProperty$key$name$value-type$type } Set-RegistryValueHKCU:\Software\TestABCmyValueHello Set-RegistryValueHKCU:\Software\TestABCmyValue12Dword Set-RegistryValueHKCU:\Software\TestABCmyValue` ([Byte[]][Char[]]"Hello")Binary
移除注册表键值
通过Remove-Item删除目标注册表键,函数Remove-RegistryKey的完整代码如下所示:
functionRemove-RegistryKey($key){ Remove-Item$key-Force }
通过Remove-ItemProperty函数删除注册表值,完整的代码如下所示:
functionRemove-RegistryValue($key,$value){ Remove-ItemProperty$key$value }