首页 > 解决方案 > 如何使用 PowerShell 在注册表中查找 DWORD 并更改值。DWORD 可能在多个键中,并且事先不知道

问题描述

我是 Powershell 的新手,不知道该怎么做。我至少可以识别我正在寻找的 DWORD。如果我知道位置,我也可以设置一个值。只是不确定如何将搜索和更新两者结合起来。

$path="HKLM:\SYSTEM\CurrentControlSet\Enum\USB\" 
Get-ChildItem $path -Recurse -ErrorAction SilentlyContinue | Get-ItemProperty -name Foundit -ErrorAction SilentlyContinue | Where-Object{$_.Foundit -eq 22}

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Enum\USB\Test\1" -Name Foundit -Value '21'

标签: powershellregistry

解决方案


$DWordName = "MSIP.OutlookAddin"
$Locations = "HKCU:\SOFTWARE\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList"

foreach($location in $locations)

{

try {if((get-itempropertyvalue -path $location -name $DWordName) -eq ""){write-host "Value doesn't exists"}}

catch {New-ItemProperty -Path $Location -Name $DWordName -Value "1" -Type DWord}

if((get-itempropertyvalue -path $location -name $DWordName) -eq "1"){write-host "Value already exists"}

else {Set-ItemProperty -Path $Location -Name $DWordName -Value "1" -Type DWord}

}

推荐阅读