マップされたネットワーク ドライブがWindows 10 Version 1809で再接続できない可能性がある
この記事では、マップされたネットワーク ドライブがWindows 10 Version 1809で再接続できない可能性がある問題の回避策について説明します。
適用対象: Windows 10 Version 1809
元の KB 番号: 4471218
現象
Windows 10 Version 1809では、次の問題が発生します。
- Windows エクスプローラーでは、マップされたネットワーク ドライブに赤い X が表示されます。
- コマンド プロンプトでコマンドを実行
net use
すると、マップされたネットワーク ドライブは [使用不可] と表示されます。 - 通知領域に、通知に次のメッセージが表示されます。
すべてのネットワーク ドライブを再接続できませんでした。
回避策
Microsoft は解決に取り組んでおり、ソリューションは 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=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: スタートアップ項目を作成する
注:
この回避策は、ログオン時にネットワーク アクセス権を持つデバイスに対してのみ機能します。 ログオン時までにデバイスがネットワーク接続を確立していない場合、スタートアップ スクリプトはネットワーク ドライブを自動的に再接続しません。
- スクリプト ファイル (MapDrives.cmd) を次の場所にコピーします。
%ProgramData%\Microsoft\Windows\スタート メニュー\プログラム\スタートアップ - スクリプト ファイル (MapDrives.ps1) を次の場所にコピーします。
%SystemDrive%\Scripts\ - %TEMP%\ フォルダーにログ ファイル (StartupLog.txt) が作成されます。
- ログオフしてから、デバイスに再度ログオンして、マップされたドライブを開きます。
回避策 2: スケジュールされたタスクを作成する
注:
スケジュールされたタスクの実行時に PowerShell ウィンドウが点滅します。
- スクリプト ファイルの MapDrives.ps1 を次の場所にコピーします。
%SystemDrive%\Scripts\ - タスク スケジューラで、[アクション作成タスク] を選択します>。
- [タスクの作成] ダイアログ ボックスの [全般] タブで、タスクの名前 (ネットワーク ドライブのマップなど) と説明を入力します。
- [ ユーザーまたはグループの変更] を選択し、ローカル ユーザーまたはグループ ( LocalComputer\Users など) を選択し、[ OK] を選択します。
- [トリガー] タブで [新規] を選択し、[タスクの開始] フィールドの [ログオン時] を選択します。
- [アクション] タブで [新規] を選択し、[アクション] フィールドの [プログラムの開始] を選択します。
- [プログラム/スクリプト] フィールドに「Powershell.exe」と入力します。
- [ 引数の追加 (省略可能)] フィールドに、次のように入力します。
-windowstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1 - [ Start in (省略可能)] フィールドに 、スクリプト ファイルの場所 (%SystemDrive%\Scripts\) を入力します。
- [ 条件 ] タブで、[ 次のネットワーク接続が使用可能な場合にのみ開始 する] オプションを選択し、[ 任意の接続] を選択し、[OK] を選択 します。
- ログオフしてから、デバイスに再度ログオンして、スケジュールされたタスクを実行します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示