我有一个脚本从注册表中删除了一些条目,我遇到的问题是我无法识别#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下的目录,请告诉我。
答案 0 :(得分:0)
问题是我的错误。我查看了注册表中的路径......
这是我尝试使用的路径:
"HKU:\$($pathHKUClass)\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache"
这是我应该使用的真正路径:
"HKU:\$($pathHKUClass)\Local Settings\Software\Microsoft\Windows\Shell\MuiCache"
在校对我自己的代码时学到的经验教训。