Hướng dẫn thực hiện lệnh PowerShell từ xa

Tính năng PowerShell Remoting cho phép người dùng thực hiện các câu lệnh PowerShell hoặc truy cập phiên PowerShell hoàn chỉnh cho những Windows đầu xa. Chức năng này tương tự như chức năng giao thức SSH, cho phép truy cập thiết bị đầu cuối từ xa trên những hệ điều hành khác.

PowerShell bị khóa mặc định, vì vậy người dùng sẽ phải kích hoạt PowerShell Remoting trước khi sử dụng. Bước thiết lập này hơi phức tạp một chút nếu như người dùng đang sử dụng một workgroup, ví dụ như, ở một mạng gia đình (home network) thay vì một miền (domain).

Kích hoạt PowerShell Remoting

Trên máy tính muốn truy cập từ xa, mở một cửa sổ PowerShell dưới quyền quản trị. Kích chuột phải vào biểu tượng tắt PowerShell và chọn Run as Administrator.

Để kích hoạt PowerShell Remoting, thực hiện lệnh sau (còn gọi là cmdlet trong PowerShell):

Enable-PSRemoting –Force

Câu lệnh khởi chạy dịch vụ WinRM, thiết lập cho dịch vụ khởi động tự động cùng máy tính và tạo chính sách tường lửa cho các kết nối. Phần “-Force” trong câu lệnh để PowerShell thực hiện những hành động này mà không thông báo cho người dùng qua từng bước.

Thiết lập nhóm (workgroup)

Nếu máy tính không trong một miền, tức, bạn đang thực hiện kết nối từ xa trong mạng gia đình, bạn sẽ cần thực hiện thêm một số bước. Trước hết, chạy lệnh Enable-PSRemoting –Force trên máy tính muốn kết nối từ nó (Hãy nhớ khởi chạy PowerShell dưới quyền quản trị trước khi thực hiện lệnh này).

Ở cả hai máy tính, cấu hình thiết lập TrustedHosts vì vậy các máy tính sẽ “tin tưởng” lẫn nhau. Ví dụ như, nếu ta đang thực hiện kết nối trên một mạng gia đình tin cậy, có thể sử dụng lệnh sau để cho phép bất cứ máy tính nào kết nối tới:

Set-Item wsman:localhostclienttrustedhosts *

Để hạn chế số máy được phép kết nối, thay thế dấu “*” bằng danh sách các địa chỉ IP hoặc tên của máy được phép, phân cách nhau bằng dấu phẩy.

Trên cả hai máy, khởi động lại dịch vụ WinRM để những thiết lập mới có tác dụng:

Restart-Service WinRM


Kiểm tra kết nối

Trên máy tính muốn dùng để truy cập từ xa, sử dụng lệnh Test-WsMan để kiểm tra cấu hình. Câu lệnh sẽ kiểm tra dịch vụ WinRM có đang hoạt động trên máy đầu xa hay không. Nếu xuất hiện thông báo thành công sau quá trình kiểm tra, điều này có nghĩa là WinRM đã được kích hoạt và các máy có thể giao tiếp với nhau. Sử dụng cmdlet sau, thay thế COMPUTER bằng tên máy đầu xa:

Test-WsMan COMPUTER

Nếu thành công, ta sẽ thấy thông tin về dịch vụ WinRM của máy đầu xa trong cửa sổ. Nếu thất bại, một thông báo lỗi sẽ xuất hiện.

Thực hiện lệnh từ xa

Để thực hiện một lệnh trên máy đầu xa, sử dụng câu lệnh Invoke-Command. Cú pháp câu lệnh như sau:

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

COMPUTER đại diện cho tên máy, COMMAND là câu lệnh muốn thực hiện và USERNAME là tên người dùng ta muốn thực hiện lệnh trên máy đầu xa. Người dùng phải nhập mật khẩu cho username.

Ví dụ như, để xem nội dung của thư mục C:directory ở máy đầu xa có tên Monolith dưới username Chris, sử dụng lệnh:

Invoke-Command -ComputerName Monolith -ScriptBlock { Get-ChildItem C: } -credential chris

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

Sử dụng lệnh Enter-PSSession để bắt đầu phiên PowerShell từ xa, nơi mà ta có thể thực hiện nhiều câu lệnh, thay vì chỉ một lệnh:

Enter-PSSession -ComputerName COMPUTER -Credential USER

Theo: Quantrimang

Bài viết liên quan