次の方法で共有


マップされたネットワーク ドライブが Windows 10 バージョン 1809 で再接続できない場合がある

この記事では、マップされたネットワーク ドライブが Windows 10 バージョン 1809 で再接続できない可能性がある問題の回避策について説明します。

適用対象: Windows 10 バージョン 1809
元の KB 番号: 4471218

現象

Windows 10 バージョン 1809 では、次の問題が発生します。

  • Windows エクスプローラーでは、マップされたネットワーク ドライブに赤い X が表示されます。
  • コマンド プロンプトで コマンドを実行すると、マップされたネットワーク ドライブは net use として表示されます。
  • 通知領域に、通知に次のメッセージが表示されます。

    すべてのネットワーク ドライブを再接続できませんでした。

回避策

Microsoft は解決策に取り組んでおり、ソリューションは 2018 年 11 月末までに利用可能になると見積もっています。 Windows 10 1809 Update History KB 4464619で、マップされたドライブトピックを監視します。 現時点では、デバイスにログオンするときにマップされたネットワーク ドライブを自動的に再接続するスクリプトを実行することで、この問題を回避できます。 これを行うには、2 つのスクリプト ファイルを作成し、必要に応じていずれかの回避策を使用します。

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 -ErrorAction Stop
        } 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\スタート メニュー\プログラム\スタートアップ
  2. スクリプト ファイル MapDrives.ps1 を次の場所にコピーします :%SystemDrive%\Scripts\
  3. %TEMP%\ フォルダーに ログ ファイル StartupLog.txt が作成されます。
  4. サインアウトし、デバイスにサインインして、マップされたドライブを開きます。

回避策 2: スケジュールされたタスクを作成する

スケジュールされたタスクが実行されると、PowerShell ウィンドウが点滅します。

  1. スクリプト ファイル MapDrives.ps1 を次の場所にコピーします :%SystemDrive%\Scripts\
  2. Task Scheduler で、Action>Create Task を選択します。
  3. [タスクの作成] ダイアログの [全般] タブで、タスクの名前 (ネットワーク ドライブのマップなど) と説明を入力します。
  4. [ユーザーまたはグループの変更を選択し、ローカル ユーザーまたはグループ (LocalComputer\Users など) を選択し、OK を選択します。
  5. [Triggers タブで、New を選択し、タスク フィールドの [ログオンを選択します。
  6. [Actions タブで New を選択し、Action フィールドのプログラムの開始を選択します。
  7. Program/script フィールドにPowershell.exeを入力します。
  8. 引数の追加 (省略可能)フィールドに、次のように入力します。
    -windowstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1
  9. [ 開始] (省略可能) フィールドに 、スクリプト ファイルの場所を入力します :%SystemDrive%\Scripts\
  10. [ Conditions タブで、次のネットワーク接続が使用可能な場合にのみ 開始 オプションを選択し、 Any 接続を選択し、 OK を選択します。
  11. サインアウトし、デバイスにサインインしてスケジュールされたタスクを実行します。

回避策 3: VPN 接続イベント ID 20225 のスケジュールされたタスクを作成する

イベント ID 20225 は、仮想プライベート ネットワーク (VPN) 接続が正常に確立されたことを示します。

  1. スクリプト ファイル MapDrives.ps1 を次の場所にコピーします :%SystemDrive%\Scripts\
  2. Task Scheduler で、Action>Create Task を選択します。
  3. [タスクの作成] ダイアログの [全般] タブで、タスクの名前 (ネットワーク ドライブのマップなど) と説明を入力します。
  4. [ユーザーまたはグループの変更を選択し、ローカル ユーザーまたはグループ (LocalComputer\Users など) を選択し、OK を選択します。
  5. [トリガー] タブ [新規] を選択し、[タスクの開始] フィールドの [イベントで] を選択します。
  6. [ログ] ドロップダウン リストから [アプリケーション] を選択し、[ソース] フィールドに「RasClient」と入力し、[イベント ID] フィールドに「20225」と入力します。 [OK] をクリックします。
  7. [Actions タブで New を選択し、Action フィールドのプログラムの開始を選択します。
  8. Program/script フィールドにPowershell.exeを入力します。
  9. 引数の追加 (省略可能)フィールドに、次のように入力します。
    -windowsstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1
  10. [ 開始] (省略可能) フィールドに 、スクリプト ファイルの場所を入力します :%SystemDrive%\Scripts\
  11. [ Conditions タブで、次のネットワーク接続が使用可能な場合にのみ 開始 オプションを選択し、 Any 接続を選択し、 OK を選択します。
  12. サインアウトし、デバイスにサインインしてスケジュールされたタスクを実行します。