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 کی منظوری ضروری ہو، تو وہ تعامل ڈیزائن کا حصہ ہے اور کی اسٹروک کی نقل کر کے خودکار نہیں بنایا جا سکتا۔ اس صورت کے لیے معاون کلائنٹ استعمال کریں اور انسانی مرحلہ ہونے دیں۔
آخری اسکرپٹ کی شکل مختصر رہتی ہے: پروفائل جانچیں، ڈائل کریں، کوڈ پڑھیں، وسیلہ جانچیں، پھر کام شروع کریں۔ ہر مرحلہ اس سوال کا جواب دیتا ہے جس کا پچھلا نہیں دے سکتا تھا، اور ان میں سے کوئی نیند پر منحصر نہیں۔