rasdial «qoşulub» deyir. Şəbəkə həqiqətən nə vaxt hazırdır?
Çıxış kodu 0 dialın tamamlandığını bildirir, fayl paylaşımının cavab verdiyini yox. Yerli nəticəni qeyd et, sonra işin asılı olduğu resursu yoxla.
VPN pəncərəsini açıb on saniyə yatan skript təxmin edir və bu təxmin hər iki istiqamətdə səhvdir: ya tunel istifadəyə yararlı olmadan kopyalamanı başladır, ya da iş artıq başlaya biləcəyi halda gözləyir. Nəticələrin heç biri autentifikasiyanın bitdiyini demir. Əmrin öz nəticəsindən istifadə et, sonra xidmətə həqiqətən cavab verə biləcəyi sual ver. Bu iki addımın sırası bütün dizayndır.
Əmr əslində nə bildirir
Quraşdırılmış əmr sətri alətinin başa düşdüyü yerli Windows profili üçün rasdial.exe adlandırılmış girişi dial edir və prosesin çıxış kodunu qaytarır. Bu kod dial cəhdini təsvir edir: sıfır həmin profil üçün bağlantının qurulduğunu, sıfırdan fərqli isə kodun göstərdiyi mərhələdə uğursuz olduğunu bildirir. Onu bir təbəqənin nəticəsi kimi oxu, işin nəticəsi kimi yox.
Nəticə ünvan təyini, özəl DNS, əlavə edilmiş marşrutlar və ya müəyyən serverə çıxış icazəsi haqqında heç nə demir. Bunların hamısı uğurlu dialdan sonra baş verir və hər biri hələ də səhv ola bilər. «Qoşulub» ikonası ilə uğursuz kopyalamanın bu qədər tez-tez birgə görünməsinin səbəbi məhz bu boşluqdur.
Nəticəni hər şeydən əvvəl qeyd et
Profilin işi icra edəcək hesab üçün mövcud olduğunu təsdiqləyərək başla, yalnız sınaq apardığın hesab üçün yox:
Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection
Sonra dial et və kodu dərhal oxu. PowerShell yerli nəticəni $LASTEXITCODE daxilində yalnız növbəti xarici əmr işləyənə qədər saxlayır, ona görə dial ilə yoxlama arasında təsadüfi bir ping oxumaq istədiyin dəyəri məhv edir. Əvvəlcə onu öz dəyişəninə mənimsət, sonra nə edəcəyini qərarlaşdır.
& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }
Kodu məxfi olmayan xəta mətni ilə birlikdə jurnala yaz, çünki çatışmayan giriş, rədd edilmiş kimlik və fasilə fərqli cavablar tələb edir. Cədvəl ümumi nəticələri növbəti addımla əlaqələndirir.
| 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 |
Hazırlıq tunel deyil, resursdur
Dial uğur qazandıqdan sonra işin ehtiyac duyduğu şeyi yoxla. Fayl paylaşımı, API son nöqtəsi və ya verilənlər bazası portu ictimai vebsaytdan daha yaxşı hazırlıq yoxlamasıdır, çünki ictimai sayt istənilən işlək yoldan cavab verir və şəxsi yol haqqında heç nə sübut etmir. Tətbiqin özünün asılı olduğu yoxlamanı seç. Uğurlu TCP bağlantısı marşrutlaşdırma və filtrləmənin açıq olduğunu bildirir və ilk yazma üçün lazım olanların çoxu budur:
Test-NetConnection -ComputerName files.contoso.example -Port 445
Cəhdləri məhdudlaşdır və hansı mərhələnin uğursuz olduğunu qeyd et. Rədd edilmiş kimlik skripti dayandırmalıdır, təkrar cəhd dövrəsini qidalandırmamalıdır; hələ görünməyən DNS adı bir neçə qısa təkrar cəhdə layiqdir; heç vaxt açılmayan port müştəridən yuxarıda olan marşrutlaşdırma və ya siyasət problemidir.
Bağlantı iş başlamazdan əvvəl artıq mövcud idisə, ona toxunma. Açmadığın sessiyanı kəsmək istifadəçinin digər işini pozur, ona görə sessiyanın kimə aid olduğunu və hansı bağlanmanın uyğun olduğunu qeyd et.
Profili işi icra edən hesabla məhdudlaşdır
Planlaşdırılmış tapşırıq öz kimliyi və sessiyası altında işləyir və masaüstündə işləyən profil orada görünməyə bilər. Cədvələ güvənməzdən əvvəl görünmə yoxlamasını və dialı tapşırığın hesabı altında təkrarla. Parolu əmr sətrindən kənarda saxla: arqumentlər digər proseslərə görünür və tez-tez jurnallara düşür.
Yerləşdirmə brauzer sorğusu, smart-kart toxunuşu və ya MFA təsdiqi tələb edirsə, bu qarşılıqlı əlaqə dizaynın bir hissəsidir və klaviş vuruşlarını simulyasiya etməklə avtomatlaşdırıla bilməz. Həmin hal üçün dəstəklənən müştəridən istifadə et və insan addımının baş verməsinə imkan ver.
Yekun skriptin forması qısa qalır: profili yoxla, dial et, kodu oxu, resursu yoxla, sonra işə başla. Hər addım əvvəlkinin cavab verə bilmədiyi suala cavab verir və heç biri yuxuya arxalanmır.