2017-01-17 33 views
0

レジストリからいくつかのエントリを削除するスクリプトがあります。問題は、Remove-ItemPropertyコマンドレットが認識されないパスです。ここでPowershell - Remove-ItemProperty:存在しないためパスが見つかりません

は私がpathSIDを取得している場合、私はpathHKUClass定義する場所:

Remove-ItemProperty -Path "HKU:\$($pathHKUClass)\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" -Name "$strSW*" -WhatIf 

私が取得エラーメッセージ:私はpathHKUClassでは、Remove-ItemPropertyコマンドレットを使用します。ここで、

#Set Variables for SID String 
$objUser = New-Object System.Security.Principal.NTAccount($env:USERNAME) 
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]) 
$pathSID = $strSID.Value 
$pathHKUClass = "$($pathSID)_Classes" 

です言う:

は削除-ItemPropertyを:\ S-1-5-21-326852099-1603424837-312552118-1388315_Classe:パス」HKUを見つけることができません\ SOFTWARE \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ MuiCache 'が存在しないためです。

にも注意してください:$ strSWは、私は、スクリプトの他の部分で使用するファイルのパスに引っ張っている:

#Locating Spiceworks.exe 
$Spiceworks = Get-ChildItem "C:\Users" -Recurse -Filter "Spiceworks.exe" | Select-Object -Property FullName 
$strSW = @() 
$strSW += $Spiceworks.FullName 

誰もが任意のアイデアを持っている場合は、私の$ pathHKUClass変数がで動作しない理由このパスは、プロンプトでその変数を実行すると、HKUの下のディレクトリが出力されますので、お知らせください。

+0

'HKU:'がデフォルトではマウントされていないので、完全なプロバイダパスを提供する必要があります: 'Microsoft.PowerShell.Core \ Registry :: HKEY_USERS \ $ pathHKUClass'等 –

+0

ああ、私の説明。ここで私はディレクトリをマウントするために使用します。 'New-PSDrive -PSProviderレジストリ名-HKCR -Root HKEY_CLASSES_ROOT' – Mob

+0

' HKCR: 'のマウントは' HKU: 'でまだ助けにならない –

答えて

0

問題は私の最後には問題でした。私はこれは私が使用しようとしていたパスです...レジストリに

をパスをレビュー:

"HKU:\$($pathHKUClass)\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" 

これは私が使用する必要があり、実際のパスです:

"HKU:\$($pathHKUClass)\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" 

レッスン私自身のコードを校正することで学んだ。

関連する問題