使用c#获取系统文件



我是一家小型供暖公司的系统管理员,前几天会议上的要求之一是,我们为网络上的每台机器备份c:\windows\system32\config(49),包括我的。

由于目录被锁定(这是正确的),我似乎无法访问这些文件。即使是作为域管理员。

有办法解决这个问题吗?也许通过注册表?

旧的c:\windows\repair文件夹似乎已经在Windows7SP1中消失了,这就是我想做的。

我建议为这台机器创建一个完整的备份映像(我提出了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:WindowsSystem32configDEFAULT", @"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}

https://i.stack.imgur.com/2DCIa.png

即使具有完全的本地/域管理员权限,也无法从运行的系统中复制此文件夹的内容。访问此文件夹的内容受到高度限制,因为它包含Windows操作系统注册表、存储的密码保管库、SAM数据库、内部内核和安全日志中最易受攻击和最安全的数据文件。它们总是由系统打开,具有解释读/写权限,没有任何共享访问权限。对它们的访问也被限制在内核文件系统驱动程序内部。

没有任何法律和官方记录的方式来复制它们。你想做的事也可能是违法的。。。只是不要复制它们。

您必须以管理员身份运行应用程序。没有其他办法。

您可以通过更改应用程序清单来强制执行此操作。对此已经有了一个很好的答案:如何强制我的.NET应用程序以管理员身份运行?

相关内容

  • 没有找到相关文章

最新更新