Слово диска се појави при пријави и затим се отвори као празна фасцикла, или са црвеним крстом и поруком о недоступном мрежном ресурсу. Дозволе су обично у реду. Догодило се то да је команда за мапирање радила у прозору у којем је VPN клијент постојао, али руте до сервера датотека није било, и Windows је тај неуспех забележио као стање диска. Решење је да престанете да мапирање третирате као нешто што се дешава при пријави и да га третирате као последњи корак низа за повезивање.

Зашто се мапирање извршава прерано

Скрипта за пријаву почиње када почне сесија. VPN клијент који се повеже током пријаве додаје своју временску линију: процес може да ради, виртуелни адаптер може да постоји, а рута до канцеларијске подмреже може још да недостаје. Ова три стања изгледају исто из угла скрипте и само једно од њих ради.

Нека окружења реагују понављањем истог неуспелог реда при свакој пријави, што ствара корисника који је научио да двапут кликне диск и скрипту која никада није успела сама.

Сам диск погоршава ствар. Мапирани диск је објекат сесије, и након што га Windows означи као недоступан, икона може остати покварена дуго након што тунел постане здрав. Зато ручно поновно мапирање ради док скрипта изгледа као да не ради ништа. Сесија памти неуспех, не намеру иза њега.

Статус повезано није путања

Икона VPN-а у системској касети извештава да ли је тунел подигнут. Не говори ништа о томе да ли постоји рута до одређеног сервера, да ли DNS преводи то име у адресу тунела, или да ли вас пушта сопствени заштитни зид сервера.

То су три одвојена квара са истим видљивим исходом, а везивање за икону у касети их спаја у један непоуздан сигнал.

Провера спремности која именује сервер који вам је заиста потребан их разликује, јер не успева док конкретна путања не проради, а не док се неки интерфејс не пријави као повезан.

Вежите се за сервер, не за клијента

Изаберите један домаћин доступан само кроз тунел и сачекајте га пре него што било шта мапирате. Одељак испод повезује сачувани Windows VPN унос, проверава сервер датотека и затим мапира диск.

@echo off
set server=fileserver.corp.example
rasdial "Office VPN" /disconnect
rasdial "Office VPN"
:wait
ping -n 1 -w 1000 %server% >nul || (
  timeout /t 5 /nobreak >nul
  goto wait
)
net use Z: \\%server%\share /persistent:no

Ping је провера спремности, не тест дозвола. Ако је ICMP филтриран на вашој мрежи, проверите уместо тога услугу коју заиста користите: net view \\%server% за брзу проверу, или кратак TCP тест на порт 445 у PowerShell-у. Оба везују оно што је важно.

Додајте ограничен број покушаја. Петља чекања без горње границе претвара покварен тунел у сесију која никада не заврши пријаву, а то је гори позив подршци од слова диска које недостаје.

Учините је поново извршивом и свесном сесије

Извршавајте је у сесији самог корисника. Задатак који ради као SYSTEM ставља диск у потпуно другу сесију, а пријављени корисник никада не види резултат. Тако добијате скрипту која извештава о успеху и радну површину без диска.

Проверите пре мапирања и уклоните само застарели унос. net use Z: /delete враћа грешку када слово није у употреби, и ту грешку је безбедно игнорисати, а не сматрати је разлогом да одустанете од остатка скрипте. Задржите /persistent:no да се неуспели покушај касније не претвори у трајни покушај поновног повезивања.

И не стављајте лозинку у датотеку. rasdial може поново да искористи акредитиве сачуване за VPN унос, а дељење би требало да се аутентификује као пријављени корисник. Ако дељењу заиста требају друге акредитиве, региструјте их једном по кориснику помоћу cmdkey уместо да их уграђујете у batch датотеку која живи на дељењу за пријаву. Свако ко може да чита то дељење може да прочита и лозинку, а то претвара погодност у инцидент.

Поновно извршавање целе скрипте требало би да буде безопасно, јер ће се управо то догодити. Корисници се поново повезују, преносни рачунари се буде, и иста путања кода се извршава поново са другом почетном државом.

Забележите довољно да докажете која половина је закаснила

Запишите временску ознаку, резултат провере спремности и излазни код мапирања у датотеку под корисничким профилом. Када стигне следећи извештај о диску који недостаје, тај дневник одговара на једино важно питање: да ли је тунел стигао касно или је дељење одбило?

Без тога, свако понављање се истражује од нуле, а уобичајени закључак је промена дозвола која ништа не поправља.

Тестирајте низ једном после хладног покретања и једном после спавања. Случај буђења је место где се редослед најчешће крши, јер се сесија наставља пре мреже и скрипта види машину која је пријављена већ сатима.

Повезани чланци