--开始咆哮--
我要做的就是复制“文档和设置”文件夹以将其备份到 Windows Server 2003 中,以便在我擦除服务器以将操作系统升级到 Windows Server 2008 后,我们可以根据需要轻松地从中获取旧文件. 但是,当我尝试复制它时,我收到有关 NTUSER 正在使用等的错误。管理员不能只使用 Windows 资源管理器来复制文件夹,但无论如何,这非常令人恼火。
我没有时间跳过安全圈,清除权限。我没有时间启动一个巨大的文件夹副本,只是让它在运行到打开的文件句柄时通过操作失败一些随机百分比。我没有时间一遍又一遍地重复这个过程,每次都用进程资源管理器搜索打开的文件句柄并关闭它,从而破坏系统的稳定性作为副作用。
--结束咆哮--
我知道用户模式进程可以有某种标志,允许它绕过 NTFS 安全性。
如何将此“备份”角色 (
SE_BACKUP_NAME
/SE_RESTORE_NAME
) 赋予进程,例如 C# 程序?是否可以在托管代码中完成(或者我将不得不挖掘 Win32 API 文档,或者手写清单并将它们嵌入谁知道在哪里,或者追踪一些模糊的备份程序注册命令行实用程序) ?
如何在 C# 中打开具有备份语义的文件,以便复制该文件?
打开文件句柄(带有独占读锁)会干扰读取文件以进行备份,还是会以备份语义打开它,并在打开文件进行备份时暂时暂停写入文件?
我在这里问,因为在stackoverflow上保留记录是有用的信息,有人可能会从他们的头顶喷出,我没有时间自己查找。谢谢你。
很快,我将把一些服务器升级到噩梦般的 Windows Server 2008 并学习 icacls 命令实用程序,这要归功于 Microsoft 删除了对多个文件夹/文件编辑安全性的 GUI 支持(聪明的举动。不是。)