第 10 Windows バージョン 1809 に再接続するのには割り当てられたネットワーク ドライブがあります。

適用対象: Windows 10, version 1809

現象


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

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

回避策


マイクロソフトが問題の解決方法を使用して、見積もりの末、2018年 11 月のソリューションが表示されます。Windows 10 1809 更新履歴 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=3while($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. ログ ファイル (StartupLog.txt) は、 %TEMP%\フォルダーに作成されます。
  4. いったんログオフし、デバイスを開くには、マップされたドライブに再度ログオンします。

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

  1. MapDrives.ps1 スクリプト ファイルを次の場所にコピーします。

    %SystemDrive%\Scripts\

  2. タスク スケジューラでアクションを選択 >タスクを作成します。
  3. [タスクの作成] ダイアログ ボックスで [全般] タブの名前 (たとえば、ネットワーク ドライブの割り当て) と、タスクの説明を入力します。
  4. 変更のユーザーまたはグループを選択、ローカル ユーザーまたはグループ ( LocalComputer\Users) などを選択し、 [ok]を選択します。
  5. [トリガー ] タブで、新規作成] を選択し、ログオン時にタスクを開始] フィールドにします。
  6. [操作] タブで、新規作成] を選択し、プログラムを起動するを選択し、[アクション] フィールドの。
  7. Powershell.exeをは、プログラム/スクリプト] フィールドに入力します。
  8. [引数の追加 (オプション) ] フィールドで、次のように入力します。

    -windowsstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1

  9. [開始 (オプション) ] フィールドで、スクリプト ファイルの場所 (%SystemDrive%\Scripts\) を入力します。

  10. [条件] タブで、次のネットワーク接続がある場合にのみを開始する] オプションを選択を選択し、任意の接続を選択し、 [ok]を選択します。
  11. いったんログオフし、スケジュールされたタスクを実行するデバイスに再度ログオンします。