Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将windows用户文件夹移动到外部驱动器,同时保留连接_Windows_Junction - Fatal编程技术网

将windows用户文件夹移动到外部驱动器,同时保留连接

将windows用户文件夹移动到外部驱动器,同时保留连接,windows,junction,Windows,Junction,我已经找到并遵循了这些方法*将我的用户文件夹移动到外部驱动器,它工作得非常好,但是它的一个副作用是robocy source dest/xj复制除了连接之外的所有文件,这意味着它在外部驱动器上创建的用户文件夹不再有目录连接,就像在默认的Windows7中一样。我已经尽我所能从备份中移动连接,创建具有相同属性的新连接,复制它们,等等,但我所做的任何尝试都无法使它们恢复 我需要一种方法来修复我的用户文件夹中的连接链接, 从我的备份中复制/移动某些内容的方法, 或者按照链接中的步骤进行操作,但保持所有

我已经找到并遵循了这些方法*将我的用户文件夹移动到外部驱动器,它工作得非常好,但是它的一个副作用是
robocy source dest/xj
复制除了连接之外的所有文件,这意味着它在外部驱动器上创建的用户文件夹不再有目录连接,就像在默认的Windows7中一样。我已经尽我所能从备份中移动连接,创建具有相同属性的新连接,复制它们,等等,但我所做的任何尝试都无法使它们恢复

我需要一种方法来修复我的用户文件夹中的连接链接, 从我的备份中复制/移动某些内容的方法, 或者按照链接中的步骤进行操作,但保持所有连接完好无损

您可能会问,当用户配置文件似乎工作正常时,为什么我如此关注连接?原因是这些连接是为了与以前的操作系统保持向后兼容性,而且应该存在。我想复制准确的用户文件夹,而不是它的大部分。老实说,没有理由这么难/

有人有什么建议吗?谢谢

注意:我已经在谷歌上搜索了好几个小时了,但我想不出任何解决问题的办法。这是我最后的办法。我不介意得到答案,即使是重新安装。只要有办法就行


*由于我在任何地方都找不到任何真正的答案,所以我花时间编写并对整个过程进行反向工程

我希望这对任何想做同样事情的人都有用。请欣赏

注意:这些脚本设计为仅与系统上的一个用户一起工作,而不是默认的用户。它不会为您创建的其他用户生成任何内容

警告:这些脚本不提供任何担保,虽然我已经尽了最大努力使其完美,但我不会对您使用它们可能受到的任何损害承担任何责任。使用风险自负

#
# Restore default Windows 7 symlink and junction points
#
# To run: 
# (1) Start CMD as administrator
# (2) cd to directory where script is
# (3) Run: powershell -executionpolicy remotesigned -File restorelinks.ps1
#


# tmp folder for our work
New-Item -ItemType directory -Path .\tmp

$username = [Environment]::UserName
$userObj = New-Object System.Security.Principal.NTAccount("$username")
$userSid = $userObj.Translate([System.Security.Principal.SecurityIdentifier]).Value


# file, target, perms
$symlinks = @(,
    ("C:\Users\All Users", "C:\ProgramData", "D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICIIO;GA;;;CO)(A;OICI;0x1200a9;;;BU)(A;CI;DCLCRPCR;;;BU)")
)

# file, target, perms
$junctions = @(
    ("C:\Users\Default User",                                     "C:\Users\Default",                                                            "D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"),
    ("C:\Users\Default\Application Data",                         "C:\Users\Default\AppData\Roaming",                                            "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Cookies",                                  "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Cookies",                  "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Local Settings",                           "C:\Users\Default\AppData\Local",                                              "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\My Documents",                             "C:\Users\Default\Documents",                                                  "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\NetHood",                                  "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Network Shortcuts",        "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\PrintHood",                                "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Printer Shortcuts",        "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Recent",                                   "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Recent",                   "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\SendTo",                                   "C:\Users\Default\AppData\Roaming\Microsoft\Windows\SendTo",                   "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Start Menu",                               "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu",               "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Templates",                                "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Templates",                "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\AppData\Local\Application Data",           "C:\Users\Default\AppData\Local",                                              "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\AppData\Local\History",                    "C:\Users\Default\AppData\Local\Microsoft\Windows\History",                    "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\AppData\Local\Temporary Internet Files",   "C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files",   "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Documents\My Music",                       "C:\Users\Default\Music",                                                      "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Documents\My Pictures",                    "C:\Users\Default\Pictures",                                                   "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Default\Documents\My Videos",                      "C:\Users\Default\Videos",                                                     "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;ID;0x1200a9;;;WD)(A;OICIIOID;GXGR;;;WD)"),
    ("C:\Users\Public\Documents\My Music",                        "C:\Users\Public\Music",                                                       "D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"),
    ("C:\Users\Public\Documents\My Pictures",                     "C:\Users\Public\Pictures",                                                    "D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"),
    ("C:\Users\Public\Documents\My Videos",                       "C:\Users\Public\Videos",                                                      "D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"),
    ("C:\Users\$username\Application Data",                       "C:\Users\$username\AppData\Roaming",                                          "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Cookies",                                "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Cookies",                "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Local Settings",                         "C:\Users\$username\AppData\Local",                                            "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\My Documents",                           "C:\Users\$username\Documents",                                                "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\NetHood",                                "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Network Shortcuts",      "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\PrintHood",                              "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Printer Shortcuts",      "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Recent",                                 "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Recent",                 "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\SendTo",                                 "C:\Users\$username\AppData\Roaming\Microsoft\Windows\SendTo",                 "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Start Menu",                             "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Start Menu",             "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Templates",                              "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Templates",              "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\AppData\Local\Application Data",         "C:\Users\$username\AppData\Local",                                            "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\AppData\Local\History",                  "C:\Users\$username\AppData\Local\Microsoft\Windows\History",                  "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\AppData\Local\Temporary Internet Files", "C:\Users\$username\AppData\Local\Microsoft\Windows\Temporary Internet Files", "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Documents\My Music",                     "C:\Users\$username\Music",                                                    "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Documents\My Pictures",                  "C:\Users\$username\Pictures",                                                 "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)"),
    ("C:\Users\$username\Documents\My Videos",                    "C:\Users\$username\Videos",                                                   "D:AI(D;;CC;;;WD)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;$userSid)")
)

