ฉันจะเชื่อมต่อกับเซิร์ฟเวอร์ Windows โดยใช้ Command Line Interface ได้อย่างไร (CLI)


90

โดยเฉพาะอย่างยิ่งเมื่อมีตัวเลือกในการติดตั้งServer Coreใน Server 2008 ขึ้นไปการเชื่อมต่อกับเซิร์ฟเวอร์ Windows บน a CLIนั้นมีความสามารถที่มีประโยชน์มากขึ้นถ้าไม่ใช่ผู้ดูแลระบบ Windows ที่แพร่หลายมาก

GUIเครื่องมือการจัดการWindows ทุกตัวมีตัวเลือกในการเชื่อมต่อกับคอมพิวเตอร์ระยะไกล แต่ไม่มีตัวเลือกดังกล่าวอยู่ใน Windows ในตัวCLI( cmd.exe) ซึ่งให้การแสดงผลครั้งแรกว่าอาจเป็นไปไม่ได้

เป็นไปได้ที่จะจัดการจากระยะไกลหรือจัดการ Windows Server โดยใช้ CLI หรือไม่? และถ้าเป็นเช่นนั้นมีทางเลือกอะไรบ้างในการบรรลุเป้าหมายนี้?

คำตอบ:


102

มีตัวเลือกที่ค่อนข้างง่ายอยู่หลายตัวสำหรับการจัดการ Windows Server จากระยะไกลโดยใช้บรรทัดคำสั่งรวมถึงตัวเลือกเนทีฟบางตัว

ตัวเลือกพื้นเมือง:

  1. WinRS / WinRM

    • เครื่องมือเชลล์ระยะไกล / การจัดการ Windows เป็นวิธีที่ง่ายที่สุดในการจัดการจากระยะไกลเซิร์ฟเวอร์ Windows ระยะไกลในยูทิลิตี้บรรทัดคำสั่งและเช่นเดียวกับส่วนใหญ่สาธารณูปโภคบรรทัดคำสั่งของ Windows, ss64 มีหน้าที่ดีในการเลือกและไวยากรณ์
    • แม้ว่าจะไม่ได้ระบุไว้อย่างชัดเจนในเอกสารของ Microsoft สิ่งนี้สามารถใช้เพื่อเปิดใช้อินสแตนซ์ระยะไกลcmd.exeซึ่งสร้างบรรทัดคำสั่งแบบโต้ตอบบนระบบระยะไกลแทนที่จะเป็นตัวเลือกบรรทัดคำสั่งเพื่อดำเนินการคำสั่งเดียวบนเซิร์ฟเวอร์ระยะไกล
      • เช่นเดียวกับ: winrs -r:myserver.mydomain.tld cmd
    • นอกจากนี้ยังเป็นตัวเลือกที่ได้รับการสนับสนุนโดยกำเนิดที่อาจจะเป็นส่วนใหญ่คุ้นเคยกับผู้บริหารของระบบอื่น ๆ (* ระวัง, BSDฯลฯ ) ที่ส่วนใหญ่จะมีCLIผลกระทบอย่างร้ายแรง

  2. PowerShell

    • หวังว่าPowerShellไม่จำเป็นต้องมีการแนะนำและสามารถใช้ในการจัดการคอมพิวเตอร์ระยะไกลจากการCLIใช้WMI(Windows Management Instrumentation)
    • PowerShell remotingอนุญาตให้เรียกใช้งานสคริปต์ Powershell และคำสั่งบนคอมพิวเตอร์ระยะไกล
    • มีจำนวนของทรัพยากรที่ดีเกี่ยวกับการใช้WMI+ PowerShellสำหรับการจัดการระยะไกลเช่นบล็อก Scripting ผู้ชายที่MSDN WMI อ้างอิงและss64.com ซึ่งมีดัชนีของคำสั่ง

  3. เดสก์ท็อประยะไกล

    • อาจไม่ใช่สิ่งแรกที่นึกได้ว่าเป็นCLIตัวเลือกWindow แต่แน่นอนว่าการใช้mstsc.exeเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน Remote Desktop Protocl ( RDP) จะทำให้สามารถใช้บรรทัดคำสั่งบนเซิร์ฟเวอร์ระยะไกลได้
    • การเชื่อมต่อกับการติดตั้งเซิร์ฟเวอร์หลักมากกว่าRDPเป็นไปได้จริงและจะให้อินเตอร์เฟซเดียวกันการเชื่อมต่อกับคอนโซล - cmd.exeตัวอย่างของ

