rasdial ამბობს, რომ დაკავშირებულია. როდის არის ქსელი ნამდვილად მზად?
გასვლის კოდი 0 ნიშნავს, რომ აკრეფა დასრულდა და არა ის, რომ ფაილის გაზიარება პასუხობს. ჩაწერეთ მშობლიური შედეგი, შემდეგ შეამოწმეთ ის რესურსი, რომელზეც სამუშაოა დამოკიდებული.
სკრიპტი, რომელიც VPN-ის ფანჯარას ხსნის და შემდეგ ათი წამი სძინავს, ვარაუდობს და ეს ვარაუდი ორივე მიმართულებით მცდარია: ან კოპირებას იწყებს მანამ, სანამ გვირაბი გამოსაყენებელი გახდება, ან ელოდება მას შემდეგ, რაც სამუშაო უკვე შეიძლებოდა დაწყებულიყო. არც ერთი შედეგი არ ამბობს, დასრულდა თუ არა აუთენტიფიკაცია. გამოიყენეთ თავად ბრძანების შედეგი, შემდეგ სერვისს დაუსვით შეკითხვა, რომელზეც ის ნამდვილად შეძლებს პასუხის გაცემას. ამ ორი ნაბიჯის რიგი მთელი დიზაინია.
რას აცხადებს ბრძანება სინამდვილეში
მშობლიური Windows პროფილისთვის, რომელსაც დაყენებული ბრძანების ხაზის ხელსაწყო ესმის, rasdial.exe აკრეფს დასახელებულ ჩანაწერს და აბრუნებს პროცესის გასვლის კოდს. ეს კოდი აღწერს აკრეფის მცდელობას: ნული ნიშნავს, რომ კავშირი დამყარდა ამ პროფილისთვის, ხოლო არანული — რომ ის ვერ მოხერხდა იმ ეტაპზე, რომელსაც კოდი მიუთითებს. წაიკითხეთ ის ერთი ფენის შედეგად და არა სამუშაოს შედეგად.
შედეგი არაფერს ამბობს მისამართის მინიჭებაზე, კერძო DNS-ზე, დამატებულ მარშრუტებზე ან კონკრეტულ სერვერზე მიღწევის ნებართვაზე. ეს ყველაფერი ხდება წარმატებული აკრეფის შემდეგ და რომელიმე მათგანი კვლავ შეიძლება იყოს არასწორი. სწორედ ეს უფსკრულია მიზეზი, რატომ ხვდება დაკავშირების ხატულა და ჩავარდნილი კოპირება ასე ხშირად ერთად.
ჩაწერეთ შედეგი, სანამ სხვა რამ დაიწყება
დაიწყეთ იმის დადასტურებით, რომ პროფილი არსებობს იმ ანგარიშისთვის, რომელიც სამუშაოს შეასრულებს და არა მხოლოდ იმ ანგარიშისთვის, რომლითაც ტესტავთ:
Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection
შემდეგ აკრიფეთ და მაშინვე წაიკითხეთ კოდი. PowerShell მშობლიურ შედეგს $LASTEXITCODE-ში ინახავს მხოლოდ შემდეგი გარე ბრძანების გაშვებამდე, ამიტომ აკრეფასა და შემოწმებას შორის შემთხვევით მოხვედრილი ping ანადგურებს იმ მნიშვნელობას, რომლის წაკითხვაც გსურდათ. ჯერ თქვენს ცვლადს მიაკუთვნეთ, შემდეგ გადაწყვიტეთ რა გააკეთოთ.
& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }
ჩაწერეთ კოდი არასაიდუმლო შეცდომის ტექსტთან ერთად, რადგან დაკარგული ჩანაწერი, უარყოფილი რწმუნებები და ვადის გასვლა სხვადასხვა პასუხს მოითხოვს. ცხრილი ჩვეულ შედეგებს შემდეგ ნაბიჯს უკავშირებს.
| Result | What it indicates | Next step |
|---|---|---|
| 0 | The dial completed | Probe the resource, do not start writing yet |
| 691 | The credential or authentication method was rejected | Fix the account or method, do not retry in a loop |
| 623 | The named entry was not found | Fix the profile name or its scope |
| Other non-zero | Transport, timeout or adapter failure | Read the message, then check the path |
მზადყოფნა რესურსია და არა გვირაბი
როცა აკრეფა წარმატებით დასრულდება, შეამოწმეთ ის, რაც სამუშაოს სჭირდება. გაზიარება, API-ის ბოლო წერტილი ან მონაცემთა ბაზის პორტი უკეთესი მზადყოფნის შემოწმებაა, ვიდრე საჯარო ვებსაიტი, რადგან საჯარო საიტი ნებისმიერი მოქმედი გზით პასუხობს და კერძო გზაზე არაფერს ამტკიცებს. აირჩიეთ ის შემოწმება, რომელზეც თავად აპლიკაციაა დამოკიდებული. წარმატებული TCP კავშირი გეუბნებათ, რომ მარშრუტიზაცია და ფილტრაცია ღიაა და ეს არის უმეტესობა იმისა, რაც პირველ ჩაწერას სჭირდება:
Test-NetConnection -ComputerName files.contoso.example -Port 445
შეზღუდეთ მცდელობები და ჩაწერეთ რომელი ეტაპი ჩავარდა. უარყოფილმა რწმუნებებმა სკრიპტი უნდა გააჩეროს და არა განმეორებითი ცდის ციკლი გამოკვებოს; DNS სახელი, რომელიც ჯერ არ გამოჩენილა, რამდენიმე მოკლე გამეორებას იმსახურებს; პორტი, რომელიც არასდროს იხსნება, კლიენტის ზემოთ მდებარე მარშრუტიზაციის ან პოლიტიკის პრობლემაა.
სადაც კავშირი სამუშაოს დაწყებამდე უკვე არსებობდა, მიატოვეთ ის. სესიის გათიშვა, რომელიც თქვენ არ გახსენით, არღვევს მომხმარებლის სხვა სამუშაოს, ამიტომ ჩაწერეთ ვის ეკუთვნის სესია და როგორი დახურვაა შესაბამისი.
შეზღუდეთ პროფილი სამუშაოს შემსრულებელი ანგარიშით
დაგეგმილი დავალება მუშაობს საკუთარი იდენტობითა და სესიით და თქვენს სამუშაო მაგიდაზე მომუშავე პროფილი იქ შეიძლება უხილავი იყოს. გაიმეორეთ ხილვადობის შემოწმება და აკრეფა დავალების ანგარიშის ქვეშ, სანამ განრიგს ენდობით. პაროლი შეინახეთ ბრძანების ხაზისგან მოშორებით: არგუმენტები სხვა პროცესებისთვის ხილვადია და ხშირად ჟურნალებში ხვდება.
თუ განლაგება მოითხოვს ბრაუზერის მოთხოვნას, ჭკვიანი ბარათის შეხებას ან MFA-ს დადასტურებას, ეს ურთიერთქმედება დიზაინის ნაწილია და მისი ავტომატიზაცია კლავიშების დაჭერის იმიტაციით შეუძლებელია. გამოიყენეთ მხარდაჭერილი კლიენტი ამ შემთხვევისთვის და მიეცით ადამიანურ ნაბიჯს ადგილი.
საბოლოო სკრიპტის ფორმა მოკლე რჩება: შეამოწმეთ პროფილი, აკრიფეთ, წაიკითხეთ კოდი, შეამოწმეთ რესურსი, შემდეგ დაიწყეთ სამუშაო. ყოველი ნაბიჯი პასუხობს კითხვას, რომელზეც წინამორბედი ვერ უპასუხა და არც ერთი მათგანი არ ეყრდნობა ძილს.