Làm cách nào tôi có thể kết nối với máy chủ Windows bằng Giao diện dòng lệnh? (CLI)


90

Đặc biệt với tùy chọn cài đặt Server Core trong Server 2008 trở lên, kết nối với máy chủ Windows qua một CLIkhả năng ngày càng hữu ích, nếu không phải là một thứ rất phổ biến trong số các quản trị viên Windows.

Thực tế, mọi GUIcông cụ quản lý Windows đều có tùy chọn kết nối với máy tính từ xa, nhưng không có tùy chọn nào như vậy có trong Windows CLI( cmd.exe) tích hợp, điều này mang lại ấn tượng ban đầu rằng điều này có thể không thực hiện được.

Có thể quản lý từ xa hoặc quản trị Windows Server bằng CLI không? Và nếu vậy, có những lựa chọn nào để đạt được điều này?

Câu trả lời:


102

Có một số tùy chọn khá dễ dàng có sẵn để quản lý Windows Server từ xa bằng cách sử dụng một dòng lệnh, bao gồm một vài tùy chọn gốc.

Tùy chọn gốc:

  1. WinRS / WinRM

    • Windows Remote Shell / Management tool là cách dễ nhất để quản lý từ xa máy chủ Windows từ xa trong tiện ích dòng lệnh và như với hầu hết các tiện ích dòng lệnh Windows, ss64 có một trang tốt về các tùy chọn và cú pháp của nó .
    • Mặc dù không được nêu rõ trong tài liệu của Microsoft, nhưng điều này có thể được sử dụng để khởi chạy một thể hiện từ xa cmd.exe, tạo ra một dòng lệnh tương tác trên hệ thống từ xa, thay vì tùy chọn dòng lệnh để thực thi một lệnh trên máy chủ từ xa.
      • Như với: winrs -r:myserver.mydomain.tld cmd
    • Đây cũng là tùy chọn được hỗ trợ nguyên bản có lẽ sẽ quen thuộc nhất với các quản trị viên của các hệ thống khác (* nix BSD, v.v.) chủ yếu CLIdựa trên cơ sở.

  2. PowerShell

  3. Máy tính từ xa

    • Có lẽ không chính xác điều đầu tiên xuất hiện dưới dạng CLItùy chọn Window , nhưng tất nhiên, sử dụng mstsc.exeđể kết nối với máy chủ qua Remote Desktop Protocl ( RDP) không cho phép sử dụng dòng lệnh trên máy chủ từ xa.
    • Việc kết nối với cài đặt Server Core RDPthực sự có thể và sẽ cho giao diện giống như kết nối với bàn điều khiển - một ví dụ của cmd.exe.

Tùy chọn phổ biến, không phải bản địa:

Mặc dù Windows hiện cung cấp một vài tùy chọn riêng để truy cập máy chủ từ xa qua a CLI, nhưng điều này không phải lúc nào cũng đúng, và kết quả là, một số giải pháp bên thứ 3 khá phổ biến đã được tạo ra. Ba đáng chú ý nhất là dưới đây.

  1. Cài đặt SSH trên Windows Server của bạn

    • Nếu bạn chỉ cần có SSH, đó cũng là một tùy chọn và có hướng dẫn về Social.technet về cách cài đặt OpenSSH trên Server 2008.
    • Có lẽ hữu ích nhất cho các quản trị viên của các hệ thống khác (* nix, BSDv.v.) sử dụng nhiều SSHcho mục đích này, mặc dù có những lợi thế cho ngay cả các quản trị viên chỉ có Windows khi có một máy khách giả lập thiết bị đầu cuối (như PuTTY ) lưu trữ một số máy tính mục tiêu và cài đặt tùy chỉnh (hoặc tiêu chuẩn hóa) cho từng loại.

  2. PSExec

    • Tùy chọn ban đầu để thực thi các lệnh từ xa trên hộp Windows thông qua Windows CLI, đây là một phần của bộ SysIternals tuyệt vời . Một trong số rất ít các gói "phải có" cho quản trị viên Windows, các công cụ SysIternals được tôn trọng và sử dụng rộng rãi đến mức SyIternals đã được Microsoft mua lại và các công cụ này hiện đã được Microsoft hỗ trợ chính thức.
    • Cũng giống như với WinRS/ RM, PSExeccó thể được sử dụng để đưa ra các lệnh đơn cho máy chủ từ xa hoặc để khởi chạy một phiên bản tương tác cmd.exetrên máy tính từ xa.
      • Như với: psexec \\myserver.mydomain.tld cmd
    • Cũng như các tùy chọn khác, có những bước đầu tiên phải thực hiện để đảm bảo PSExec thực sự có thể kết nối với máy đích .

  3. Thêm thư mục tiện ích vào máy chủ và lưu trữ giá trị của nó trong biến hệ thống% PATH%

    • Như đã lưu ý trong các bình luận, có rất nhiều chương trình SysIternals tốt có thể được thực thi trên dòng lệnh và nhắm mục tiêu vào một hệ thống từ xa, và điều này đúng với nhiều thứ hơn là chỉ SysIternals.
    • Về cơ bản, hãy gói một gói các tiện ích Windows yêu thích của bạn vào một thư mục mà bạn đẩy tới tất cả các máy chủ của mình và thêm thư mục đó vào %PATH%biến môi trường của các hệ thống của bạn . Cả hai đều dễ dàng thực hiện thông qua GPO.
      • (Tôi bao gồm SysIternals Suite , PuTTY , WinDirStat và một loạt các tập lệnh tùy chỉnh mà tôi thấy mình đang sử dụng lại) vào một thư mục được đẩy đến tất cả các máy chủ của tôi
    • Rõ ràng, điều này hữu ích cho nhiều thứ hơn là chỉ quản lý các hệ thống Windows thông qua CLI, nhưng tôi thấy nó rất hữu ích, tôi nghĩ rằng dù sao nó cũng đáng giá.

6
Đừng quên các PSTools khác, chẳng hạn như PSList, PSKill, v.v. PSExec chỉ là một phần nhỏ trong bộ công cụ đó và hầu hết được sử dụng rất nhiều.
John Gardeniers

4
Tôi cũng sẽ thêm rằng một số tiện ích dòng lệnh như shutdowniisreset(nếu IIS được cài đặt) cho phép một người chỉ định một máy để thực thi và do đó có thể được sử dụng từ xa.
Joshua Drake

1
Tại sao bạn không đề cập đến tính năng Telnet Server?
abatishchev

3
@abatishchev Vì không ai nên chạy máy chủ telnet cho bất cứ điều gì trong thời đại ngày nay.
HoplessN00b

1
Hoạt động tốt để thực thi các lệnh console khi được cấu hình đúng và chạy trong môi trường bảo mật.
abatishchev

5

Chỉ vì mục đích hoàn chỉnh: mặc dù nó có thể không phải là giải pháp tốt nhất vì nhiều lý do, mọi hệ thống Windows đều hỗ trợ dịch vụ Telnet, có thể được kích hoạt từ danh sách tính năng.

Triển khai telnet của Microsoft cũng hỗ trợ xác thực NTLM, do đó, không giống như telnet tiêu chuẩn cho hệ thống Unix, không có mật khẩu văn bản rõ ràng nào được gửi trên mạng khi sử dụng.


máy chủ telnet đã bị xóa trong Windows 10
typelogic

chỉ sử dụng nếu không có cách nào an toàn khác. lưu lượng vẫn phải trải qua một VPN có bảo đảm
mit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.