0

我正在尝试检查是否存在 reg 键,如果存在则增加 reg 键。我确认如果我直接输入值,我可以设置注册表值。即输入值3。

$path = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDLLs"
$psv = Get-ItemProperty -path $path
$value = $psv."c:\windows\system32\test.dll"

if(!(Test-Path $value))
    {
    Set-ItemProperty -path $path -name $key -Type DWORD -value $value++
    }
Else
    {
    echo "error 1"
    }
4

2 回答 2

1

$value是一个数字,所以Test-Path $value总是错误的。您要检查哪条路径?文件系统路径 c:\windows\system32\test.dll 还是注册表项路径?如果它是注册表项路径,则您知道它存在,因为您对其执行了 Get-ItemProperty。

于 2012-11-17T00:35:27.053 回答
1

作为管理员,$dllToCheck使用您自己的值进行更改并尝试以下操作:

$regPath = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDLLs"
$dllToCheck = "C:\Program Files (x86)\Hewlett-Packard\Shared\CaslVer.exe"

$exist =  get-itemproperty $regPath -name $dllToCheck -ErrorAction silentlycontinue
if ($exist -ne $null)
{
  $currentValue = $exist.$dllToCheck
  $nextValue = $currentValue + 1
  Set-ItemProperty $regPath -name $dllToCheck -Value $nextValue
}
于 2012-11-17T04:44:05.050 回答