วันพฤหัสบดีที่ 8 กรกฎาคม พ.ศ. 2553

ping

เคล็ด (ไม่ลับ) สำหรับจัดการเครือข่ายด้วยคำสั่งคอมมานด์ไลน์

เป็นที่ทราบกันดีว่า วินโดวส์เอ็กซ์พีทั้งรุ่น Home และ Professional นั้น นับเป็นระบบปฏิบัติการที่ได้รับการกล่าวขานถึงความสามารถในเรื่องการบริหารจัดการเกี่ยวกับระบบเครือข่ายที่เยี่ยมยอด










โดยในระบบปฏิบัติการตัวนี้ทางไมโครซอฟท์ได้บรรจุความสามารถเด่นๆ และฟีเจอร์ทางด้านเน็ตเวิร์คเข้าไปอย่างเต็มเอี๊ยด!!! จนทำให้เจ้าเอ็กซ์พีตัวนี้ทำงานได้อย่างชาญฉลาด เหมาะเป็นอย่างยิ่งสำหรับคนที่ไม่เคยใช้งานโปรแกรมระบบปฏิบัติการใดๆ มาก่อน เพราะวินโดวส์เอ็กซ์พีจะคอยแก้ปัญหาและตัดสินใจแทนผู้ใช้แทบทุกเรื่อง





แต่ก็นั่นแหละครับ ใช่ว่าทุกคนจะพึงพอใจกับความฉลาดของมัน เพราะบางทีมันก็ดูเหมือนจะไม่เชื่อฟังเรา แถมบางทีก็ยังแก้ปัญหาให้เราไม่ได้อีกต่างหาก ครั้นจะเลือกแก้ไขแบบแมนนวลเหมือนตอนใช้วินโดวส์มี ก็ต้องเจอปัญหาความยุ่งยาก เพราะไมโครซอฟท์ได้เปลี่ยนแปลงคำสั่งต่างๆ ที่เราคุ้นเคย หรือไม่ก็ซ่อนความสามารถบางอย่างเอาไว้จนหาแทบไม่เจอ ในบทความนี้ผมจึงขอนำเสนอเรื่องราวของการใช้คำสั่งคอมมานด์ไลน์เพื่อแก้ไขปัญหาทางด้านเครือข่าย ขอบอกว่าเป็นเคล็ด (ไม่ลับ) ที่เหมาะสำหรับมือใหม่ มือเก่า มือปลอม (คนที่พิการมือน่ะครับ) รวมถึงมือเก๋าๆ ที่ยังคงนิยมชมชอบการใช้คำสั่งแบบคอมมานด์ไลน์ หรือแบบที่ต้องพิมพ์คำสั่งเอง เรามาดูกันเลยดีไหมครับ




ก่อนลงมือ




ก่อนอื่นเราต้องเรียกหน้าต่างโปรแกรมสำหรับรับคำสั่ง (Command) ขึ้นมาเสียก่อนนะครับ โดยคลิ้กที่ปุ่ม Start แล้วเลื่อนแถบแสงมาคลิ้กที่รายการ Run จากนั้นจะได้หน้าต่างเล็กๆ สำหรับรับคำสั่งปรากฏขึ้นมา ให้พิมพ์ cmd ดังรูปที่ 1 แล้วกดแป้น Enter หรือเลื่อนเมาส์ไปคลิ้กที่ปุ่ม OK ก็จะได้หน้าต่างดังรูปที่ 2









รูปที่ 1 หน้าต่างป้อนคำสั่ง









รูปที่ 2 หน้าต่างโปรแกรมสำหรับสั่งงาน





ล็อกอิน




เอาละครับเมื่อเราได้เครื่องมือแล้วต่อมาก็หาคำสั่ง หรือโปรแกรมที่สามารถทำงานตามที่เราต้องการ ในวินโดวส์เอ็กซ์พี นั้นเก็บคำสั่งหรือโปรแกรมอรรถประโยชน์ต่างๆ ทั้งหลายไว้ที่ c:windowssystem32 โดยเฉพาะคำสั่งที่เกี่ยวข้องกับการจัดการทางด้านเครือข่ายดังที่เราจะมาทดลองใช้กันในครั้งนี้




จัดการไอพีแอดเดรส



