当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

作者:精品下载站 日期:2024-12-14 23:02:10 浏览:15 分类:玩电脑

无法重新连接 Windows 10 上的所有映射网络驱动器


最新版本的 Windows 10 有一个错误,导致映射的网络驱动器可能无法在 Windows 启动时自动重新连接。登录后,用户会在文件资源管理器中的所有映射网络驱动器的图标上看到一个大红十字。如果您运行

net use

在命令提示符中输入命令,然后您将在所有映射驱动器前面看到不可用状态。用户映射的网络驱动器和 GPO 映射的驱动器都不会自动重新连接。

此问题首先出现在 Windows 10 1809 上,但也出现在较新的版本中,包括 Windows 10 2004。

映射网络驱动器在 Windows 10 中无法重新连接

Windows 10 由于某种原因在重新启动设备后停止自动映射网络驱动器。映射的网络驱动器显示在文件资源管理器中,但您无法连接到它们。

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

在这种情况下,通知区域中会出现一个带有警报的弹出窗口:

Could not reconnect all network drives.
Click here to check the status of your network drives.

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

从 NAS 设备连接的映射驱动器以及其他 Windows/Linux 计算机上的共享文件夹都会出现此问题。该错误首先出现在 Windows 10 版本 1809 中,据 Microsoft 称,已通过 2018 年 12 月 5 日发布的 KB469342 更新修复(解决了可能导致映射驱动器在启动并登录 Windows 设备后无法重新连接的问题)。但这个问题也出现在新的 Windows 10 版本中。

您可以从 Microsoft 更新目录手动下载并安装更新。

Microsoft 还提供了解决恢复映射网络驱动器连接问题的解决方法(请参阅 KB4471218 — 映射网络驱动器可能无法在 Windows 10 版本 1809 中重新连接)。为此,建议在用户登录时运行 PowerShell 脚本。如果网络驱动器通过组策略连接,则需要更改 GPO 设置。

使用 PowerShell 自动重新连接映射的网络驱动器

让我们看看如何使用 PowerShell 脚本在用户登录 Windows 时自动重新连接映射的网络驱动器。

运行notepad.exe,将以下PowerShell代码复制到其中,并将文件保存到C:\PS目录中,命名为MapDrives.ps1

$i=3
while($True){
$error.clear()
$MappedDrives = Get-SmbMapping |where -property Status -Value Unavailable -EQ | select LocalPath,RemotePath
foreach( $MappedDrive in $MappedDrives)
{
try {
New-SmbMapping -LocalPath $MappedDrive.LocalPath -RemotePath $MappedDrive.RemotePath -Persistent $True
} catch {
Write-Host "Shared folder connection error: $MappedDrive.RemotePath to drive $MappedDrive.LocalPath"
}
}
$i = $i - 1
if($error.Count -eq 0 -Or $i -eq 0) {break}
Start-Sleep -Seconds 30
}

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

该脚本选择所有无法访问的映射驱动器并尝试以持久模式重新连接它们。

使用以下代码创建另一个 MapDrives.cmd 脚本文件:

PowerShell -Command "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell -File "%SystemDrive%\PS\MapDrives.ps1" >> "%TEMP%\StartupLog.txt" 2>&1

此代码允许您绕过 PowerShell 执行策略并运行上述 PS1 脚本。您可以通过将 MapDrives.cmd 文件复制到

%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp

文件夹。

您还可以创建计划任务以在用户登录时运行 MapDrives.cmd 文件。您可以使用 PowerShell 或从任务计划程序 GUI 控制台创建计划程序任务 (

Taskschd.msc

)。

  1. 创建一个新任务,指定其名称(reMapNetworkDrives),选择该任务需要代表Builtin\Users组运行;

    [玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

  2. 触发器选项卡上,选择任务应在任何用户登录系统时运行(登录时 -> 任何用户);

  3. 操作选项卡的程序/脚本字段中,指定MapDrives.cmd文件的路径;

  4. 条件选项卡上,您可以启用选项网络 -> 仅在以下网络连接可用时启动 -> 任何连接;

    [玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

  5. 重新启动计算机或在您的用户帐户下注销/登录。当用户登录时,应该运行该脚本,这将重新创建所有映射的驱动器连接。

请注意,默认情况下,在提升模式下连接的网络驱动器在正常模式下不可用,反之亦然。但您可以修复它 - 请参阅文章映射驱动器无法从提升的应用程序中使用。

通过 GPO 自动重新连接映射驱动器

如果使用域组策略将网络驱动器映射到用户,则需要更改策略设置才能正确连接驱动器。

打开连接驱动器的 GPO,在“用户设置”->“首选项”->“Windows 设置”->“驱动器映射”部分中,找到您的网络驱动器分配策略(策略)并将操作类型从更新更改为替换

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

更新客户端上的组策略设置后,映射的网络驱动器将被删除并在用户登录时重新连接。

映射网络驱动器可能无法在 Windows 10 2004 (20H2) 上重新连接

映射网络驱动器的问题也会出现在 Windows 10 2004(内部版本 20H2)上。从仅支持 SMBv1 协议的旧网络设备(Windows XP/2003、旧 NAS 设备)连接的网络驱动器会出现此问题。

为了解决这个问题,需要添加参数

ProviderFlags=1

到每个映射网络驱动器的用户注册表。

例如,如果用户在会话中映射了网络驱动器 U:,请转至注册表项 HKEY_CURRENT_USER\Network\U。创建一个名为 ProviderFlags 且值为 1 的 DWORD。

或者运行命令:

REG ADD "HKCU\Network\U" /v "ProviderFlags" /t REG_DWORD /d "1" /f

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

通过 GPO 在 Windows 中延迟映射网络驱动器

在网络接口完全初始化之前,Windows 可能会在用户登录时尝试重新连接网络驱动器。要防止映射驱动器在网络完全启用之前进行连接,您可以配置特定的组策略设置。

您可以通过本地组策略编辑器配置此设置(

gpedit.msc

)或从域 GPO 编辑器(

gpmc.msc

)。转至计算机配置 -> 管理模板 -> 系统 -> 登录,并启用计算机启动和登录时始终等待网络策略。

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

重新启动计算机。

如果您在启动计算机(或退出休眠/睡眠模式)后等待 15 秒再登录,也可以解决此问题。这段时间足以让 Windows 初始化网络。

禁用无法重新连接所有网络驱动器通知

如果您的计算机不在公司网络上(网络驱动器在设计上不可用),并且您每次 Windows 启动时都被烦人的“无法重新连接所有网络驱动器”通知所困扰,您可以将其禁用。

为此,请转到注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider,然后创建一个名为 RestoreConnection 和值 0 的新 DWORD 参数。

[玩转系统] 无法重新连接 Windows 10 上的所有映射网络驱动器

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