我有来自管理层的要求,即我的应用程序需要在安装后禁用系统上的系统还原。我已经找到并实现了下面的代码来实现这一点。该代码在 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 的功能。我已经看到了对此实际涵盖哪些文件的不同描述,但只是在这里和那里对线程的评论。对它的作用或工作方式没有真正的“好”描述。
编辑:对于“为什么”我需要这样做并相信我,我完全理解并努力寻找另一种方式,这引起了很多关注。但这是不可行的。更多信息,希望能让您放心。
本产品不适合个人使用。它将在公司级别用于锁定系统。此要求来自行业法规和标准。想想医疗或信用卡。受到保护的不仅仅是“我们的”日志、系统访问日志、系统使用日志、文件审核日志。因此,即使停用了系统还原,他们也可以使用其他方式来还原旧版本的日志,系统级日志记录文件访问以及谁访问了它,因此我们至少知道发生了日志篡改。本质上是使用操作系统来审核日志记录。还原点也将在一个简单的步骤中重置所有这些。
用户必须以管理员权限安装此应用程序。目前,用户实际上必须手动执行此步骤,以便站点可以保持其行业认证。我们只是试图简化安装过程。站点管理员了解此要求。我还在实施十几个类似的“系统管理员”更改以简化安装过程。