ยอดนิยมตัวเลือกที่ไม่ใช่เจ้าของภาษา:

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

  1. ติดตั้งSSHบน Windows Server ของคุณ

    • หากคุณเพียงแค่ต้องมีSSHนั่นคือตัวเลือกด้วยและมีคำแนะนำเกี่ยวกับ social.technet สำหรับวิธีการติดตั้ง OpenSSH บน Server 2008
    • อาจเป็นประโยชน์มากที่สุดสำหรับผู้ดูแลระบบของระบบอื่น ๆ (* ระวัง, BSDฯลฯ ) ที่ใช้งานหนักSSHสำหรับวัตถุประสงค์นี้แม้ว่าจะมีข้อดีสำหรับผู้ดูแลระบบ Windows เท่านั้นที่มีไคลเอ็นต์เทอร์มินัลอีมูเลเตอร์เดียว (เช่นPuTTY ) จัดเก็บจำนวน คอมพิวเตอร์เป้าหมายและการตั้งค่าแบบกำหนดเอง (หรือมาตรฐาน) สำหรับแต่ละเครื่อง

  2. PSExec

    • ตัวเลือกที่เป็นต้นฉบับสำหรับการรันคำสั่งจากระยะไกลในกล่อง Windows ผ่านหน้าต่างCLIนี้เป็นส่วนหนึ่งของที่ดีเยี่ยมชุด SysInternals หนึ่งในไม่กี่แพคเกจ "ต้องมี" สำหรับผู้ดูแลระบบ Windows เครื่องมือ SysInternals ได้รับการยอมรับอย่างกว้างขวางและใช้งานโดย Microsoft ซื้อ Microsoft SyInternals และเครื่องมือต่าง ๆ ได้รับการสนับสนุนอย่างเป็นทางการจาก Microsoft
    • เช่นเดียวกับWinRS/ RM, PSExecสามารถใช้ในการออกคำสั่งเดียวกับเซิร์ฟเวอร์ระยะไกลหรือจะเปิดตัวเช่นการโต้ตอบของcmd.exeบนคอมพิวเตอร์ระยะไกล
      • เช่นเดียวกับ: psexec \\myserver.mydomain.tld cmd
    • เช่นเดียวกับตัวเลือกอื่น ๆ มีขั้นตอนหนึ่งที่ต้องทำก่อนเพื่อให้แน่ใจว่าPSExec สามารถเชื่อมต่อกับเครื่องเป้าหมายได้จริง

  3. เพิ่มโฟลเดอร์ยูทิลิตี้ไปยังเซิร์ฟเวอร์และเก็บค่าไว้ในตัวแปรระบบ% PATH%

    • ดังที่ได้กล่าวไว้ในความคิดเห็นมีโปรแกรม SysInternals ที่ดีจำนวนมากที่สามารถดำเนินการบนบรรทัดคำสั่งและกำหนดเป้าหมายที่ระบบระยะไกลและนี่เป็นความจริงมากกว่า SysInternals
    • โดยทั่วไปแพคเกจขึ้นกำของสาธารณูปโภคของ Windows ที่คุณชื่นชอบลงในโฟลเดอร์ที่คุณผลักดันไปยังเซิร์ฟเวอร์ของคุณทั้งหมดและเพิ่มโฟลเดอร์นั้นไปยัง%PATH%ตัวแปรด้านสิ่งแวดล้อมของระบบของคุณ GPOทั้งสองจะทำได้อย่างง่ายดายผ่าน
      • (ฉันรวมSysInternals Suite , PuTTY , WinDirStatและสคริปต์ที่กำหนดเองมากมายที่ฉันพบว่าฉันนำมาใช้ใหม่) ลงในโฟลเดอร์ที่ถูกพุชไปยังเซิร์ฟเวอร์ทั้งหมดของฉัน
    • เห็นได้ชัดว่านี่มีประโยชน์มากกว่าการจัดการระบบ Windows ผ่านCLIแต่ฉันคิดว่ามันมีประโยชน์มากฉันคิดว่ามันคุ้มค่า

6
อย่าลืม PSTools อื่น ๆ เช่น PSList, PSKill และอื่น ๆ PSExec เป็นเพียงส่วนเล็ก ๆ ของชุดเครื่องมือนั้น
John Gardeniers

4
ฉันจะเพิ่มยูทิลิตี้บรรทัดคำสั่งหลายอย่างเช่นshutdownและiisreset(หากมีการติดตั้ง IIS) ที่อนุญาตให้หนึ่งระบุเครื่องที่จะดำเนินการและสามารถใช้จากระยะไกลได้
Joshua Drake

1
ทำไมคุณไม่พูดถึงคุณสมบัติ Telnet Server
abatishchev

3
@abatishchev เพราะไม่มีใครควรใช้เซิร์ฟเวอร์ telnet เพื่ออะไรในยุคนี้
HopelessN00b

1
ทำงานได้ดีในการเรียกใช้คำสั่งคอนโซลเมื่อกำหนดค่าอย่างถูกต้องและทำงานในสภาพแวดล้อมที่ปลอดภัย
abatishchev

5

เพียงเพื่อความสมบูรณ์: แม้ว่ามันอาจจะไม่ใช่ทางออกที่ดีที่สุดด้วยเหตุผลต่าง ๆ แต่ทุกระบบ Windows รองรับบริการ Telnet ซึ่งสามารถเปิดใช้งานได้จากรายการคุณสมบัติ

การติดตั้ง telnet ของ Microsoft ยังรองรับการรับรองความถูกต้องของ NTLM ซึ่งต่างจาก telnet มาตรฐานไปยังระบบ Unix จะไม่มีการส่งรหัสผ่านแบบข้อความที่ชัดเจนในเครือข่ายเมื่อใช้งาน


เซิร์ฟเวอร์ telnet ถูกลบออกใน Windows 10
typelogic

ใช้สิ่งนี้ก็ต่อเมื่อไม่มีวิธีที่ปลอดภัยอื่น ๆ การจราจรควรยังคงผ่าน VPN ที่ปลอดภัย
mit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.