Skip to main content

Làm thế nào để chạy lệnh PowerShell trên máy tính từ xa

Làm thế nào để chạy lệnh PowerShell trên máy tính từ xa

Geoffrey Carr

PowerShell Remoting cho phép bạn chạy các lệnh PowerShell hoặc truy cập các phiên PowerShell đầy đủ trên các hệ thống Windows từ xa. Nó tương tự như SSH để truy cập các thiết bị đầu cuối từ xa trên các hệ điều hành khác.

PowerShell được khóa xuống theo mặc định, vì vậy bạn sẽ phải bật PowerShell Remoting trước khi sử dụng. Quá trình thiết lập này phức tạp hơn một chút nếu bạn đang sử dụng nhóm làm việc thay vì tên miền — ví dụ: trên mạng gia đình — nhưng chúng tôi sẽ hướng dẫn bạn qua nó.

Kích hoạt tính năng PowerShell Remoting trên PC mà bạn muốn truy cập từ xa

Bước đầu tiên của bạn là bật PowerShell Remoting trên PC mà bạn muốn thực hiện kết nối từ xa. Trên PC đó, bạn cần mở PowerShell với các đặc quyền quản trị.

Trong Windows 10, nhấn Windows + X và sau đó chọn PowerShell (Quản trị) từ menu Power User.

Trong Windows 7 hoặc 8, nhấn Start và sau đó nhập “powershell.” Nhấp chuột phải vào kết quả và chọn “Run as administrator”.

Trong cửa sổ PowerShell, gõ lệnh sau (tên của PowerShell cho lệnh) và sau đó nhấn Enter:

Enable-PSRemoting -Force

Lệnh này bắt đầu dịch vụ WinRM, thiết lập nó để bắt đầu tự động với hệ thống của bạn và tạo ra một quy tắc tường lửa cho phép các kết nối đến. Các-Force một phần của lệnh ghép ngắn cho PowerShell thực hiện các thao tác này mà không cần nhắc bạn từng bước.

Nếu máy tính của bạn là một phần của miền, đó là tất cả các thiết lập bạn phải làm. Bạn có thể bỏ qua để kiểm tra kết nối của mình. Nếu máy tính của bạn là một phần của một nhóm làm việc - chúng có thể nằm trong mạng gia đình hoặc doanh nghiệp nhỏ - bạn cần thiết lập nhiều công việc hơn một chút.

Lưu ý: Thành công của bạn trong việc thiết lập tính năng truy cập từ xa trong môi trường miền phụ thuộc hoàn toàn vào cài đặt mạng của bạn. Tính năng từ chối có thể bị vô hiệu hóa — hoặc thậm chí được bật — tự động theo chính sách nhóm được cấu hình bởi quản trị viên. Bạn cũng có thể không có quyền bạn cần để chạy PowerShell với tư cách quản trị viên. Như mọi khi, hãy kiểm tra với quản trị viên của bạn trước khi bạn thử bất cứ điều gì như thế này. Họ có thể có lý do tốt để không cho phép thực hành, hoặc họ có thể sẵn sàng để thiết lập nó cho bạn.

Thiết lập nhóm làm việc của bạn

Nếu máy tính của bạn không nằm trong miền, bạn cần thực hiện thêm một vài bước để thiết lập mọi thứ. Bạn nên bật tính năng Remoting trên PC mà bạn muốn kết nối, như chúng tôi đã mô tả trong phần trước.

Lưu ý: Để PowerShell Remoting hoạt động trong môi trường nhóm làm việc, bạn phải định cấu hình mạng của mình là mạng riêng, không công khai, mạng. Để biết thêm về sự khác biệt — và cách thay đổi thành mạng riêng nếu bạn đã thiết lập mạng công cộng — hãy xem hướng dẫn của chúng tôi về mạng riêng và mạng công cộng.

