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.
Enable-PSRemoting -Force
-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ốivà 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
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ệnh
Invoke-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.