复制文件而不取得所有权

复制文件而不取得所有权

我正在手动备份安装了 XP 的硬盘上的数据,因为我怀疑该硬盘出现故障。我想复制文件,但我想要更改原始驱动器的所有者(或任何权限),以便能够这样做。有什么方法可以做到这一点?

答案1

事实证明Robocopy可以非常轻松地完成此操作。只需/B在命令行中包含选项,即可在备份模式下复制文件。这需要您以管理员身份运行。

我的命令行:

robocopy /MIR /B "E:\Documents and Settings" "C:\DeadDriveBackup\Documents and Settings"

答案2

给出的答案对我没有用;这个有用。

Robocopy 有一个/COPY参数用于指定要复制文件的哪些部分。可供复制的是d阿塔,A属性,时间戳,s安全信息 (NTFS ACL),o所有权信息,以及信息。如果您希望将一个目录中的所有内容完美地复制到另一个目录中,请使用以下命令:

robocopy /E /B /COPYALL "C:\One" "C:\Two"

我们来分析一下:

  • /E复制所有文件,包括空目录。其工作原理类似于/MIR,但是不会删除目标中的任何内容
  • /B以“备份模式”复制,授予 Robocopy 覆盖 ACL(文件权限)的权限。
  • /COPYALL是 的别名/COPY:DATSOU,它复制所有文件数据,包括文件所有权和权限(ACL)数据。

您正在复制用户资料吗?

我曾经这样做过,但还有一些额外的注意事项。默认的 Windows 用户配置文件包含目录连接循环,而 Robocopy 无法配置为创建新的连接而不是遵循它们。上述 Robocopy 命令将失败并创建难以删除的目录树,因此请使用此命令来排除连接。

robocopy /E /B /COPYALL /XJ "C:\One" "C:\Two"

为了兼容性,您可能应该在用户配置文件中重新创建默认目录连接:

mklink /J "Application Data" "AppData\Roaming"
mklink /J "Cookies" "AppData\Local\Microsoft\Windows\INetCookies"
mklink /J "Local Settings" "AppData\Local"
mklink /J "My Documents" "Documents"
mklink /J "NetHood" "AppData\Roaming\Microsoft\Windows\Network Shortcuts"
mklink /J "PrintHood" "AppData\Roaming\Microsoft\Windows\Printer Shortcuts"
mklink /J "Recent" "AppData\Roaming\Microsoft\Windows\Recent"
mklink /J "SendTo" "AppData\Roaming\Microsoft\Windows\SendTo"
mklink /J "Start Menu" "AppData\Roaming\Microsoft\Windows\Start Menu"
mklink /J "Templates" "AppData\Roaming\Microsoft\Windows\Templates"
attrib /L +S +H +I "Application Data"
attrib /L +S +H +I "Cookies"
attrib /L +S +H +I "Local Settings"
attrib /L +S +H +I "My Documents"
attrib /L +S +H +I "NetHood"
attrib /L +S +H +I "PrintHood"
attrib /L +S +H +I "Recent"
attrib /L +S +H +I "SendTo"
attrib /L +S +H +I "Start Menu"
attrib /L +S +H +I "Templates"

答案3

我会启动一个 Live CD,就像Parted Magic并使用类似GNU 救援对驱动器进行映像处理。

如果您确实只想要其中一些文件,您可以随时复制您想要的文件 - 默认情况下,NTFS 分区应该以只读方式安装,因此不可能意外更改任何内容。

相关内容