0

--开始咆哮--

我要做的就是复制“文档和设置”文件夹以将其备份到 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 支持(聪明的举动。不是。)

4

1 回答 1

0

我使用Microsoft 同步框架创建了我自己的备份和恢复应用程序来迁移用户配置文件和其他相关文件。Sync Framework 至少可以选择在文件正在使用时静默失败并继续而不提示,这是我想要的行为。

由于它是一个同步框架,它具有与冲突管理相关的一些能力。我不需要它们,但除了文件同步之外,它还有其他用于数据库和 Web 同步的“提供程序”。

也许使用psexec远程运行程序可以减少正在使用的文件数量。就我而言,我只关心“当前”用户,因此该程序由本地用户运行并将文件备份到网络共享。

Sync Framework 确实需要安装 MSI,但我也使用 PSExec 进行了安装。

于 2015-06-03T22:29:12.537 回答