PowerShell là một bảng điều khiển lệnh mạnh mẽ bao gồm các phiên bản Windows hiện đại. Một trong những tính năng hữu ích nhất của nó là khả năng chạy các lệnh trên các máy chủ từ xa. Điều này có thể hữu ích cho các quản trị viên hệ thống quản lý nhiều máy chủ Windows.

Bước 1: Cho phép truy cập từ xa
Đầu tiên, chúng ta cần cho phép truy cập từ xa. Trên máy chủ mà bạn muốn truy cập từ xa, hãy mở PowerShell với các đặc quyền quản trị (vì vậy, nhấp chuột phải vào PowerShell và nhấp vào "Chạy với tư cách quản trị viên"). Thực hiện lệnh sau:
Enable-PSRemoting -Force
Điều này khởi động dịch vụ WinRM, đảm bảo nó khởi động tự động và định cấu hình tường lửa của bạn để cho phép các kết nối đến.
Trên máy tính (mà bạn muốn kết nối từ đó), thực hiện lệnh sau với các đặc quyền quản trị:
Enable-PSRemoting -Force
Chúng tôi sẽ cần đảm bảo rằng cả hai máy tính đều tin tưởng lẫn nhau. Để thực hiện việc này, chúng tôi cần định cấu hình cài đặt "Trustedhosts". Nếu bạn muốn cho phép kết nối với máy tính / máy chủ của mình từ tất cả các máy tính, hãy thực hiện:
Set-Item wsman:\localhost\client\trustedhosts *
Nếu bạn muốn hạn chế điều này với một số máy tính nhất định, thì hãy sử dụng lệnh sau. Thay thế danh sách 0,0.0.0, 1.1.1.1, 2.2.2.2 và 3.3.3.3 được phân tách bằng dấu phẩy bằng các địa chỉ IP sẽ có quyền truy cập.
Set-Item wsman:\localhost\client\trustedhosts 0.0.0.0,1.1.1.1,2.2.2.2,3.3.3.3
Bây giờ khởi động lại WinRM:
Restart-Service WinRM
Bước 2: Kiểm tra kết nối
Để kiểm tra kết nối, hãy truy cập vào máy tính mà bạn muốn kết nối và thực hiện:
Test-WsMan ipaddress
Thay thế ipaddressbằng địa chỉ IP của máy tính / máy chủ khác.
Bước 3: Mở cổng
Lệnh đầu tiên mà chúng tôi đã thực thi ( Enable-PSRemoting -Force) sẽ tự động định cấu hình tường lửa để nó chấp nhận các kết nối đến để truy cập từ xa. Tuy nhiên, nếu có một cái gì đó ở phía trước tường lửa (chẳng hạn như bộ định tuyến của bạn), bạn cũng có thể phải thiết lập chuyển tiếp cổng. Các cổng được sử dụng là:
- 5985 cho HTTP
- 5986 cho HTTPS
Bước 4: Thực hiện các lệnh
Sau đây được sử dụng để thực hiện các lệnh trên một máy chủ từ xa:
Invoke-Command -ComputerName ipaddress -ScriptBlock { command } -credential username
Thay thế ipaddressbằng địa chỉ IP của máy chủ, commandbằng lệnh bạn muốn thực thi trên máy chủ đó và usernamebằng tên người dùng của người dùng sẽ chạy lệnh.
Nếu bạn không muốn sử dụng Invoke-Commandcho mỗi lệnh đơn lẻ, bạn có thể bắt đầu một phiên thay thế. Mỗi lệnh bạn nhập sau đó sẽ được thực thi trên máy chủ từ xa với thông tin đăng nhập được chỉ định. Cú pháp để bắt đầu một phiên như sau:
Enter-PSSession -ComputerName ipaddress -Credential username
Thay thế ipaddressbằng địa chỉ IP của máy chủ và usernamebằng người dùng sẽ chạy lệnh. Mỗi lệnh bạn gõ sẽ được thực hiện trên máy chủ từ xa.