我是一家小型供暖公司的系统管理员,前几天会议的要求之一是我们为网络上的每台机器(49)备份c:\ windows \ system32 \ config,包括我的
由于目录被锁定(这是正确的),我似乎无法访问这些文件。即使是域管理员。
这有什么办法吗?也许通过注册表?
旧的c:\ windows \ repair文件夹似乎已经在Windows 7 SP1中消失,这就是我以为我会这样做的。
我已经建议了机器的完整备份映像(我提出的Acronis True Image),但我们现在没有空间要求或时间来备份每台机器(我们使用大约13台不同的供应商机器)所以为每个人创建一个图像也会很痛苦。因此,当它们中断时修复机器是我们唯一的希望,这种情况经常发生并且通常会导致完全重建。拥有系统文件将允许我们修复轻微的窗口错误,而不是重建整个机器。
除非有人有其他建议吗?
我在c#中创建程序是我认识和学习的唯一语言之一。我计划将其作为全局策略中的启动脚本,以便每次有人登录时都可以备份文件。
清单显示
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
源代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
/// Get DEFAULT
File.Copy(@"C:\Windows\System32\config\DEFAULT", @"C:\DEFAULT");
/// Then FTP/COPY TO NAS
/// SOURCE CODE HERE
}
}
}
添加了我的源代码,我得到的错误是
+ $exception {"Could not find file'C:\\Windows\\System32\\config\\DEFAULT'.":"C:\\Windows\\System32\\config\\DEFAULT"} System.Exception {System.IO.FileNotFoundException}
答案 0 :(得分:2)
即使使用完整的本地/域管理员权限,也无法从正在运行的系统中复制此文件夹的内容。访问此文件夹的内容受到严格限制,因为它包含Windows操作系统中最易受攻击且安全的数据文件 - 系统注册表,存储密码库,SAM数据库,内部内核和安全日志。它们始终由具有explit读/写权限的系统打开,没有任何共享访问权限。在内核文件系统驱动程序中也限制访问它们。
没有任何合法和官方记录的方式来复制它们。你想做的事情也是非法的非法......只是不要复制它们。
答案 1 :(得分:1)
您必须以管理员身份运行您的应用程序。没有其他办法。
您可以通过更改应用程序清单来强制执行此操作。对此有一个很好的答案:How do I force my .NET application to run as administrator?