เครื่องคอมพิวเตอร์ที่ต่อเชื่อมกับระบบอินเตอร์เน็ตนั้นจะต้องมีหมายเลขระบุถึงตัวเองอย่างชัดเจนเป็นเอกเทศ ไม่ซ้ำกับเครื่องอื่น ซึ่งเราเรียกว่า หมายเลข IP ในวินโดวส์เอ็กซ์พีนั้นเราสามารถตรวจสอบหมายเลข IP ประจำเครื่องของเราได้โดยคลิ้กขวาที่ My Network Place แล้วเลือก Properties จากนั้นจะได้หน้าต่าง Network Connection (ในกรณีที่ใช้ระบบแลน) จากนั้นให้คลิ้กขวาที่ Network Connection เลือก Status คลิ้กที่แท็บ Support จะได้ดังรูปที่ 3 และหากต้องการดูรายละเอียดเพิ่มเติมให้คลิ้กที่ปุ่ม Detail










รูปที่ 3 หน้าต่างแสดงหมายเลข IP







และถ้าหากการทำงานของระบบเครือข่ายมีปัญหา ให้คลิ้กที่ปุ่ม Repair เพื่อสั่งให้ วินโดวส์เอ็กซ์พี ซ่อมแซมส่วนที่เสียหาย สำหรับการใช้คำสั่งแบบคอมมานด์ไลน์ในการจัดการเกี่ยวกับหมายเลข IP นั้นท่านสามารถทำได้โดยพิมพ์คำสั่ง IPCONFIG ลงในหน้าต่างโปรแกรมสำหรับสั่งงานตามรูปที่ 2 จากนั้นกดแป้น Enter จะได้ดังรูปที่ 4









รูปที่ 4 ผลของคำสั่ง ipconfig







คำสั่ง ipconfig มีรูปแบบการใช้งานและตัวเลือกต่างๆ ให้ใช้งานได้ดังนี้



ipconfig [/? | /all | /renew [adapter] | /release [adapter] | /flushdns | /displaydns |

/registerdns | /showclassid adapter | /setclassid adapter [classid] ]

Options:

/? แสดง help ของคำสั่งนี้

/all แสดงรายละเอียดทั้งหมด

/release ยกเลิกหมายเลข IP ปัจจุบัน

/renew ขอหมายเลข IP ใหม่ ในกรณีที่เน็ตเวิร์คมีปัญหา เราอาจจะลองตรวจสอบได้โดยการใช้คำสั่งนี้ ซึ่งหากคำสั่งนี้ทำงานได้สำเร็จ แสดงว่าปัญหาไม่ได้มาจากระบบเครือข่าย แต่อาจจะเกิดจากซอฟท์แวร์ของเรา

/flushdns ขจัด DNS Resolver ออกจาก cache.

/registerdns ทำการ Refreshes DHCP ทั้งหมด และ registers DNS names ใหม่

/displaydns แสดง DNS Resolver ทั้งหมดที่มีในอยู่ Cache.

/showclassid แสดง class IDs ทั้งหมดที่ DHCP ยอมให้กับการ์ดแลนใบนี้

/setclassid แก้ไข dhcp class id.




ตรวจสอบปัญหาการส่งถ่ายข้อมูลด้วยคำสั่ง Ping



คำสั่ง Ping เป็นคำสั่งพื้นฐานในการตรวจสอบการสื่อสารข้อมูลระหว่างเครื่องส่งและเครื่องรับ โดยจะส่งข้อมูลหรือแพ็คเกจขนาด 32K ไปยังเครื่องผู้รับและจากนั้นก็คอยฟังสัญญาณตอบรับ ซึ่งถ้าหากเครื่องผู้รับนั้นเปิดเครื่องและต่อสายสัญญาณอยู่ก็น่าจะมีการส่งสัญญาณตอบรับ ดังรูปที่ 5










รูปที่ 5 ผลการ Ping





รูปแบบการใช้งานและตัวเลือกต่างๆของคำสั่งมีดังนี้


Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

[-r count] [-s count] [[-j host-list] | [-k host-list]]

[-w timeout] target_name


Options:


-t Ping ไปยัง Host ตามที่ระบุเรื่อยๆ จนกว่าจะสั่งยกเลิกโดยกดแป้น Ctrl-C.และหากต้องการดูสถิติให้กดแป้น Ctrl-Break

-a เปลี่ยนหมายเลข IP Address ของ Host เป็นชื่อแบบตัวอักษร