Tiếp theo, bạn cần cấu hình cài đặt TrustedHosts trên cả PC mà bạn muốn kết nối PC (hoặc PC) mà bạn muốn kết nối, vì vậy các máy tính sẽ tin tưởng lẫn nhau. Bạn có thể làm điều này theo một trong hai cách.

Nếu bạn đang ở trên mạng gia đình nơi bạn muốn tiếp tục và tin cậy bất kỳ PC nào để kết nối từ xa, bạn có thể nhập lệnh sau trong PowerShell (một lần nữa, bạn sẽ cần chạy nó dưới dạng Quản trị viên).

Set-Item wsman:localhostclient rustedhosts *

Dấu hoa thị là biểu tượng ký tự đại diện cho tất cả các PC. Thay vào đó, nếu bạn muốn hạn chế các máy tính có thể kết nối, bạn có thể thay thế dấu sao bằng danh sách địa chỉ IP hoặc tên máy tính được phân tách bằng dấu phẩy cho các máy tính được phê duyệt.

Sau khi chạy lệnh đó, bạn cần phải khởi động lại dịch vụ WinRM để cài đặt mới của bạn có hiệu lực. Gõ cmdlet sau và nhấn Enter:

Restart-Service WinRM

Và hãy nhớ, bạn sẽ cần phải chạy hai lệnh ghép ngắn này trên PC mà bạn muốn kết nối, cũng như trên bất kỳ PC nào bạn muốn kết nối.

Kiểm tra kết nối

Bây giờ bạn đã thiết lập PC cho PowerShell Remoting, đã đến lúc kiểm tra kết nối. Trên PC bạn muốn truy cập hệ thống từ xa, gõ lệnh sau vào PowerShell (thay thế “COMPUTER” bằng tên hoặc địa chỉ IP của máy tính từ xa), sau đó nhấn Enter:

Test-WsMan COMPUTER

Lệnh đơn giản này kiểm tra xem dịch vụ WinRM có đang chạy trên máy tính từ xa không. Nếu quá trình này hoàn tất thành công, bạn sẽ thấy thông tin về dịch vụ WinRM của máy tính từ xa trong cửa sổ — biểu thị rằng WinRM được bật và PC của bạn có thể giao tiếp. Nếu lệnh không thành công, bạn sẽ thấy thông báo lỗi thay thế.

Thực hiện một lệnh từ xa duy nhất

Để chạy lệnh trên hệ thống từ xa, hãy sử dụng lệnhInvoke-Command cmdlet sử dụng cú pháp sau:

Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME

“COMPUTER” đại diện cho tên hoặc địa chỉ IP của máy tính từ xa. "COMMAND" là lệnh bạn muốn chạy. “USERNAME” là tên người dùng bạn muốn chạy lệnh như trên máy tính từ xa. Bạn sẽ được nhắc nhập mật khẩu cho tên người dùng.

Đây là một ví dụ. Tôi muốn xem nội dung của thư mục C: trên máy tính từ xa với địa chỉ IP 10.0.0.22. Tôi muốn sử dụng tên người dùng “wjgle”, vì vậy tôi sẽ sử dụng lệnh sau:

Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C: } -credential wjgle

Bắt đầu phiên từ xa

Nếu bạn có một số lệnh ghép ngắn mà bạn muốn chạy trên máy tính từ xa, thay vì gõ liên tục lệnh ghép ngắn Invoke-Command và địa chỉ IP từ xa, bạn có thể bắt đầu một phiên từ xa để thay thế. Chỉ cần gõ cmdlet sau và nhấn Enter:

Enter-PSSession -ComputerName COMPUTER -Credential USER

Một lần nữa, thay thế “COMPUTER” bằng tên hoặc địa chỉ IP của máy tính từ xa và thay thế “USER” bằng tên tài khoản người dùng mà bạn muốn gọi.

Lời nhắc của bạn thay đổi để cho biết máy tính từ xa mà bạn đã kết nối và bạn có thể thực thi bất kỳ số lệnh ghép ngắn PowerShell nào trực tiếp trên hệ thống từ xa.

Link
Plus
Send
Send
Pin