耐克授权经销商 發表於 2015-9-14 11:10:27

使用PowerShell修改注册表

<p>下面的例子里, PowerShell修改了注册表键值, 完成了Security loop disable, 和loopbackcheck disable.</p>
<p><div class="codetitle"><span><a data="54819" class="copybut" id="copybut54819"><U>复制代码</U></a></span> 代码如下:</div><div class="codebody" id="code54819"><br />
#Security loop disable so that you can look at it on the same machine<br />
if(($gchn = Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -Name "BackConnectionHostNames" -ea SilentlyContinue) -eq $null){<br />
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -PropertyType MultiString -Value "$url" -Name "BackConnectionHostNames"<br />
}else{<br />
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -Name "BackConnectionHostNames" -Value ($gchn.BackConnectionHostNames+" $url")<br />
}<br />
&nbsp;<br />
#disable loobback check<br />
if((Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\" -Name "DisableLoopbackCheck" -ea SilentlyContinue) -eq $null){<br />
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\" -PropertyType DWORD -Value "1" -Name "DisableLoopbackCheck"<br />
}<br />
</div></p>
<p>实例给大家了,下面分享一些powershell操作注册表的方法吧</p>
<p><strong>访问注册表键值</strong><br />
</p>
<p>在PowerShell中,用户可以通过类似于HKCU:(作为HKEY_CURRENT_USER)和HKLM:(代表HKEY_LOCAL_MATCHINE)的虚拟驱动器访问注册表键值。<br />
如:Dir Registry::HKEY_LOCAL_MACHINE\Software<br />
通过这种方式用户可以很容易的复制、粘贴注册表内的键值,用户可以通过下面的命令获取已经注册的文件后缀:<br />
dir Registry::HKEY_CLASSES_ROOT\.* -name | Sort-Object<br />
</p>
<p><strong>读取注册表键值</strong><br />
</p>
<p>在PowerShell中,用户能够以虚拟驱动器的形式来处理注册表的内容<br />
下面的Get-RegidtryValues函数列举存储在一个注册表键值下的所有键值,完整代码如下所示:<br />
</p>
<div class="jb51code">
<pre class="brush:ps;">

function Get-RegistryValues($key) {
         (Get-Item $key).GetValueNames()
}
</pre>
</div>
<p>Get-RegistryValues HKLM:\Software\Microsoft\Windows\Currentversion<br />
</p>
<p>Get-RegistryValue读取任意注册表键值并返回其内容,完整代码如下所示:<br />
</p>
<div class="jb51code">
<pre class="brush:ps;">
function Get-RegistryValue($key, $value) {
         (Get-ItemProperty $key $value).$value
}
Get-RegistryValue ' HKLM:\Software\Microsoft\Windows\Currentversion' ` </pre>
</div>
<p><br />
SM_GamesName</p>
<p><strong>写入注册表键值</strong><br />
</p>
<p>添加或修改注册表键值在PowerShell中也是很方便的就可以完成的,下面创建名为Set-RegistryValue函数用来操作注册表键值,以下是完整的代码:<br />
</p>
<div class="jb51code">
<pre class="brush:ps;">
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 `
(]]"Hello") Binary
</pre>
</div>
<p><strong>移除注册表键值</strong><br />
</p>
<p>通过Remove-Item删除目标注册表键,函数Remove-RegistryKey的完整代码如下所示:<br />
</p>
<div class="jb51code">
<pre class="brush:ps;">
function Remove-RegistryKey($key) {
Remove-Item $key -Force
}
</pre>
</div>
<p>通过Remove-ItemProperty函数删除注册表值,完整的代码如下所示:<br />
</p>
<div class="jb51code">
<pre class="brush:ps;">
function Remove-RegistryValue($key, $value) {
Remove-ItemProperty $key $value
}
</pre>
</div>
<p></p>
頁: [1]
查看完整版本: 使用PowerShell修改注册表