阻止注册表项以防止使用命令行意外或有意地重写或删除

Bri*_*anC 8 windows windows-registry windows-7 powershell command-line

我在超级用户中看到了这个帖子,我有一个类似的案例,但差别很小。

我创建了一个注册密钥。

"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\wscript.exe"
Run Code Online (Sandbox Code Playgroud)

和内容目标:/windows/system32/wscript.exe

我需要永久阻止此密钥(或我想创建的任何其他密钥),以防止意外或故意删除或修改任何恶意软件

题:

什么命令行可以帮助我做到这一点?(cmd 或 powershell 或两者)

Dav*_*ill 2

我需要阻止此密钥以防止恶意软件删除或修改。

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\wscript.exe
Run Code Online (Sandbox Code Playgroud)

什么命令行可以帮助我做到这一点?

根据问题链接中的答案,最简单的方法是从 SYSTEM 和管理员组中删除编辑权限,然后密钥应该有效地只读。

regini您可以按照以下过程从命令行执行此操作。


警告

  • 在进行此类更改之前,我很想备份整个系统(您可能会觉得只备份注册表就很舒服 - 见下文)。

  • 以下说明包含告诉您如何修改注册表的步骤。但是,如果注册表修改不当,可能会出现严重问题。

  • 为了增强保护,请在修改注册表之前对其进行备份。然后,如果出现问题,您可以恢复注册表。

  • 有关详细信息,请参阅如何在 Windows 中备份和恢复注册表


  1. block.txt创建一个包含以下内容的文件(例如):

     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\wscript.exe [2 19]
    
    Run Code Online (Sandbox Code Playgroud)
  2. block.txt使用以下命令执行脚本,从提升的(管理员) cmdshell 运行:

     regini block.txt
    
    Run Code Online (Sandbox Code Playgroud)

笔记:

  • regini命令必须从提升的(管理员)shell 运行cmd,否则将会失败(不会显示任何错误)。

  • 权限条目设置为[2 19]管理员读取访问权限和系统读取访问权限。

  • 您需要仔细考虑其他用户组是否也需要读取权限。

    [2 8 19]此外,使用 will 的权限条目还允许标准用户(以及具有已过滤用户令牌的管理员帐户)读取密钥的访问权限。

  • 您可能需要更改父密钥的权限以防止子密钥被删除(我尚未验证这一点)。


进一步阅读