windows - Powershell - Remove-ItemProperty: Kan ikke finde sti, fordi den ikke findes

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et script, der fjerner nogle poster fra registreringsdatabasen. Det problem, jeg har, er en sti, jeg giver Remove-ItemProperty cmdlet, bliver ikke genkendt.


Her er hvor jeg får pathSID og hvor jeg definerer pathHKUClass:


#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"


Det er her, hvor jeg bruger cmdlet Remove-ItemProperty med stienHKUClass:


Remove-ItemProperty -Path "HKU:$($pathHKUClass)SOFTWAREClassesLocal SettingsSoftwareMicrosoftWindowsShellMuiCache" -Name "$strSW*" -WhatIf


Fejlmeddelelsen jeg får siger:



  Fjern-ItemProperty: Kan ikke finde sti 'HKU: \ S-1-5-21-326852099-1603424837-312552118-1388315\_Classes \ SOFTWARE \ Classes \ Lokale indstillinger \ Software \ Microsoft \ Windows \ Shell \ MuiCache' fordi den ikke findes.



Bemærk også: $ strSW trækker i en filsti, som jeg bruger i andre dele af scriptet:


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


Hvis nogen har nogen ideer, hvorfor min $ pathHKUClass-variabel ikke virker i denne vej, men hvis du kører den variabel i den hurtige output, udgiver biblioteket under HKU, så lad mig vide.

Bedste reference


Problemet var en fejl i min ende. Jeg gennemgik stien i registreringsdatabasen ...


Dette er den vej jeg forsøgte at bruge:


"HKU:$($pathHKUClass)SOFTWAREClassesLocal SettingsSoftwareMicrosoftWindowsShellMuiCache"


Dette er den rigtige vej, jeg skal bruge:


"HKU:$($pathHKUClass)Local SettingsSoftwareMicrosoftWindowsShellMuiCache"


Lektion lært i korrekturlæsning min egen kode.