レジストリからいくつかのエントリを削除するスクリプトがあります。問題は、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の下のディレクトリが出力されますので、お知らせください。
'HKU:'がデフォルトではマウントされていないので、完全なプロバイダパスを提供する必要があります: 'Microsoft.PowerShell.Core \ Registry :: HKEY_USERS \ $ pathHKUClass'等 –
ああ、私の説明。ここで私はディレクトリをマウントするために使用します。 'New-PSDrive -PSProviderレジストリ名-HKCR -Root HKEY_CLASSES_ROOT' – Mob
' HKCR: 'のマウントは' HKU: 'でまだ助けにならない –