-n count Ping แบบระบุจำนวน echo ที่จะส่ง

-l size กำหนดขนาด buffer

-f ตั้งค่าไม่ให้แยก flag ใน packet.

-i TTL Ping แบบกำหนด Time To Live โดยกำหนดค่าตั้งแต่ 1-255

-v TOS กำหนดประเภทของบริการ (Type of service)

-r count Ping แบบให้มีการบันทึกเส้นทางและนับจำนวนครั้งในการ hops จนกว่าจะถึงปลายทาง

-s count Ping แบบนับเวลาในการ hop แต่ละครั้ง

-j host-list Loose source route along host-list.

-k host-list Strict source route along host-list.

-w timeout Ping แบบกำหนดเวลารอคอยการตอบรับ



เนื่องจากคำสั่งนี้ เป็นคำสั่งที่มีการส่งแพ็กเกจจากเครื่องผู้ส่งไปยังเซิร์ฟเวอร์ หรือเครื่องปลายทาง และมีตัวเลือก (–t, -n) ที่อาจจะก่อปัญหาได้ เช่น ถ้าผู้ใช้ สั่งปิง โดยใส่ตัวเลือกให้ส่งแพ็คเกจไปเรื่อยๆ จำนวนหลายๆ ครั้งเครื่องเซิร์ฟเวอร์หรือเครื่องปลายทางก็จะต้องคอยส่งสัญญาณตอบกลับแบบไม่รู้จบ (เลยไม่ต้องทำงานอื่นกัน) อาจจะทำให้ระบบเครือข่ายมีปัญหาได้ ดังนั้น ผู้ดูแลระบบบางแห่งจึงตัด หรือสั่งระงับการส่งสัญญาณตอบรับคำสั่ง Ping ออกจากเซอร์วิสของเครื่องเซิร์ฟเวอร์ ดังนั้น จึงทำให้บางทีผลการตรวจสอบระบบเครือข่ายด้วยคำสั่งนี้อาจจะไม่แน่นอนอีกต่อไป





ตรวจสอบและซ่อมแซมเครือข่ายด้วยคำสั่ง Netsh



NetSh เป็นชุดคำสั่ง (script) ที่มีความสามารถสูงมากตัวหนึ่ง แต่ไม่ค่อยมีคนใช้กัน อาจเป็นเพราะหาไม่เจอ หรือไม่รู้จักคำสั่งตัวนี้ การทำงานภายใต้ Netshell ค่อนข้างสะดวกเพราะมีชุดคำสั่งเกี่ยวกับการจัดการระบบเครือข่ายแบบครบวงจร แยกเป็นหมวดหมู่ไว้ชัดเจน ดังนี้




Netsh commands for AAAA

Netsh commands for DHCP

Netsh diagnostic (diag) commands

Netsh commands for Interface IP

Netsh commands for RAS

Netsh commands for Routing

Netsh commands for WINS



ในแต่ละกลุ่มก็จะมีคำสั่งย่อยอีกจำนวนมาก และคำสั่งต่างๆ เหล่านี้เราสามารถนำมาเขียนเป็นสคริปต์หรือเป็นโปรแกรมย่อยๆ ให้ทำงานแบบอัตโนมัติได้ ในที่นี้ผมจะขอยกตัวอย่างการใช้งานคำสั่ง netsh ในกลุ่มคำสั่งย่อย diag เพื่อใช้ในการตรวจสอบ และซ่อมแซมระบบเครือข่ายที่เสียหาย โดยให้พิมพ์ คำสั่ง netsh แล้วกดแป้น Enter จากนั้นตัว prompt ก็จะเปลี่ยนไป netsh>_ พร้อมที่จะรับคำสั่ง ซึ่งถ้าหากเราอยากรู้ว่ามีกลุ่มคำสั่งใดบ้างที่สามารถใช้งานภายใต้ netsh ได้ให้พิมพ์ ? แล้วกดแป้น Enter จะได้ดังรูปที่ 6










รูปที่ 6 กลุ่มคำสั่งใน netsh







