映射的网络驱动器可能无法在 Windows 10 版本 1809 中重新连接

本文为映射的网络驱动器可能无法在Windows 10 版本 1809中重新连接的问题提供解决方法。

适用范围:Windows 10 版本 1809
原始 KB 编号: 4471218

症状

Windows 10 版本 1809遇到以下问题:

  • 在 Windows 资源管理器中,映射的网络驱动器上会显示红色 X。
  • 在命令提示符下运行 命令时,net use映射的网络驱动器显示为“不可用”。
  • 在通知区域中,通知显示以下消息:

    无法重新连接所有网络驱动器。

解决方法

Microsoft 正在制定解决方案,并估计解决方案将在 2018 年 11 月底之前可用。 监视 Windows 10 1809 更新历史记录 KB 4464619中的映射驱动器主题。 目前,可以通过运行脚本在登录设备时自动重新连接映射的网络驱动器来解决此问题。 为此,请创建两个脚本文件,然后根据需要使用其中一种解决方法。

创建名为 MapDrives.cmd 的脚本文件

该文件应定期运行,但不应在提升的命令提示符下运行,因为它应以与 Windows 资源管理器相同的权限运行:

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

创建名为 MapDrives.ps1 的脚本文件

该文件应定期运行,但不应在提升的命令提示符下运行,因为它应以与 Windows 资源管理器相同的权限运行:

$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 "There was an error mapping $MappedDrive.RemotePath to $MappedDrive.LocalPath"
        }
    }
    $i = $i - 1
    if($error.Count -eq 0 -Or $i -eq 0) {break}

    Start-Sleep -Seconds 30
}

解决办法

所有解决方法都应在标准用户安全上下文中执行。 在提升的安全上下文中执行脚本会阻止映射的驱动器在标准用户上下文中可用。

解决方法 1:创建启动项

注意

此解决方法仅适用于登录时具有网络访问权限的设备。 如果设备在登录时尚未建立网络连接,启动脚本不会自动重新连接网络驱动器。

  1. 将 MapDrives.cmd) (脚本文件复制到以下位置:
    %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp
  2. 将脚本文件 (MapDrives.ps1) 复制到以下位置:
    %SystemDrive%\Scripts\
  3. 将在 %TEMP%\ 文件夹中创建日志文件 (StartupLog.txt) 。
  4. 注销,然后重新登录到设备以打开映射的驱动器。

解决方法 2:创建计划任务

注意

计划任务运行时,PowerShell 窗口会闪烁。

  1. 将脚本文件 MapDrives.ps1 复制到以下位置:
    %SystemDrive%\Scripts\
  2. “任务计划程序”中,选择“ 操作>创建任务”。
  3. 在“创建任务”对话框的“常规”选项卡上,键入名称 (,例如映射网络驱动器) 和任务说明。
  4. 选择“ 更改用户或组”,选择本地用户或组 ((例如 LocalComputer\Users) ),然后选择“ 确定”。
  5. 在“触发器”选项卡上,选择“新建”,并为“开始任务”字段选择“登录时”。
  6. 在“操作”选项卡上,选择“新建”,然后选择“操作”字段的“启动程序”。
  7. 键入“程序/脚本”字段的“Powershell.exe”。
  8. “添加参数 (可选) ”字段中,键入以下内容:
    -windowstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1
  9. 在“ (可选) ”字段中,键入脚本文件的位置 (%SystemDrive%\Scripts\) 。
  10. 在“ 条件 ”选项卡上,选择“ 仅当以下网络连接可用时启动 ”选项,选择“ 任何连接”,然后选择“ 确定”。
  11. 注销,然后重新登录到设备以运行计划的任务。