Tentei conseguir isso com minhas habilidades básicas em lote. Aqui está o que eu criei.
Primeiro configure as janelas para iniciar as janelas de pasta como um processo separado (em vez de manter todas as pastas sob o mesmo explorer.exe), isso permite que as pastas sejam fechadas via prompt de comando / scripts em lote.
Emseguida,escrevaessearquivoemloteecoloque-oem**C:\Usuários\Nomedeusuário\AppData\Roaming\Microsoft\Windows\MenuIniciar\Programas\Inicialização**(Porqueissonãoestáemnegrito?)
@echooffstartexplorer"D:\"
:loop
timeout 0
(net use | findstr OK) > nul 2>&1
if errorlevel 1 goto loop
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVELABEL*" /IM explorer.exe
start /wait explorer "G:\"
timeout 0
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVE2LABEL*" /IM explorer.exe
start /wait explorer "F:\"
timeout 0
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVE3LABEL*" /IM explorer.exe
start /wait explorer "H:\"
timeout 0
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVE4LABEL*" /IM explorer.exe
stop
Basta substituir as letras da unidade pelas que se aplicam ao seu sistema e o NETWORKDRIVELABEL pelos nomes das unidades de rede apropriadas. Isto é necessário porque o nome completo do título da janela é "NETWORKDRIVELABEL (\ SHARENAME) (DRIVELETTER)" mas ao invés de escrever um título completo da janela eu simplesmente uso uma estrela (*) para definir que ele deve fechar qualquer processo explorador com um título de janela começando com NETWORKDRIVELABEL.
O que isto faz é tentar abrir o compartilhamento de rede "D: \" com o explorador de arquivos do Windows. Como acontece, uma vez que é um compartilhamento de rede, você recebe o prompt para efetuar login. Depois, um loop é executado onde o programa é executado net use | findstr OK (procurando por "OK" na saída de "net use") e não se move até encontrar um OK (Esta parte presume que você não tenha unidades de rede inicializadas. Não sei como seja mais elaborado com o findstr; não é tão legal quanto o grep do bash).
Em seguida, assim que detectar que uma unidade de rede está conectada corretamente, ela tentará mapear as outras unidades de rede abrindo-as com o explorador e, em seguida, fechando-as.
Eu tive que usar o comando stop no final do arquivo de lote ou ele não terminaria normalmente (esperei pela entrada do usuário).
Consulte aqui se você deseja fazer isso, mas oculte a janela de comando: Como executar um arquivo de lote sem iniciar uma" janela de comando "?