დისკის ასო ჩნდება შესვლისას და შემდეგ იხსნება როგორც ცარიელი საქაღალდე, ან წითელი ჯვრით და შეტყობინებით მიუწვდომელი ქსელური რესურსის შესახებ. ნებართვები ჩვეულებრივ რიგშია. მოხდა ის, რომ დამაგრების ბრძანება გაეშვა იმ ფანჯარაში, როცა VPN კლიენტი არსებობდა, მაგრამ ფაილურ სერვერამდე მარშრუტი არ იყო, და Windows-მა ეს წარუმატებლობა დისკის მდგომარეობად ჩაწერა. გადაწყვეტაა შეწყვიტოთ დამაგრების ისე განხილვა, თითქოს ის შესვლისას ხდება, და განიხილოთ ის კავშირის მიმდევრობის ბოლო ნაბიჯად.

რატომ სრულდება დამაგრება ძალიან ადრე

შესვლის სკრიპტი იწყება მაშინ, როცა იწყება სესია. VPN კლიენტი, რომელიც შესვლის დროს უკავშირდება, თავის დროის ხაზს ამატებს ზემოდან: პროცესი შეიძლება მუშაობდეს, ვირტუალური ადაპტერი შეიძლება არსებობდეს, და ოფისის ქვექსელამდე მარშრუტი შეიძლება ჯერ კიდევ აკლდეს. ეს სამი მდგომარეობა სკრიპტის თვალთახედვით ერთნაირად გამოიყურება და მათგან მხოლოდ ერთი მუშაობს.

ზოგი გარემო პასუხობს იმავე წარუმატებელი ხაზის გამეორებით ყოველ შესვლაზე, რაც ქმნის მომხმარებელს, რომელმაც ისწავლა დისკზე ორჯერ დაწკაპუნება, და სკრიპტს, რომელსაც არასდროს გაუმარჯვია დამოუკიდებლად.

თავად დისკი ამძიმებს საქმეს. დამაგრებული დისკი სესიის ობიექტია და მას შემდეგ, რაც Windows-მა ის მიუწვდომლად მონიშნა, ხატულა შეიძლება გატეხილი დარჩეს გვირაბის გამართულობიდან დიდი ხნის შემდეგაც. ამიტომ ხელით ხელახალი დამაგრება მუშაობს, მაშინ როცა სკრიპტი თითქოს არაფერს აკეთებს. სესია იმახსოვრებს წარუმატებლობას და არა მის უკან არსებულ განზრახვას.

დაკავშირებული სტატუსი მარშრუტი არ არის

სისტემური უჯრის VPN ხატულა გვატყობინებს, აწეულია თუ არა გვირაბი. ის არაფერს ამბობს იმაზე, არსებობს თუ არა მარშრუტი კონკრეტულ სერვერამდე, ხსნის თუ არა DNS იმ სახელს გვირაბის მისამართად, ან იღებს თუ არა თავად სერვერის firewall თქვენ.

ეს სამი ცალკეული წარუმატებლობაა ერთი და იმავე ხილული შედეგით, და უჯრის ხატულაზე დაყრდნობა მათ ერთ არასანდო სიგნალად ადნობს.

მზადყოფნის შემოწმება, რომელიც ასახელებს თქვენთვის ნამდვილად საჭირო სერვერს განასხვავებს მათ, რადგან ის მარცხდება მანამ, სანამ კონკრეტული გზა იმუშავებს, და არა მანამ, სანამ რომელიმე ინტერფეისი თავს დაკავშირებულად გამოაცხადებს.

სერვერზე დაამოკიდეთ, არა კლიენტზე

აირჩიეთ ერთი ჰოსტი, რომელიც მხოლოდ გვირაბის გავლითაა ხელმისაწვდომი, და დაელოდეთ მას სანამ რამეს დაამაგრებთ. ქვემოთ მოცემული ფრაგმენტი უკავშირდება შენახულ 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 ფაილში, რომელიც შესვლის ზიარებაზე ცხოვრობს. ვისაც შეუძლია ამ ზიარების წაკითხვა, შეუძლია პაროლის წაკითხვაც, და ეს მოხერხებულობას ინციდენტად აქცევს.

მთლიანი სკრიპტის ხელახლა გაშვება უვნებელი უნდა იყოს, რადგან ზუსტად ეს მოხდება. მომხმარებლები ხელახლა უკავშირდებიან, ლეპტოპები იღვიძებენ, და იგივე კოდის გზა ისევ მუშაობს სხვა საწყისი მდგომარეობით.

ჩაწერეთ საკმარისი, რომ დაამტკიცოთ რომელი ნახევარი დააგვიანდა

ჩაწერეთ დროის ნიშა, მზადყოფნის შემოწმების შედეგი და დამაგრების გამოსვლის კოდი ფაილში მომხმარებლის პროფილის ქვეშ. როცა მოვა შემდეგი შეტყობინება დაკარგული დისკის შესახებ, ეს ჟურნალი უპასუხებს ერთადერთ მნიშვნელოვან კითხვას: გვირაბი დაგვიანებით მოვიდა, თუ ზიარებამ უარი თქვა?

ამის გარეშე ყოველი გამეორება ნულიდან იკვლევა, და ჩვეულებრივი დასკვნაა ნებართვების ცვლილება, რომელიც არაფერს ასწორებს.

შეამოწმეთ მიმდევრობა ერთხელ ცივი ჩართვიდან და ერთხელ ძილიდან. გაღვიძების შემთხვევაა ის ადგილი, სადაც თანმიმდევრობა ყველაზე ხშირად ირღვევა, რადგან სესია ქსელამდე აღდგება და სკრიპტი ხედავს მანქანას, რომელიც საათების წინ შესულია.

დაკავშირებული სტატიები