2017-01-17 1 views
0

레지스트리에서 일부 항목을 제거하는 스크립트가 있습니다.이 문제는 Remove-ItemProperty cmdlet가 인식되지 않는 것으로 나타납니다. 여기Powershell - Remove-ItemProperty : 경로가 존재하지 않기 때문에 찾을 수 없습니다.

은 내가 pathSID를 얻을 어디에 내가 pathHKUClass 정의 여기서

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

내가 오류 메시지 : 나는 pathHKUClass으로 제거-ItemProperty를 cmdlet을 사용하여 위치를

#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를 : 경로 'HKU를 찾을 수 없습니다 : \는 S-1-5-21-326852099-1603424837-312552118-1388315_Classe s \ SOFTWARE \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ MuiCache '가 존재하지 않으므로이 파일을 사용하십시오.

또한주의 : 사람이 어떤 아이디어가있는 경우

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

내 $의 pathHKUClass 변수에서 작동하지 않는 이유 : $ strSW 내가 스크립트의 다른 부분에서 사용하는 파일 경로에 당기고 이 경로는 프롬프트에서 변수를 실행하면 HKU 아래에 디렉토리가 출력됩니다. 알려 주시기 바랍니다.

+0

'HKU :'는 기본적으로 마운트되어 있지 않으므로 전체 프로 바이더 경로 인'Microsoft.PowerShell.Core \ Registry :: HKEY_USERS \ $ pathHKUClass' 등을 제공해야합니다. –

+0

아, 그걸 잊어 버렸습니다. 내 설명. 다음은 디렉토리를 마운트하는 방법입니다. 'New-PSDrive -PSProvider Registry -Name 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" 

레슨을 나는 레지스트리의 경로 ...

이 내가 사용하려고 한 경로는 검토 내 자신의 코드를 교정하는 법을 배웠습니다.

관련 문제