Powershell - Remove-ItemProperty:找不到路径,因为它不存在

时间:2017-01-17 16:11:39

标签: windows powershell registry

我有一个脚本从注册表中删除了一些条目,我遇到的问题是我无法识别#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" cmdlet的路径。

这是我获取pathSID的地方以及我定义pathHKUClass的地方:

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

这是我使用带有pathHKUClass的Remove-ItemProperty cmdlet的地方:

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

我得到的错误信息是:

  

Remove-ItemProperty:找不到路径' HKU:\ S-1-5-21-326852099-1603424837-312552118-1388315_Classes \ SOFTWARE \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ MuiCache&# 39;因为它不存在。

另请注意:$ strSW正在拉入我在脚本其他部分使用的文件路径:

$this

如果有人有任何想法为什么我的$ pathHKUClass变量在这条路径中不起作用,但在提示符中运行该变量会输出HKU下的目录,请告诉我。

1 个答案:

答案 0 :(得分:0)

问题是我的错误。我查看了注册表中的路径......

这是我尝试使用的路径:

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

这是我应该使用的真正路径:

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

在校对我自己的代码时学到的经验教训。