我正在尝试编写一个脚本,检查是否一组注册表项被单独设置,然后根据它们的当前状态设置或修改它们。
我想要检查/设置的键混合包含字符串和DWORD
我想循环遍历一个数组,该数组包含要设置的键和值。
我尝试过作为哈希表/splatting,但是由于value参数,Get-ItemProperty
的输入失败,所以我尝试了基本数组,但没有成功。
它们都在相同的注册表路径中,但我尝试执行类似以下操作:
$Path = "HKLM:\Software\path\to\keys"
$Properties = (
('key', value),
('key2', value2),
('key3', 'value3')
)
foreach ($item in $Properties){
$exist = Get-ItemProperty -Path $Path -name $item[0]
if ($exist) {
Set-ItemProperty -Path $Path -Name $item[0] -Value $item[1]
} else {
New-ItemProperty -Path $Path -Name $item[0] -Value $item[1]
}
}
但是无论我怎么尝试,我都无法检索内部数组的单个元素。
我意识到我可能会做这个长格式,只是一行一行地做,而不是试图迭代,但这绝对是一个更优雅的方式,如果我将来需要做类似的事情,这将是一个很好的模板。
1条答案
按热度按时间2izufjch1#
天哪,没有什么能比在网上论坛上提出问题更能让你打破常规了。
我需要的是
.GetValue()
方法,而不是原始索引号......所以$Item.GetValue(0)
是键名,$Item.GetValue(1)
是值。回答我自己的问题很傻,但希望它能帮助别人!