# dump acl file
Add-Content tmp\acl-tmp.dat "Users`r`nD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;;0x1200a9;;;WD)(A;OICIIO;GXGR;;;WD)"
foreach ($symlink in $symlinks) {
    Add-Content tmp\acl-tmp.dat "$($symlink[0].Substring(3))`r`n$($symlink[2])"
}
foreach ($junction in $junctions) {
    Add-Content tmp\acl-tmp.dat "$($junction[0].Substring(3))`r`n$($junction[2])"
}

# generate formatted acl file
$aclTmp = [io.file]::ReadAllBytes("tmp\acl-tmp.dat")
$acl = New-Object Byte[] ($aclTmp.length*2)
$offset = 0
for ($i = 0; $i -lt $aclTmp.length; $i++) {
    $acl[$offset] = $aclTmp[$i]
    $acl[$offset+1] = 0x00
    $offset += 2
}
[io.file]::WriteAllBytes("tmp\acl.dat", $acl)


# create links
foreach ($symlink in $symlinks) {
    cmd /c mklink /D "$($symlink[0])" "$($symlink[1])"
    cmd /c attrib +s +h +i "$($symlink[0])" /L
    cmd /c icacls "$($symlink[0])" /setowner SYSTEM /L
}
foreach ($junction in $junctions) {
    cmd /c mklink /J "$($junction[0])" "$($junction[1])"
    cmd /c attrib +s +h +i "$($junction[0])" /L
    cmd /c icacls "$($junction[0])" /setowner SYSTEM /L
}

# restore link permissions
cmd /c icacls C:\ /restore tmp/acl.dat

# cleanup tmp folder
Remove-Item -Recurse -Force tmp
如果任何人有任何奇怪的需要删除所有生成的符号链接和连接点,您可以使用此选项

@echo off

set FILES=(^
    "C:\Users\All Users"^
    "C:\Users\Default User"^
    "C:\Users\Default\Application Data"^
    "C:\Users\Default\Cookies"^
    "C:\Users\Default\Local Settings"^
    "C:\Users\Default\My Documents"^
    "C:\Users\Default\NetHood"^
    "C:\Users\Default\PrintHood"^
    "C:\Users\Default\Recent"^
    "C:\Users\Default\SendTo"^
    "C:\Users\Default\Start Menu"^
    "C:\Users\Default\Templates"^
    "C:\Users\Default\AppData\Local\Application Data"^
    "C:\Users\Default\AppData\Local\History"^
    "C:\Users\Default\AppData\Local\Temporary Internet Files"^
    "C:\Users\Default\Documents\My Music"^
    "C:\Users\Default\Documents\My Pictures"^
    "C:\Users\Default\Documents\My Videos"^
    "C:\Users\Public\Documents\My Music"^
    "C:\Users\Public\Documents\My Pictures"^
    "C:\Users\Public\Documents\My Videos"^
    "C:\Users\%username%\Application Data"^
    "C:\Users\%username%\Cookies"^
    "C:\Users\%username%\Local Settings"^
    "C:\Users\%username%\My Documents"^
    "C:\Users\%username%\NetHood"^
    "C:\Users\%username%\PrintHood"^
    "C:\Users\%username%\Recent"^
    "C:\Users\%username%\SendTo"^
    "C:\Users\%username%\Start Menu"^
    "C:\Users\%username%\Templates"^
    "C:\Users\%username%\AppData\Local\Application Data"^
    "C:\Users\%username%\AppData\Local\History"^
    "C:\Users\%username%\AppData\Local\Temporary Internet Files"^
    "C:\Users\%username%\Documents\My Music"^
    "C:\Users\%username%\Documents\My Pictures"^
    "C:\Users\%username%\Documents\My Videos"^
)

for %%a in %FILES% do (
    icacls %%a /grant "%username%:(F)" /L
    icacls %%a /setowner %username% /L
    attrib -S -I -H %%a /L
    rmdir %%a
)