我正在尝试编写一个脚本来更改整个注册表中所有键和子键中名为“Value”的字符串的值,并将其设置为 0。因此,每当找到字符串“Value”时,它的值都必须更改为“0” ”。 我来到以下内容,但我得到的只是错误。
$Registry = "Microsoft.PowerShell.Core\Registry::*"
Get-ChildItem -path $Registry -recurse -name 'Value'
Set-ItemProperty -path $Registry -name 'Value' "0"
我仍在尝试找出一些 powershell 命令。 如果有人可以帮助我,我将非常感激。
使用以下内容:
警告:如上所述,盲目更新整个注册表项子树中的注册表值而不验证此类更新是否适合每个注册表项是有问题的。
-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
仅输出(相对)匹配项目的路径,作为字符串,而不是通常的代表提供者项目的对象。
如果您希望一个命令作用于另一个命令的输出,则需要通过
|
、管道运算符连接它们,如顶部所示。