Windows VPN پروفائل فون بک کا ایک اندراج ہے، اور PowerShell اُس اندراج میں ترمیم کا ایک طریقہ ہے۔ اسی فرق سے دو ناکامیاں سامنے آتی ہیں: ایک پیشگی مشترکہ کلید جو سرور تک پہنچتے ہی خراب ہو چکی ہوتی ہے، اور ایک سرور کا پتہ جو بہ نظر ثانی شدہ لگتا ہے مگر وہ نہیں جس پر اگلی سرنگ کال کرے گی۔ پروفائل کو آپ کے چلائے ہوئے حکم کے بجائے محفوظ حالت سمجھیں تو دونوں آسانی سے نظر آتے ہیں۔ یہ وضاحت ترامیم کی ترتیب پر چلتی ہے: بنانا، بدلنا، دائرہ، دوبارہ پڑھنا۔

لفظی کلید سے پروفائل بنائیں

Add-VpnConnection L2TP پیشگی مشترکہ کلید -L2tpPsk کے ذریعے وصول کرتا ہے۔ PowerShell اس تار پر cmdlet کے ملنے سے پہلے ہی کارروائی کرتا ہے، اور دوہرے اقتباس کے اندر ڈالر کا نشان متغیر کا حوالہ شروع کرتا ہے جبکہ backtick escape شروع کرتا ہے۔ اِن میں سے کوئی بھی رکھنے والی کلید چھوٹی یا مختلف حرف کے ساتھ آتی ہے، اور پروفائل غلط راز کے ساتھ کامیابی سے بن جاتا ہے۔

پھر ناکامی IPsec توثیق میں ظاہر ہوتی ہے، جہاں سرنگ اُٹھنے سے انکار کرتی ہے۔ اسی لیے اقتباس کی غلطی کو اکثر سرور کی طرف کا مسئلہ بتایا جاتا ہے: پروفائل موجود ہے، نام درست ہے، اور راز خاموشی سے غلط ہے۔

How you write itWhat PowerShell doesResult
"p@ss$word!42"Expands $word as a variableStored key is truncated
Double-quoted with an escape characterConsumes the next character as an escapeOne character disappears
'p@ss$word!42'Keeps the literal charactersStored key matches the secret

واحد اقتباس ہی حل ہیں، اور اُنہیں پوری قدر کو گھیرنا چاہیے۔ اگر اندراج پہلے ہی خراب کلید کے ساتھ موجود ہے تو -Force اُسے بدل دیتا ہے، یا پروفائل ہٹا کر دوبارہ بنائیں اور پھر نئے کنکشن سے جانچیں:

Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force

اصل راز کو shell کی تاریخ اور مشترکہ اسکرپٹس سے باہر رکھیں۔ چلانے کے وقت منظور شدہ ذخیرے سے پڑھیں اور لفظی قدر کے بجائے متغیر بھیجیں، جس سے اقتباس کا مسئلہ مکمل طور پر ٹل جاتا ہے۔

پتہ بدلیں، پھر دوبارہ جڑیں

Set-VpnConnection خالی جگہ سے الگ کیے گئے پیرامیٹر لیتا ہے، تفویض کی نحو نہیں۔ -ServerAddress = "203.0.113.10" لکھنے سے اضافی ٹوکن جاتا ہے، اور cmdlet یا تو غلطی دیتا ہے یا وہ محفوظ کرتا ہے جو آپ کا ارادہ نہ تھا۔ درست شکل -Name "Office L2TP" -ServerAddress 203.0.113.10 ہے۔

درست نحو کے باوجود تبدیلی پہلے سے اُٹھی سرنگ تک نہیں پہنچتی۔ قائم شدہ کنکشن منقطع ہونے تک اُسی پتے کو رکھتا ہے جس پر کال کی تھی، اس لیے وہی سیشن جانچنا نئی قدر کے بارے میں کچھ ثابت نہیں کرتا۔ منقطع کریں، ترمیم کریں، دوبارہ جڑیں، اور کنکشن کی تفصیلات میں ساتھی کا پتہ تصدیق کریں۔

کچھ خصوصیات موقع پر بدلی نہیں جا سکتیں۔ جب cmdlet انکار کرے تو موجودہ پیرامیٹر لکھ لیں، پروفائل حذف کر کے درست شدہ قدروں کے ساتھ دوبارہ بنائیں، اور سرنگ و توثیق کی اصل ترتیبات رکھیں۔ صرف فون نمبر بدلنے والی اسکرپٹ سب کچھ دوبارہ بنانے کے بجائے RAS API کے ذریعے فون بک کا اندراج تبدیل کر سکتی ہے۔ کوئی بھی راستہ اختیار کریں، بعد میں محفوظ قدروں کی تصدیق کریں، حکم کی خاموشی پر بھروسا نہ کریں۔

جانیں کہ کون سی فون بک میں ترمیم کی

ہر صارف کا پروفائل اُس صارف کی نیٹ ورک کنکشن ڈائریکٹری میں رہتا ہے، اور تمام صارفین کا پروفائل پروگرام ڈیٹا کے درخت کے نیچے مشین بھر کی ڈائریکٹری میں رہتا ہے۔ یہ الگ الگ دائرے کے الگ اندراج ہیں، اور ایک میں ترمیم دوسرے کو اچھوتا چھوڑ دیتی ہے۔

اسی لیے تبدیلی غائب ہوئی محسوس ہو سکتی ہے: اسکرپٹ ایک اکاؤنٹ میں چلی اور جانچ دوسرے میں۔ جب پروفائل مشین کا ہو تو -AllUserConnection استعمال کریں، اور دوبارہ پڑھتے وقت وہی دائرہ جانچیں۔

جانچ سے پہلے پروفائل دوبارہ پڑھیں

Windows سے پوچھیں کہ اُس نے کیا محفوظ کیا، نہ کہ آپ نے کیا بھیجا:

Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod

اُس آؤٹ پٹ کا ارادے سے موازنہ کریں، پھر نیا کنکشن شروع کریں۔ اگر ڈائل ناکام ہو تو پروفائل دوبارہ بدلنے سے پہلے Event Viewer میں RAS کلائنٹ لاگ دیکھیں، کیونکہ لاگ اُس مرحلے کا نام بتاتا ہے جو ناکام ہوا۔

ترمیم کے دوران توثیق کا ڈھانچہ سالم رکھیں۔ جو حکم پتہ بدلتا ہے مگر سرٹیفکیٹ یا EAP ترتیب چھوڑ دیتا ہے وہ ایسی ناکامی پیدا کرتا ہے جو ترمیم سے بے تعلق لگتی ہے، اور چلتی پروفائل پہلے برآمد کر لینا اندازے کے بجائے بحالی کا سامان دے دیتا ہے۔

متعلقہ مضامین