Windows VPN-i açıq saxlayın: kəsim hadisəsində rasdial işə salın
RasClient 20226 və 20227 kəsintini qeyd edir; 631 isə bunu insanın etdiyini bildirir. İlk ikisində rasdial işə salın, bir etimadnamə saxlayın və çıxış kodunu oxuyun.
Windows VPN müştərisi üçün yenidən yığım siyasəti göndərmir, buna görə gecə yarısı düşən bağlantı səhər yeməyində də kəsik qalır. Kəsimi izləyən və rasdial işə salan planlaşdırılmış tapşırıq bu boşluğu üçüncü tərəf müştərisi olmadan bağlayır. Tapşırığın operator kimi, yoxsa dövr kimi davranması üç detala bağlıdır: hansı hadisələri uyğunlaşdırdığı, hansı etimadnaməni görə bildiyi və nəticə ilə nə etdiyi. Üçündən heç biri çətin deyil və hər hansı birinin buraxılması sonsuza qədər yığan bir tapşırıq yaradır.
Niyə taymer səhv tetikdir
Taymer tunel kəsik olsun, olmasın öz cədvəlinə görə yığır. Bu, heç kimə lazım olmayan cəhdlər yaradır və iş sessiyası zamanı edilən cəhd onu poza bilər. Hadisə tetiki yalnız bağlantı vəziyyətini dəyişdikdə işə düşür, bu da daha ucuz və mühakimə etməsi daha asandır. Hadisə həm də səbəbi daşıyır və səbəb şəbəkə nasazlığını qəsdən bağlantını kəsən şəxsdən ayıran şeydir.
Bu fərq faydalı tapşırıqla hər axşam istifadəçi ilə çəkişən tapşırıq arasındakı fərqdir. Bu, həm də yalnız əməliyyatı təsvir edən reseptlərdə adətən çatışmayan hissədir.
Hadisə cütü və basdırılmalı olan biri
Remote Access Service müştərisi həyat dövrü qeydlərini RasClient təminatçısı altında Application jurnalına yazır. 20226 bitən bağlantını, 20227 isə uğursuz cəhdi qeyd edir, buna görə hər ikisi yeni yığmanı əsaslandıra bilər. Tapşırıqdakı hər şey bu iki identifikatorun dəqiq uyğunlaşdırılmasından asılıdır. Onlar illərlə sabit qalıb, buna görə onların üzərində qurulan reseptlər hələ də dövriyyədədir, lakin təminatçının və ya id-lərin adını dəyişən qurulum sorğunun heç nə qaytarmamasına səbəb olur. Hər funksiya yeniləməsindən sonra sübut addımını yenidən işlədin, tapşırığın işə düşməsini dayandırmasını gözləmək əvəzinə.
Bir sonlanmanı istisna etmək lazımdır. Xəta 631 o deməkdir ki, portu istifadəçi kəsib və o anda yenidən yığmaq indicə qəsdən şəbəkə dəyişən şəxslə çəkişməkdir. İstisnanı skriptdə deyil, tetik filtrində yerləşdirin ki, tapşırıq heç başlamasın. O, yalnız bir hadisə id-nə aid olmalıdır, çünki EventData predikatı yalnız adlandırılmış element mövcud olduqda uyğunlaşır və ortaq bənd digər id-in hər hadisəsini səssizcə atardı. Filtri yazmadan əvvəl element adını real qeyddən oxuyun:
Get-WinEvent -LogName Application -MaxEvents 5 -FilterXPath "*[System[Provider[@Name='RasClient'] and EventID=20226]]" | Select-Object -First 1 -ExpandProperty ToXml
XML həmin qeyddəki dəqiq Data adlarını göstərir. ErrorCode adi yazılışdır və başqa bir şey istifadə edən qeyd aşağıdakı filtrdə həmin adın əvəz olunmasını tələb edir.
<QueryList><Query Id="0" Path="Application"><Select Path="Application">*[System[Provider[@Name='RasClient'] and (EventID=20226 or EventID=20227)]] and (EventData[Data[@Name='ErrorCode'] != '631'] or System[EventID=20227])</Select></Query></QueryList>
Bunu tetikin fərdi filtrinə yapışdırın və o, tetik olmadan əvvəl sorğu kimi sübut edin. Eyni XPath PowerShell-dən canlı jurnala qarşı işləyir və bu, tapşırıq tarixçəsi hələ işə qarışmamışken nəyə uyğunlaşdığını görməyin ucuz yoludur.
Get-WinEvent -LogName Application -MaxEvents 40 -FilterXPath "*[System[Provider[@Name='RasClient'] and (EventID=20226 or EventID=20227)]] and (EventData[Data[@Name='ErrorCode'] != '631'] or System[EventID=20227])" | Select-Object TimeCreated,Id,Message
Səssizcə heç nəyə uyğunlaşmayan tetik işləyib uğursuz olan tapşırıqla tam eyni görünür. Hər ikisi «avtomatlaşdırma işləmir» kimi görünür və heç biri hansı yarısının çatışmadığını demir. Əvvəlcə sorğu çıxışını yoxlayın, çünki iki halı bir addımda ayırır.
Yığma uğursuz olur, çünki şifrəni yazacaq heç kim yoxdur
Əməliyyat rasdial bağlantı adı ilə işlədir. Profilin keşlənmiş etimadnaməsi olmadıqda, yığma dərhal uğursuz olur, çünki sorğuya cavab verən heç kim yoxdur. Bu, düzgün tetiklənmiş tapşırığın görünən heç nə etməməsinin ən çox yayılmış səbəbidir, buna görə tetikə toxunmadan əvvəl onu yoxlayın. Əmr sətirindən əl ilə yığmaq etimadnamə problemini planlaşdırma probleminindən ayırır.
Etimadnaməni bir dəfə tapşırığın işləyəcəyi hesab altında saxlayın və o hesabı dizaynın bir hissəsi edin. SYSTEM kimi işləyən tapşırıq sizin interaktiv hesabınız tərəfindən keşlənmiş etimadnaməni oxuya bilmir, başqa biri kimi işləyən tapşırıq da oxuya bilmir. Ad həmçinin profilə dəqiq uyğun olmalıdır, istifadəçi sahəsindəki hər hansı domen prefiksi də daxil olmaqla.
rasdial
rasdial "Office VPN"
(Start-Process rasdial -ArgumentList '"Office VPN"' -Wait -PassThru -NoNewWindow).ExitCode
Birinci əmr Windows-un bildiyi adları sadalayır. İkincisi keşlənmiş etimadnamə ilə ad üzrə yığır, üçüncüsü isə PowerShell əməliyyatının istifadə etməli olduğu formadır, çünki gözləyir və tapşırığın qeyd edə biləcəyi dəyər qaytarır.
Pəncərə yerinə çıxış kodunu oxuyun
Prosesi gözləmədən başladan tapşırıq proses mövcud olan kimi uğur bildirir. Bir saniyə sonra uğursuz ola bilən yığma üçün bu hökm dəyərsizdir. Çıxış kodunu gözləmək əməliyyatı həqiqi nəticəyə çevirir. Tapşırıq tarixçəsi təkbaşına yalnız prosesin başladığını göstərir, tunelin qalxdığını heç vaxt göstərmir.
Dəyəri hər işə düşmədə zaman damğası ilə qeyd edin. Kəsintidən sonra bir uğursuzluq normaldır, eyni kodla ardıcıl üç uğursuzluq isə şəbəkəyə deyil, etimadnaməyə və ya profilə işarə edir. Tarixçəni oxumağa dəyər edən məhz bu nümunədir.
Sığorta kimi qısa təkrar intervalı əlavə edin və onun hadisə tetiki ilə necə qarşılıqlı təsir etdiyini açıq deyin. Beş dəqiqə ərzində hər dəqiqə təkrar, internet tunellə birlikdə qayıtdıqda ikinci cəhdi təmin edir və Parametrlər altında «Tapşırıq artıq işləyirsə, aşağıdakı qayda tətbiq olunur» zamanı tapşırıq «Yeni nüsxə başlatma» istəyir ki, təkrar hələ davam edən yığmanın üzərinə düşməsin. Bu parametr olmadan iki rasdial prosesi eyni port uğrunda yarışa bilər və ikincisi heç bir faydalı səbəb olmadan uğursuz olur.
Bərpa yolunu sübut edin
Hər iki istiqaməti qəsdən sınayın. Əl ilə bağlantını kəsin və heç bir yenidən yığmanın baş vermədiyini təsdiqləyin, sonra şəbəkə adapterini söndürün və keçid qayıtdıqda tapşırığın işə düşdüyünü təsdiqləyin. Bu iki sınaq basdırma qaydasını və həqiqi uğursuzluq halını əhatə edir və başqa heç nə etmir.
Sonra bağlantı ikonası yerinə tapşırıq tarixçəsini oxuyun. Tarixçə tapşırığın nə vaxt işlədiyini, hansı hesabdan istifadə etdiyini və əməliyyatın nə qaytardığını qeyd edir və eyni maşın gələn ay yenidən düşəndə lazım olan sübut budur.