VPN সংযোগের সময় একটি কাজ চালান: ইভেন্ট, পোলিং নাকি শংসাপত্র?
লগঅন স্ক্রিপ্ট টানেল তৈরির আগেই চলে। নেটওয়ার্ক ইভেন্ট ট্রিগার, রিসোর্স পোলিং আর সংরক্ষিত শংসাপত্র—প্রতিটি কী নিশ্চিত করে তা তুলনা করুন।
যে লগঅন স্ক্রিপ্ট একটি ড্রাইভ ম্যাপ করে বা সিঙ্ক কাজ শুরু করে, সেটি টানেলের ঠিকানা পাওয়ার আগেই চলে, তাই এটি নীরবে ব্যর্থ হয় এবং ব্যবহারকারী প্রতি সকালে নিজে হাত দিয়ে ঠিক করেন। Windows অধিকাংশ ক্লায়েন্টের জন্য প্রতি-VPN সংযোগ কলব্যাক দেয় না, তবে নেটওয়ার্ক পরিবর্তন লগ করে, আর সেই রেকর্ড সঠিক মুহূর্তে কাজ শুরু করতে পারে। পছন্দটি ওই রেকর্ডে সাড়া দেওয়া, রিসোর্স পোল করা আর ব্যর্থতাকে দৃশ্যমান করা প্রম্পটটি সরানোর মধ্যে।
তিনটি প্রক্রিয়াকে তারা যা নিশ্চিত করে তার ভিত্তিতে তুলনা করা তাদের সৌন্দর্যের ভিত্তিতে সাজানোর চেয়ে ভালো। প্রতিটি ভিন্নভাবে ব্যর্থ হয়, আর ব্যর্থতার ধরনটাই পরে আপনার সঙ্গে থাকে।
কেন লগঅন খুব আগে চলে
লগঅন ও স্টার্টআপ VPN অ্যাডাপ্টার তার ঠিকানা পাওয়ার আগেই চলে, তাই ওই মুহূর্তে চেষ্টা করা ড্রাইভ ম্যাপিং, অভ্যন্তরীণ URL বা ডেটাবেস সংযোগের কোনো রুটও নেই, রিজলভারও নেই। অনুরোধটি ব্যর্থ হয়, আর সেশনটি এমন অবস্থায় থাকে যা ব্যবহারকারীকে হাতে ঠিক করতে হয়। একই স্ক্রিপ্ট স্টার্টআপ ফোল্ডারে সরালে কিছুই বদলায় না, কারণ ক্রমের সমস্যাটি তার সঙ্গে যায়। ট্রিগারকে সেশন ইভেন্ট নয়, নেটওয়ার্ক পরিবর্তন হতে হবে।
লগঅনে ইচ্ছামতো বিলম্বসহ একটি নির্ধারিত কাজ সমাধানের মতো দেখায়, কিন্তু আসলে একটি অনুমান। এটি দ্রুত লিঙ্কে কাজ করে আর ধীর লিঙ্কে ব্যর্থ হয়, যা নির্ভরযোগ্যতার সবচেয়ে অকেজো ধরন।
তিনটি হুক তুলনা
প্রক্রিয়াগুলো কী পর্যবেক্ষণ করে, কত দ্রুত সাড়া দেয় এবং দিনের পরে পুনঃসংযোগে কী করে—এসবেই আলাদা। সারণিটি তাদের এই তিন দিকেই তুলনা করে, প্রতিটি কত চতুর শোনায় তা নয়।
| Mechanism | Reacts to | Covers a mid-session reconnect | Typical failure |
|---|---|---|---|
| Network profile event | A network connect record | Yes, when the event repeats | Runs on the wrong network |
| Resource poll with backoff | The resource becoming reachable | Yes | Log noise and a wasted window |
| Stored credentials alone | Nothing; it removes a prompt | No | Still fires before the tunnel |
সারণিটি সারি ধরে পড়ুন। ইভেন্ট হুক সবচেয়ে দ্রুত ও সবচেয়ে কোলাহলপূর্ণ, কারণ Windows ক্যাফের Wi-Fi সহ প্রতিটি নেটওয়ার্ক রেকর্ড করে, তাই কাজ করার আগে ক্রিয়াটিকে রিসোর্স যাচাই করতে হবে। পোলিং ধীর কিন্তু আরও নিখুঁত, কারণ শেয়ার বা হোস্টনাম উত্তর দিলে ঠিক তখনই এটি সফল হয়, আর কোন ক্লায়েন্ট ইনস্টল আছে তা জানার দরকার নেই। সংরক্ষিত শংসাপত্র আদৌ প্রতিদ্বন্দ্বী বিকল্প নয়: তারা পাসওয়ার্ড প্রম্পট সরায়, যা লগঅনের সময় ম্যাপিং ব্যর্থ হওয়ার দ্বিতীয় ও স্বাধীন কারণ।
প্রথম দুটির মধ্যে বেছে নেওয়া নির্ভর করে ক্লায়েন্টে ব্যবহারযোগ্য ইভেন্ট আছে কি না। যেখানে আছে, সেখানে ইভেন্ট প্লাস রিসোর্স পরীক্ষাই ভালো ডিফল্ট।
ইভেন্ট ট্রিগারটি সঠিকভাবে তৈরি করুন
রেকর্ডটি Microsoft-Windows-NetworkProfile/Operational লগে থাকে, আর ID 10001 সদ্য সংযুক্ত নেটওয়ার্ক চিহ্নিত করে। ওই লগ, ওই প্রোভাইডার নাম ও ওই শনাক্তকারীকে লক্ষ্য করে একটি ইভেন্টে ট্রিগার দিয়ে কাজটি তৈরি করুন। মেশিন যে নেটওয়ার্কেই যোগ দেবে তা এটি চালাবে, তাই ক্রিয়াটির অনুমান নয়, একটি গার্ড শর্ত দরকার, আর কাজটি ম্যাপ করা ড্রাইভ ছুঁলে তা কেবল ব্যবহারকারী লগঅনে থাকা অবস্থায় চলা উচিত।
গার্ড শর্তটি পরীক্ষা করা উচিত কাজটির আসলে কী দরকার—যেমন শেয়ার পাথ বা সার্ভিস পোর্ট—এবং সেটি নাগালের বাইরে থাকলে নীরবে বেরিয়ে যাওয়া উচিত। অ্যাডাপ্টারের নাম পরীক্ষা যথেষ্ট নয়, কারণ একটি ক্লায়েন্ট একই অ্যাডাপ্টার কয়েকটি প্রোফাইলে পুনরায় ব্যবহার করতে পারে। নীরব প্রস্থান লগ পাঠযোগ্য রাখে এবং যে নেটওয়ার্ক কখনো রিসোর্স দেবে না তার বিরুদ্ধে পুনরায় চেষ্টার ঝড় ঠেকায়।
কাজটি সঠিক মুহূর্তে চলে কি না তা পরীক্ষা করুন
কনফিগারেশন নয়, সময়টাই প্রমাণ করুন। নিচের কমান্ডগুলো কাজের সংজ্ঞা, সাম্প্রতিক নেটওয়ার্ক প্রোফাইল ইভেন্ট এবং কাজটি যে অ্যাকাউন্টে চলে সেই অ্যাকাউন্ট থেকে রিসোর্সে পৌঁছানো যায় কি না তা দেখায়। হাতে চালানোর পরে নয়, সত্যিকারের পুনঃসংযোগের পরে সেগুলো চালান।
schtasks /query /tn "VpnPostConnect" /v /fo LIST
Get-WinEvent -LogName Microsoft-Windows-NetworkProfile/Operational -MaxEvents 10
Test-Path \\fileserver\share
whoami
কোনো নেটওয়ার্ক ইভেন্ট মিলছে না অথচ কাজের ইতিহাসে একটি এন্ট্রি আছে মানে ট্রিগার ভুল, ক্রিয়া নয়। ইভেন্টগুলো দেখা দিলে কিন্তু কাজটি না চললে, কাজটি সম্ভবত এমন অ্যাকাউন্টে চলছে যা রিসোর্স দেখতে পায় না, আর অ্যাকাউন্টের আউটপুটই সূত্র। ম্যাপিং এখনো অনুপস্থিত থাকা অবস্থায় রিসোর্স পরীক্ষা পাস হলে তা সংযোগ নয়, সেশন প্রসঙ্গের দিকে ইশারা করে। ওই তিনটি পর্যবেক্ষণের প্রত্যেকটি আপনাকে ভিন্ন সমাধানে নিয়ে যায়।
প্রতিটি চালনার জন্য ঠিকানা, রিসোর্সের ফলাফল ও পরিণতি নিয়ে এক লাইন লগ লিখুন। পরের ব্যর্থতা তখন দেখাবে কাজটি আগে চেকেছিল, ভুল নেটওয়ার্কে চলেছিল, নাকি একেবারেই চলে নি।