在 Windows Server 或工作站环境中,有时由于早期配置或误操作,用户桌面被指向了某个非系统盘(例如 H: 盘)。随着时间推移,该盘可能空间不足,或者需要重新规划存储结构,就会出现将桌面迁移到其他位置的需求。本文以“将桌面从 H: 盘迁移到 E: 盘”为例,记录了完整的操作和常见问题的解决思路。
一、问题背景
-
用户桌面路径被设定在 **H:**。
-
直接使用 属性 → 位置 → 移动 功能时,提示错误:
无法将文件夹移到此处
无法将文件从 "H:" 复制到 "E:\桌面"。
这可能是因为源文件夹或目标文件夹中一个或多个文件的
完全限定文件名超过了256个字符
-
同时 H: 盘存在
System Volume Information
、$RECYCLE.BIN
等系统文件夹,这些内容无法随桌面迁移。
二、解决方案
1. 复制用户文件到新位置(排除系统文件)
首先需要将 H: 盘上的桌面文件迁移到 E: 盘,但要排除系统隐藏目录。通过 PowerShell 执行:
$source = "H:\"
$dest = "E:\桌面"
# 确保目标目录存在
if (-not (Test-Path $dest)) {
New-Item -Path $dest -ItemType Directory | Out-Null
}
# 复制用户文件,排除系统文件夹
Get-ChildItem $source -Recurse -Force |
Where-Object { $_.FullName -notmatch "System Volume Information|RECYCLE.BIN|\.CBM$|desktop.ini" } |
ForEach-Object {
$target = $_.FullName.Replace($source, $dest)
if ($_.PSIsContainer) {
if (-not (Test-Path $target)) { New-Item -Path $target -ItemType Directory | Out-Null }
} else {
Copy-Item $_.FullName -Destination $target -Force
}
}
Write-Host "复制完成 ✅" -ForegroundColor Green
执行完成后,所有用户文件已复制到 E:\桌面
,而系统文件被自动跳过。
2. 修改桌面路径指向
Windows 的桌面路径由注册表管理,可以通过 PowerShell 修改:
Set-ItemProperty `
-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" `
-Name "Desktop" `
-Value "E:\桌面"
# 重启资源管理器生效
Stop-Process -Name explorer -Force
此时桌面路径已经切换到 E:\桌面
,无需重启整个服务器。
3. 验证迁移是否成功
-
在桌面右键 → 新建 → 文本文档
-
打开
E:\桌面
,确认新建的文件是否出现
如果文件出现在 E:\桌面
,说明迁移已完成并生效。
4. 清理旧桌面内容(可选)
确认迁移完成后,可以手动清理 H:\ 中的旧桌面文件,仅保留以下系统目录即可:
-
System Volume Information
-
$RECYCLE.BIN
其余文件和目录可以安全删除。
三、经验总结
-
不要直接移动包含系统文件的桌面目录,会导致迁移失败。
-
使用 PowerShell 脚本 可以轻松排除系统文件并完成批量复制。
-
修改注册表 是更稳定的做法,而不是依赖“属性 → 位置”菜单。
-
不需要重启整台服务器,只需重启资源管理器即可让新路径生效。
通过以上步骤,成功地将桌面从 H: 盘迁移到了 E: 盘,解决了系统盘空间不足和桌面路径异常的问题。