จากรูปที่ 6 เราจะพบว่ามีคำสั่ง หรือกลุ่มคำสั่งปรากฏอยู่ทางด้านซ้ายมือ และมีคำอธิบายทางด้านขวามือ ซึ่งจะพบว่าหากเป็นกลุ่มคำสั่ง ที่คำอธิบายจะมีคำว่า change to… เช่น กลุ่มคำสั่ง Diag ดังนั้นเมื่อเราต้องการตรวจสอบเครือข่ายของเรา เราก็ต้องใช้คำสั่งนี้ครับ พิมพ์คำว่า diag แล้วกดแป้น Enter ตัวพร้อมพ์จะเปลี่ยนเป็น netsh diag>_ คำสั่งในกลุ่มนี้มี dump, gui, help, ping ถ้าหากต้องการเรียกหน้าต่างโปรแกรมตรวจสอบเครือข่ายแบบกราฟิก ให้พิมพ์ gui แล้วกด enter จะได้ดังรูปที่ 7









รูปที่ 7 หน้าจอตรวจหาข้อบกพร่องของเครือข่าย







จากรูปที่ 7 จะพบว่าทางด้านขวามือมีรายการให้เลือกสองรายการให้คลิ้ก scan your system ถ้าต้องการให้โปรแกรมตรวจสอบระบบเครือข่ายให้ หรือคลิ้กที่ set scanning options เมื่อต้องการตั้งค่าตัวเลือกในการตรวจสอบระบบ ซึ่งเมื่อคลิ้กที่ scan จะได้ดังรูปที่ 8










รูปที่ 8 โปรแกรมกำลังทำงาน






เมื่อโปรแกรมทำงานเสร็จแล้วจะรายงานผลให้ทราบว่าระบบเครือข่ายของเราเป็นอย่างไรบ้าง ดังรูปที่ 9









รูปที่ 9 ผลการทำงาน







นี่เป็นเพียงตัวอย่างส่วนหนึ่งของการทำงานของคำสั่ง netsh เบื้องต้นเท่านั้นนะครับ อันที่จริงยังมีคำสั่งในหมวดอื่นๆ ที่มีความสามารถในด้านการจัดการเครือข่าย การตั้งค่าต่างๆ การสั่งออนไลน์ ออฟไลน์ และอื่นๆอีกเพียบครับ หากจะเขียนให้อ่านในบทความนี้ทั้งหมดเกรงว่าเนื้อที่กระดาษจะไม่พอครับ เอาเป็นว่าหากท่านใดสนใจก็เมล์มาคุยกันนะครับ อ้อ...เกือบลืมบอกไปครับ หากจะออกจากหมวดคำสั่งโปรแกรมให้พิมพ์ จุดสองจุด (..) แล้วกดแป้น Enter ครับ และหากต้องการเลิกงาน netsh ให้พิมพ์คำสั่ง bye, exit หรือ quit แล้วกดแป้น Enter





บริหารจัดการเครือข่ายด้วยคำสั่ง Net



คำสั่งสุดท้ายที่อยากนำเสนอในบทความนี้ก็คือ net ครับ คำสั่งนี้ใช้ในการบริหารจัดการระบบเครือข่ายได้ดีมากครับ มีรูปแบบ และตัวเลือกในการใช้งานดังนี้ครับ




NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]





การใช้งานก็เพียงพิมพ์คำสั่งตามตัวตัวเลือก เช่นหากต้องการดูว่าในเครือข่ายของเรามีเครื่องคอมพิวเตอร์กี่เครื่อง แต่ละเครื่องชื่ออะไร (เหมือนกับการใช้ My Network Place) ให้พิมพ์ c:>net view (อย่าลืมเว้นวรรค) จะได้ดังรูปที่ 10









รูปที่ 10 หน้าต่าง net view






ล็อกเอาต์



ทั้งหมดนี้เป็นเพียงตัวอย่างคำสั่งที่มีในวินโดวส์เอ็กซ์พี ที่เกี่ยวข้องกับการจัดการเครือข่าย ซึ่งยังเหลืออีกหลายคำสั่งที่ไม่ได้กล่าวถึงเนื่องจากบางคำสั่งมีลักษณะการใช้งานที่ซับซ้อนเกินไป บางคำสั่งอาจจะไม่มีผลโดยตรงกับระบบเครือข่าย ก็เอาเป็นว่าหากท่านสนใจก็สามารถหารายละเอียดเพิ่มเติมได้จากคู่มือหรือ Help ของวินโดวส์เอ็กซ์พี นะครับ แล้วพบกันใหม่สวัสดีครับ





ข้อมูลจาก http://www.arip.co.th