Cách thêm nhiều máy vào danh sách máy chủ đáng tin cậy bằng winrm


82

Để chạy các lệnh powershell trên một máy từ một máy từ xa, chúng ta phải thêm máy từ xa vào danh sách máy chủ đáng tin cậy của máy chủ.

Tôi đang thêm máy A vào máy chủ đáng tin cậy của máy B bằng lệnh sau:

winrm set winrm/config/client ‘@{TrustedHosts="machineA"}’

Làm thế nào để thêm nhiều máy nói máy C, máy D vào danh sách máy chủ tin cậy của máy B?

Câu trả lời:


128

Tôi thích làm việc với PSDrive WSMan:\.

Nhận TrustedHosts

Get-Item WSMan:\localhost\Client\TrustedHosts

Đặt TrustedHosts

cung cấp một chuỗi tên máy tính, được phân tách bằng dấu phẩy,

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineA,machineB'

hoặc (nguy hiểm) một thẻ đại diện

Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*'

để thêm vào danh sách, -Concatenatetham số có thể được sử dụng

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineC' -Concatenate

có cách nào để thêm máy chủ vào danh sách không? vì tôi không thể tìm thấy bất kỳ API nào cho append.
Tuyết

11
Bạn có thể nối thêm với -Value "machineB" -Concatenate
SxMT

@dhcgm Giải pháp này KHÔNG hoạt động đối với Máy chủ được kiểm soát trên miền dựa vào Kerberos để xác thực. Bạn có thể vui lòng xác nhận? Vì vậy, mặc dù đã thêm các máy chủ đáng tin cậy rõ ràng, tôi vẫn có thể sử dụng các máy chủ không đáng tin cậy để truy cập vào máy chủ miễn là tôi có quyền quản trị trên máy chủ. Tôi nghĩ rằng điều này chỉ hoạt động cho Máy tính Nhóm làm việc. Cảm ơn.
objectNotFound

@objectNotFound Trong môi trường của tôi, tôi chỉ sử dụng Powershell Remoting trên Máy tính nhóm làm việc, vì vậy tôi không thể xác nhận luận điểm của bạn. Nhưng tôi nghe có vẻ hợp lý.
hdev

63
winrm set winrm/config/client '@{TrustedHosts="machineA,machineB"}'

19
nếu có ai nhận được một Error: Invalid use of command line ...câu trả lời, hãy thử bỏ dấu nháy đơn
Svarog

Điều này không phù hợp với tôi, trích dẫn đơn lẻ hay không. Tôi nhận được Error: Invalid use of commandbất kể.
Hylle

@svarog đối với tôi thì ngược lại. Tôi đã phải thêm dấu ngoặc kép. Trước khi tôi gặp lỗi tương tự Error: Invalid use of command.
Bruno Bieri

10

Câu trả lời gợi ý của Loïc MICHEL ghi một cách mù quáng một giá trị mới vào mục nhập TrustedHosts.
Tôi tin rằng, cách tốt hơn là truy vấn TrustedHosts trước.
Như Jeffery Hicks đã đăng vào năm 2010 , trước tiên hãy truy vấn mục nhập TrustedHosts:

PS C:\> $current=(get-item WSMan:\localhost\Client\TrustedHosts).value
PS C:\> $current+=",testdsk23,alpha123"
PS C:\> set-item WSMan:\localhost\Client\TrustedHosts –value $current

5

Tôi đã tạo một mô-đun để giúp xử lý các máy chủ đáng tin cậy dễ dàng hơn một chút, psTrustedHosts . Bạn có thể tìm thấy repo tại đây trên GitHub. Nó cung cấp bốn chức năng mà làm cho làm việc với các host tin cậy dễ dàng: Add-TrustedHost, Clear-TrustedHost, Get-TrustedHost, và Remove-TrustedHost. Bạn có thể cài đặt mô-đun từ Thư viện PowerShell bằng lệnh sau:

Install-Module psTrustedHosts -Force

Trong ví dụ của bạn, nếu bạn muốn nối thêm các máy chủ 'machineC' và 'machineD', bạn chỉ cần sử dụng lệnh sau:

Add-TrustedHost 'machineC','machineD'

Để rõ ràng, điều này thêm các máy chủ 'machineC' và 'machineD' vào bất kỳ máy chủ nào đã tồn tại, nó không ghi đè các máy chủ hiện có.

Các Add-TrustedHostxử lý lệnh hỗ trợ đường ống cũng như (do đó, hiện Remove-TrustedHostlệnh), do đó bạn cũng có thể làm như sau:

'machineC','machineD' | Add-TrustedHost

@HerbM Tên miền hoạt động tốt. Phạm vi có ký tự đại diện dường như chỉ hoạt động với một giá trị duy nhất, tức là bạn có thể có danh sách máy được phân tách bằng dấu phẩy hoặc chuỗi chứa ký tự đại diện, nhưng không phải danh sách được phân tách bằng dấu phẩy trong đó một trong các giá trị trong danh sách có ký tự đại diện. Điều này có vẻ như một vấn đề WinRM. Nó sẽ cho phép bạn thêm một giá trị bằng mặt nạ mạng con nhưng dường như nó không hiểu nó là một phạm vi mạng khi bạn cố gắng kết nối với một máy trong phạm vi đó để điều đó dường như không hoạt động.
Jason Boyd

2
Và dường như bạn phải sử dụng 'subnetting' của người nghèo (trên ranh giới octet) chứ không phải ký hiệu CIDR hoặc MASK: 192.168.230. * NOT: 192.168.224.0/19 # hoặc bất cứ điều gì
HerbM
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.