使用 powershell 命令查找并更改整个注册表中的多个字符串

问题描述 投票:0回答:1

我正在尝试编写一个脚本来更改整个注册表中所有键和子键中名为“Value”的字符串的值,并将其设置为 0。因此,每当找到字符串“Value”时,它的值都必须更改为“0” ”。 我来到以下内容,但我得到的只是错误。

$Registry = "Microsoft.PowerShell.Core\Registry::*"
Get-ChildItem -path $Registry -recurse -name 'Value'
Set-ItemProperty -path $Registry -name 'Value' "0" 

我仍在尝试找出一些 powershell 命令。 如果有人可以帮助我,我将非常感激。

string powershell find key registry
1个回答
0
投票

使用以下内容:

  • 警告:如上所述,盲目更新整个注册表项子树中的注册表值而不验证此类更新是否适合每个注册表项是有问题的。

  • 作为一项安全措施,下面命令中的

    -WhatIf
    常用参数可以预览操作。删除
    -WhatIf
    并在确定操作将执行您想要的操作后重新执行。

Get-ChildItem -Recurse $yourRegistryPath | 
  Where-Object Property -contains Value | 
  Set-ItemProperty Name Value -Value 0 -WhatIf

至于你尝试过的

  • Get-ChildItem
    -Name
    参数不是filter(您可以向其传递过滤器模式),它是一个switch,告诉
    Get-ChildItem
    仅输出(相对)匹配项目的路径,作为字符串,而不是通常的代表提供者项目的对象

  • 如果您希望一个命令作用于另一个命令的输出,则需要通过

    |
    管道运算符连接它们,如顶部所示。

© www.soinside.com 2019 - 2024. All rights reserved.