未找到 Regedit 项

未找到 Regedit 项

电源外壳:

$paths = @(  "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles\%SystemRoot%/System32/drivers/3ware.sys"
)
    
foreach($path in $paths)
{
    cmd.exe /c "C:\SetACL.exe -on ""$path"" -ot reg -actn setowner -ownr ""n:%username%"" -rec Yes" | Out-Null
    cmd.exe /c "C:\SetACL.exe -on ""$path"" -ot reg -actn ace -ace ""n:%username%;p:full"" -rec Yes" | Out-Null
}

有关 SetACL.exe 文件的信息可以在此处找到。 https://helgeklein.com/setacl/

这是一个键,而不是一个值。

%SystemRoot%/System32/drivers/3ware.sys

有一个百分号和斜线。

有这样一个注册表项,但是由于 <,我得到了这个项未找到错误> 和 </> 我提到的迹象。

我已经搜索并尝试过如何正确地编写它们,但没有成功。

我尝试过的事情:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles\%%SystemRoot%%/System32/drivers/3ware.sys
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles\%%SystemRoot%%//System32//drivers//3ware.sys

答案1

您使用了 cmd.exe,它正在%SystemRoot%将可能扩展回C:\WINDOWS。避免使用 CMD.EXE 并直接从 Powershell 调用 - 您也需要交换%USERNAME%。类似这样的操作,替换 %并双重转义"

$paths = @(  "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles\%SystemRoot%/System32/drivers/3ware.sys"
)

foreach($path in $paths)
{
    C:\SetACL.exe -on "$path" -ot reg -actn setowner -ownr "n:$env:USERNAME" -rec Yes
    C:\SetACL.exe -on "$path" -ot reg -actn ace -ace "n:$env:USERNAME;p:full" -rec Yes
}

请注意,我无法测试上述内容,因此如果没有帮助,我将删除此答案。

相关内容