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

$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 に答える
1

$valueは数値なのでTest-Path $value、常にfalseになります。どのパスを確認しますか?ファイルシステムパスc:\ windows \ system32 \ test.dllまたはレジストリキーパス?それがレジストリキーパスである場合は、Get-ItemPropertyを実行したため、存在することがわかります。

于 2012-11-17T00:35:27.053 に答える