【问题标题】:Fully disabling System Protection on Win 7在 Win 7 上完全禁用系统保护
【发布时间】:2012-12-21 11:31:38
【问题描述】:

我的管理要求我的应用程序需要在安装后禁用系统上的系统还原。我已经找到并实现了下面的代码来实现这一点。该代码在 XP 和 Vista 上运行良好,但在 Win7 上似乎不一样。

public void disableSystemRestore(string drive)
{
    try
    {
        ManagementScope scope = new ManagementScope("\\\\localhost\\root\\default");
        ManagementPath path = new ManagementPath("SystemRestore");
        ObjectGetOptions options = new ObjectGetOptions();
        ManagementClass process = new ManagementClass(scope, path, options);
        ManagementBaseObject inParams = process.GetMethodParameters("Disable");
        inParams["Drive"] =  drive;
        ManagementBaseObject outParams = process.InvokeMethod("Disable", inParams, null);
    }
    catch(ManagementException err)
    {
        MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
    }
}

问题是在 Win7 上,系统还原被包装到系统保护中。系统保护为每个硬盘驱动器提供 3 个选项。

1) 系统还原和文件版本

2) 仅文件版本

3) 无

只要没有人手动更改此设置,代码就可以正常工作。但是,如果用户之前更改了此设置,则代码将设置 Option2 而不是 Option3。我该如何纠正这个问题?

此外,我无法很好地描述 Option2 的功能。我已经看到了关于此文件实际涵盖哪些文件的不同描述,但只是在这里和那里的线程上的 cmets。对它的作用或工作方式没有真正的“好的”描述。

编辑:对于“为什么”我需要这样做有很多担忧,相信我完全理解并努力寻找另一种方法。但这是不可行的。更多信息,希望能让您放心。

本产品不适合个人使用。它将在公司级别用于锁定系统。此要求来自行业法规和标准。想想医疗或信用卡。受到保护的不仅仅是“我们的”日志、系统访问日志、系统使用日志、文件审核日志。因此,即使停用了系统还原,他们也可以使用其他方式来还原旧版本的日志,系统级日志记录文件访问以及谁访问了它,因此我们至少知道发生了日志篡改。本质上是使用操作系统来审核日志记录。还原点也将在一个简单的步骤中重置所有这些。

用户必须以管理员权限安装此应用程序。 目前,用户实际上必须手动执行此步骤,以便网站可以保持其行业认证。我们只是试图简化安装过程。站点管理员了解此要求。为了简化安装过程,我还实施了十几个其他类似的“系统管理员”更改。

【问题讨论】:

  • 这与回答您的问题完全没有关系,但我真的希望这是一个内部应用程序,不会在您的公司之外分发。
  • 这是一个奇怪的功能请求,我很好奇你为什么需要这样做 - 只是简单地禁用它可能不是实现任何目标的最佳方式这是你想要达到的目标。
  • 实际上是商业产品。有大量的审计日志和系统配置与此相关。如果发生违规行为并且敏感数据受到损害,则需要审核日志对其进行追踪。保留系统还原将允许犯罪者将系统重置到违规之前的时间,从而擦除日志。是的,当这件事发生时,我并没有被激怒。
  • 这个请求听起来相当恶意这里的最终目标是什么祝你好运让有人在这里参与为你提供任何代码来做你想做的事情。也许你可以告诉管理层在安全方面多花一点钱,并聘请经验丰富的系统管理员..

标签: c# windows-7 system-restore


【解决方案1】:

这不是对您问题的直接回答,但评论太长了。

虽然这不是对内部软件的完全不合理的要求,但对于商业软件来说却是一个可怕的想法。

这个计划至少有 6 个问题,我可以从头顶看出。随时将此列表重新提交给管理层,看看您是否可以获得不同的指令。

  1. 这听起来像是公司软件,而不是用户/个人软件。许多公司都制定了 Active Directory 策略,无法禁用系统还原或自动重新启用它。

  2. 只有系统管理员才能安装,因为普通企业用户没有权限。 鉴于此,没有什么可以阻止系统管理员重新安装安装后启用系统还原。 (如果普通用户可以自己安装,那么他们也将有权重新启用它)

  3. 任何在安装过程中试图禁用系统保护的东西都可能被病毒保护标记为恶意软件。这可能会阻止它工作和/或完全禁用您的软件。它也可能导致系统管理员反对它。

  4. 禁用系统还原不会阻止某人手动删除日志。

  5. 此计划不会阻止其他备份解决方案(例如 SecondCopy 或其他网络备份)恢复“旧”日志。 事实上,没有什么能阻止恶意用户简单地复制旧日志,做他的事,然后替换旧日志。

  6. 它可能会让您的公司对安装它的系统上的任何丢失数据负责。 (IANAL。确保您的律师在编写使用条款时了解这一点以及潜在的影响。)


简而言之,它不会做你想做的事,它很容易绕过,而且是一件非常有敌意的事情。

【讨论】:

  • 用扩展的背景信息更新了原始帖子。
  • @dsmithpl13 - 我现在更好地理解 why 了,1 是无效的,但它仍然没有解决点 2 和 3,也没有阻止 4 或第一个第 5 点的一部分。如果是认证要求,第 2 点的其余部分有点无关紧要,但我不认为这是一项要求。
  • 2) 他们可以,但是如果这样做并且发生违规行为,他们将不符合规范,所有责任都落在他们身上。所以他们不太可能这样做。 3) 如果 AV 在安装过程中出现问题,他们将不得不在安装过程中暂时禁用 AV。其中大部分将是在干净系统上的“大规模安装”。如果 AV 是一个问题,他们可以在 AV 之前安装我们。 4)但是会记录日志删除,包括用户/进程信息。 5) 同样,系统级审核日志会记录更改,以便我们知道发生了篡改。 6) 他们是 EULA FTW...
  • @dsmithpl13 - 好吧,我仍然不喜欢它,但你已经回答了我所有的问题。但是,我不知道有什么有用的东西可以让它工作。能问一下这是什么行业吗?我对那个认证很好奇。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 2016-07-11
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
相关资源
最近更新 更多