2016-09-26 18 views
1

私はregのクエリを書くか、単にレジストリキーを検索し、内部のデータに基づいて削除するスクリプトを呼び出そうとしています。データに基づいて照会と削除のキーを登録

キーは次のようになります。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{D642433C-50B0-4F52-9BB7-1D4AF5E99FF8}] 
"somevalue"="somedata" 

CLSIDは完全にランダムですが、値内のデータではありません。

データに基づいて{D642433C-50B0-4F52-9BB7-1D4AF5E99FF8}というキーを削除するようなスクリプトを書くことはできますか?

さまざまなreg/vbs/powershellスクリプトを検索しようとしましたが、解決策に近いものはありませんでした。

ご協力いただければ幸いです。

答えて

1

あなたはGet-ChildItemUninstall下のすべてのサブキーを列挙し、その後somevalue値エントリが所望のデータが含まれているかどうかを確認することができます

$UninstallKeys = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall' 
foreach($Key in $UninstallKeys){ 
    if($Key.GetValue("somevalue") -eq "somedata"){ 
     Remove-Item -Path $Key.PSPath -Force 
    } 
} 
+0

おかげで、動作しますようです。今私は2つの質問があります: 1)私はこのスクリプトを2つのデータ文字列に一致させたいですか? somedata1および/またはsomedata2 2)実行ウィンドウからこのスクリプトを実行するにはどうすればよいですか? powershell.exe/commandのようなもの? – TwinHeadedEagle

関連する問題