Errore X rossa per dischi di rete mappati, errore unità di rete disconnessa windows 10

Errore X rossa per dischi di rete mappati, oppure errore unità di rete disconnessa in windows 10

Questo è un tipo di errore che ogni tanto ritorna, succedeva anche con windows 7.
Recentemente mi è capitato su un nuovo pc con windows 10 (ver 1809). Il pc doveva mappare all’avio un’unità di rete M:
Sull’unità di rete, (server linux) risiedeva un software gestionale.
All’avvio del pc, l’unità di rete M: presentava la classica X rossa, che indicava la mancata connessione.

In realtà, cliccandoci sopra, dopo un’attesa di qualche secondo, l’unità viene connessa regolarmente, però questo ritardo nella connessione, impedisce l’avvio corretto del client gestionale, che tenta di aprire, senza riuscirci, gli eseguibili sull’unità M:

Sul questo link, del sito Microsoft ho trovato una possibile soluzione, che nel mio caso si è rivelata efficace:
https://support.microsoft.com/en-us/help/4471218/mapped-network-drive-may-fail-to-reconnect-in-windows-10-version-1809

 

E’ necessario creare due file utilizzando notepad o notepad ++

Creiamo il primo file: MapDrives.cmd, e lo copiamo nella cartella di esecuzione automatica, situata in:

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

***inizio file mapdrives.cmd***

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

***fine file mapdrives.cmd***

 

Creiamo una cartella Scripts e salviamola in C: in modo che il percorso completo sia c:\scripts
Creiamo il secondo file: MapDrives.ps1, e lo copiamo nella cartella C:\Scripts creata in precedenza

***inizio file 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 "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

}

***fine file mapdrives.ps1***

Riavviamo il pc, e l’unità di rete M:  verrà connessa regolarmente, e non ci sarà più la temuta X rossa.