使用批处理强制编辑受限制的注册表项

问题描述 投票:0回答:1

我最近一直在摆弄 Windows 回收站,并发现我可以在文件资源管理器中重命名它,所以我尝试使用批处理来执行此操作。我发现 HKEY_CLASSES_ROOT\CLSID{645FF040-5081-101B-9F08-00AA002F954E} 是感兴趣的注册表项,因为它包含大量有关回收站的信息。

但修改其中的任何内容似乎完全不可能,即使使用 PowerShell 或 Nircmd 等其他工具也是如此。 有谁知道我如何使用任何编程语言更改该键内的值?这是我尝试使用的命令:

reg add "HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}" /v "" /t REG_SZ /d "New Name" /f

编辑:我做了更多的实验,显然我必须将密钥的所有权更改为自己,现在我只是弄清楚如何使用批处理来做到这一点。使用编程语言来更改该密钥的所有权似乎更加困难。现在我真的陷入困境了...

powershell batch-file registry nircmd
1个回答
0
投票

您提到的 HKEY_CLASSES_ROOT 键在 HKEY_LOCAL_MACHINE\SOFTWARE\Classes 分支中存在访问限制(只有受信任的安装程序具有完全控制权)。

由于我没有收到评论的反馈,我决定尝试使用

Recycle Bin
注册表分支重命名客户计算机桌面上的 HKEY_CURRENT_USER\Software\ClsID
(Windows 10 Pro)
,(根据我的评论)。

我注意到的第一件事是,对于您解释的任务,您试图修改错误的注册表值,即

(default)
值而不是
LocalizedString
值。

以下是我尝试使用单行批处理文件更改当前登录用户自己的“回收站”的名称,而不是每个人的名称:

@"%SystemRoot%\System32\reg.exe" Add "HKCU\SOFTWARE\Classes\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}" /V "LocalizedString" /T REG_EXPAND_SZ /D "%%UserName%%'s trash" /F 1>NUL

我使用 F5 热键刷新桌面,它的工作效果与预期完全一致。

您会注意到,在我的示例中,我在 REG_EXPAND_SZ 键中使用了环境变量。这样做的好处是可以显示正确的用户名,即使后来更改了。如果您愿意,您可以在其中使用标准文本,但请不要将数据类型更改为 REG_SZ。

© www.soinside.com 2019 - 2024. All rights reserved.