دستور Test-NetConnection در پاورشل [تست اتصال به شبکه]
در دنیایی که روز به روز نقش ارتباطات پررنگ تر می شود، غیرممکن است که نقش اتصالات شبکه ای را در مشاغل و کاربرد های مختلف نادیده بگیریم. پس به همین خاطر، عیب یابی مشکلات شبکه ای و بررسی وضعیت اتصال هم یکی از مهم ترین کارهایی است که باید به عنوان یک کاربر شبکه بلد باشید. چه ایده ای بهتر از اینکه این پروسه را با دستور Test-NetConnection در پاورشل شروع کنید.
Test-NetConnection ابزار قدرتمندی است که گزارشات مفیدی در مورد شبکه ارائه می دهد و با استفاده از آنها می توانید در اسرع وقت نسبت به خطایابی شبکه یا بهینه سازی عملکرد شبکه اقدام کنید.
ما در این آموزش به طور مفصل در مورد سینتکس ها و کاربردهای این ابزار فوق العاده صحبت می کنیم. فقط کافیست نحوه استفاده از این ابزار را یاد بگیرید و بعد ببینید که چقدر بررسی وضعیت شبکه برای شما راحت تر خواهد شد.
دستور Test-NetConnection چیست؟
دستور Test-NetConnection جایگزین پیشرفته تر Ping است که برای تشخیص وضعیت اتصالات شبکه استفاده می شود. حالا شاید با خودتان فکر می کنید که وقتی ping با این همه سابقه، کارایی خود را اثبات کرده است، چرا باید از دستور Test-NetConnection استفاده کنیم.
سؤالتان کاملا منطقی است. با اینکه ping یک دستور بسیار کوتاه و کاربردی است ولی این دستور اتصال شبکه را فقط از طریق ICMP تست می کند. در حالی که ما اکثر مواقع به اطلاعات بیشتری نیاز داریم و برای دستیابی به آنها مجبوریم دستور ping را با tracert و nslookup ترکیب کنیم.
اما دستور Test-NetConnection با ارائه امکانات و خروجی کامل تر از پتانسیل لازم برای جانشینی دستور ping برخوردار است. خروجی این دستور شامل نتایج جستجوی DNS و لیستی از رابط های ip، قوانین IPsec و تایید برقراری اتصال است.
با استفاده از این دستور به راحتی می توانید منبع مشکلات شبکه را پیدا کرده و در اسرع وقت نسبت به حل آنها اقدام کنید.
اگر دائم از مشکلات شبکه ای رنج می برید و آرزوی اتصالات شبکه ای بدون قطعی به دلتان مانده است، یک پیشنهاد ویژه داریم. شما با خرید سرور مجازی (VPS) نه تنها برای پیاده سازی پروژه ها و انجام کارهایی مثل ترید یک همراه عالی خواهید داشت بلکه در اتصال به اینترنت هم هیچ کمبودی حس نخواهید کرد و با هر بار تست اتصالات شبکه ای تابلوی مورد علاقه خود را در خروجی خواهید دید و این یعنی یک انتخاب عالی!
بهتر است بررسی دستور Test-NetConnection سینتکس و پارامترها ادامه دهیم.
سینتکس دستور Test-NetConnection به صورت زیر است و پارامترهای آن هم متناسب با تستی که قرار است انجام دهید، تغییر می کند.
Test-NetConnection
[[-ComputerName] <String>]
[-TraceRoute]
[-Hops <Int32>]
[-InformationLevel <String>]
[<CommonParameters>]
Test-NetConnection
[[-ComputerName] <String>]
[-CommonTCPPort] <String>
[-InformationLevel <String>]
[<CommonParameters>]
Test-NetConnection
[[-ComputerName] <String>]
-Port <Int32>
[-InformationLevel <String>]
[<CommonParameters>]
Test-NetConnection
[[-ComputerName] <String>]
[-DiagnoseRouting]
[-ConstrainSourceAddress <String>]
[-ConstrainInterface <UInt32>]
[-InformationLevel <String>]
[<CommonParameters>]
با اینکه موقع بررسی مثال های کاربردی از دستور Test-NetConnection به طور کامل با هر کدام از این پارامترها آشنا خواهید شد. اما بیایید چند مورد از این پارامترها را بررسی کنیم:
CommonTCPPort
این پارامتر شماره پورت tcp را مشخص می کند و SMB، HTTP، RDP و WINRM مقادیر قابل قبول برای این پورت هستند.
ComputerName
این پارامتر اسم dns یا آدرس ip کامپیوتر مورد نظر را مشخص می کند و از نوع string است.
ConstrainInterface
محدودیت رابطی که قرار است برای تشخیص مسیر اعمال کنید، از طریق این پارامتر مشخص می شود.
ConstrainSourceAddress
محدودیت آدرس منبع که قرار است برای تشخیص مسیر اعمال کنید، از طریق این پارامتر مشخص می شود.
Hops
این پارامتر تعداد هاب هایی که می خواهید در دستور ردیابی مسیر نمایش داده شود را مشخص می کند.
InformationLevel
سطح اطلاعاتی که می خواهید در خروجی داشته باشید، از طریق این پارامتر مشخص می شود. در کل دو سطح اطلاعاتی داریم: Detailed و Quiet.
اگر می خواهید اطلاعات پایه ای در مورد وضعیت شبکه یا همان اتصال (True) یا عدم اتصال (False) داشته باشید و جزئیات برایتان مهم نیست، Quiet را انتخاب کنید. ولی اگر به جزئیات اهمیت می دهید و دوست دارید وضعیت شبکه را به صورت دقیق تر بررسی کنید، Detailed گزینه خوبی برای شماست.
Port
این پارامتر شماره پورت tcp کامپیوتر ریموت را مشخص می کند. در واقع، همان پورتی که cmdlet از آن برای اتصال به کامپیوتر ریموت استفاده می کند.
مثال هایی برای آشنایی با کاربردهای دستور Test-NetConnection
با استفاده از دستور Test-NetConnection می توانید وضعیت شبکه را با سناریوهای مختلف بررسی کنید تا اینکه به اطلاعات مورد نیاز خود دست پیدا کنید.
بررسی وضعیت اتصال شبکه (بدون پارامتر)
Test-NetConnection
با بررسی خروجی این دستور می توانیم ببینیم که به شبکه محلی وصل هستیم؟ اتصال اینترنتی داریم ؟ یا ترجمه یا همان resolve کردن DNS انجام می شود یا نه؟
بررسی اتصال شبکه به یک آدرس ip خاص
درست مثل ping، دستور Test-NetConnection هم برای بررسی وضعیت اتصال به یک سیستم یا در کل آدرس ip خاص از پروتکل ICMP استفاده می کند. آپشنی که برای این کار لازم دارید، ComputerName است:
Test-Connection -ComputerName 8.8.8.8
برای تست وضعیت اتصال به چند آی پی هم می توانید دستور بالا را به صورت زیر اجرا کنید:
Test-Connection -ComputerName 8.8.8.8, 1.1.1.1
اگر سایت خاصی را مدنظر دارید و می خواهید به جای آدرس IP از آدرس سایت استفاده کنید و وضعیت اتصال به آن را بررسی کنید، کافیست دستور Test-NetConnection را به صورت زیر اجرا کنید:
Test-NetConnection -ComputerName www.google.com
در صورت تمایل برای دسترسی به جزئیات بیشتر هم می توانید از پارامتر InformationLevel کمک بگیرید:
Test-NetConnection -ComputerName www.google.com -InformationLevel Detailed
البته پارامترهای دیگری هم هستند که می توانید اعمال کنید تا روال این پروسه را خودتان مشخص کنید:
Test-Connection -ComputerName www.google.com -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256
بررسی وضعیت اتصال به یک پورت خاص از سیستم ریموت
دستور پینگ نمی تواند یک پورت خاص را اسکن کند و وضعیت اتصال به آن را نشان دهد و اینجاست که Test-NetConnection یک قدم جلوتر می رود. به عنوان مثال برای بررسی پورت tcp یک هاست ریموت می توانید متناسب با نوع پورت tcp دستور زیر را اجرا کنید:
Test-NetConnection -ComputerName google.com -CommonTCPPort "Http"
یا اینکه از شماره پورت استفاده کنید:
Test-NetConnection -ComputerName google.com -Port 80
بررسی مسیر از یک PC به یک سرور
برای خطایابی مسیر موردنظر باید از پارامتر DiagnoseRouting کمک بگیرید:
Test-NetConnection -ComputerName google.com -DiagnoseRouting -InformationLevel Detailed
یا اگر می خواهید رابط شبکه را هم در این خطایابی لحاظ کنید، اول با استفاده از Get-NetIPAddress، لیست رابط ها را ببینید و بعد رابط موردنظر را انتخاب کرده و دستور Test-NetConnection را به صورت زیر اجرا کنید:
Test-NetConnection -ComputerName google.com -DiagnoseRouting -ConstrainInterface 12
اجرای Trace Route از یک نقطه پایانی به نقطه پایانی دیگر
این دستور برای کنترل و ردیابی مسیر حرکت بسته ها اجرا می شود و برای خطایابی بسیار مفید است. اگر می خواهید این کار را با Test-NetConnection انجام دهید، کافیست از آپشن TraceRoute استفاده کنید. به عنوان مثال، دستور زیر مسیر بین سیستم شما و گوگل را ردیابی می کند:
Test-NetConnection -ComputerName www.google.com -TraceRoute
اگر می خواهید تعداد هاب را هم خودتان مشخص کنید، باید پارامتر Hobs را هم به دستور بالا اضافه کنید:
Test-NetConnection -ComputerName www.google.com -TraceRoute -Hops 3
سعی کردیم چند مثال کاربردی از این دستور را ارائه دهیم ولی پارامترهای بیشتری هم وجود دارند که می توانید آن ها را به شکل دلخواه خود ترکیب کنید و اطلاعات مورد نیاز خودتان را استخراج کنید.
تحلیل خروجی دستور Test-NetConnection
تا زمانی که نتوانید خروجی را به شکل درست تحلیل کنید، مطمئن باشید که اجرای شکل های مختلفی از دستور Test-NetConnection کمکی به شما نخواهد کرد. پس بیایید نحوه تحلیل خروجی را هم یاد بگیریم.
اول دستور زیر اجرا کنید:
test-netconnection Google.com -InformationLevel "Detailed"
خروجی دستور بالا به صورت زیر است:
Computer-name: اسم کامپیوتر ریموت
RemoteAddress: آدرس آی پی کامپیوتر ریموت
InterfaceAlias: اسم مستعار رابط شبکه
SourceAddress: آدرس آی پی سیستم شما
PingSucceeded: وضعیت اتصال شبکه (True یا False)
PingReplyDetails: زمان محاسبه شده برای RTT
البته این برای سطح Detailed است و اگر سطح Quiet را انتخاب کنید، خروجی حالت خلاصه تری دارد.
حالا اگر از پارامتر Traceroute استفاده کنیم، یک آیتم دیگر هم به خروجی اضافه می شود که مسیر را با هاب ها نشان می دهد که تعداد این هاب ها را هم می توانید با پارامتر hobs مشخص کنید.
همچنین وقتی برای وضعیت اتصال به پورت tcp، شماره پورت یا پارامتر CommonTCPPort را هم به دستور اضافه می کنید، یک مورد دیگر هم به خروجی اضافه می شود که وضعیت اتصال TCP را نشان می دهد و می توانید True یا False باشد.
خروجی دستور Test-NetConnection برای شما بسیار مفید و کارساز خواهد بود به شرط اینکه پارامترهای مناسبی را در دستور لحاظ کنید و تحلیل خروجی را هم به درستی انجام دهید.
حالا که با نحوه استفاده از دستور Test-NetConnection آشنا شدید، بهتر است نحوه ایجاد اسکریپت و زمان بندی تست وضعیت شبکه را هم یاد بگیرید و کاری کنید که تست شبکه به صورت خودکار انجام شود و پروسه خطایابی هم سریع تر و هم راحت تر جلو برود.
کلام آخر
دستور Test-NetConnection یکی از رقبای پروپا قرص پینگ است و به خاطر برخورداری از پارامترهای بیشتر و ارائه جزئیات بیشتر در مورد وضعیت اتصال شبکه، چند قدم جلوتر از پینگ است. اگر نحوه استفاده از این دستور را یاد بگیرید و با ایجاد اسکریپت های مفید و زمان بندی آنها، کاری کنید که کنترل و خطایابی اتصالات شبکه با یک روتین منظمی انجام شوند، مطمئن باشید که اوضاع برای شما خیلی راحت تر خواهد شد.
از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.
سوالات متداول:
آیا جایگزینی برای Test-NetConnection وجود دارد؟
بله دستورات و ابزارهای زیادی وجود دارد که می توانید برای بررسی اتصالات شبکه استفاده کنید و معروف ترین آنها دستور ping است. به غیر از پینگ، جایگزین های محبوب دیگری مثل Tracert ،Telnet و Nmap هم وجود دارند که هر کدام ویژگی ها و قابلیت های خاص خود را دارند.
آیا می توان از دستور Test-NetConnection برای تست اتصال شبکه Wi-Fi استفاده کرد؟
بله برای بررسی اینکه می توانید به وای فای وصل شوید یا نه می توانید از این دستور کمک بگیرید.