1. 程式人生 > >winrm service

winrm service

一點 知識庫 telnet item trouble err adr 遠程管理 abc

今天看腳本忽然發現一個服務,叫winRM服務,這是個PowerShell的遠程管理。開啟它可以很大程度的方便用PowerShell操控!

下面是我找到的一些資料:

在Linux中,我們可以使用安全的SSH方便的進行遠程管理。但在Windows下,除了不安全的Telnet以外,從Windows Server 2008開始提供了另外一種命令行原創管理方式,那就是基於PowerShell的WinRM。
下面就介紹下如何使用WinRM,客戶端和服務端必須為同一域:

1、在Windows Server 2008上配置WinRM:


C:\Windows\system32> winrm quickconfig
在此計算機上,WinRM 已設置為接收請求。
WinRM 沒有設置成為了管理此計算機而允許對其進行遠程訪問。
必須進行以下更改:
在 HTTP://* 上創建 WinRM 偵聽程序接受 WS-Man 對此機器上任意 IP 的請求。
進行這些更改嗎[y/n]? y
WinRM 已經進行了更新,以用於遠程管理。在 HTTP://* 上創建 WinRM 偵聽程序接受 WS-Man 對此機器上任意 IP 的請求。

2、開啟防火墻命令或者直接關閉防火墻:


C:\Windows\system32>netsh advfirewall firewall set rule group="Windows 遠程管理" new enable=yes

3、使用PowerShell連接遠程服務器:


PS C:\Users\WW-PC>Enter-PSSession -computer 服務器名或者IP

Enter-PSSession : 連接到遠程服務器失敗,錯誤消息如下: WinRM 客戶端無法處理該請求。如果身份驗證方案與 Kerberos 不同,或
者客戶端計算機未加入到域中, 則必須使用 HTTPS 傳輸或者必須將目標計算機添加到 TrustedHosts 配置設置。 使用 winrm.cmd 配
置 TrustedHosts。請註意,TrustedHosts 列表中的計算機可能未經過身份驗證。 通過運行以下命令可獲得有關此內容的更多信息: wi
nrm help config。 有關詳細信息,請參閱 about_Remote_Troubleshooting 幫助主題。
所在位置 行:1 字符: 16
+ Enter-PSSession <<<<? 192.168.3.1 -Credential abc\administrator
+ CategoryInfo : InvalidArgument: (192.168.3.1:String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : CreateRemoteRunspaceFailed

網上一般都是說要添加一個TrustedHosts表,相當於一個信任列表。

執行如下命令,將IP為192.168.3.*的主機都加入信任列表

Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.3.*

註意這個命令需要在 客戶端上執行 不是在服務端執行 且客戶端需要已管理員權限執行,這一點許多教程沒有說,走了不少彎路。

之後再用 Enter-PSSession 192.168.3.1 -Credential abc\administrator 命令就可以完成連接了,沒有域的話就直接寫用戶名。

順便提一下,如果你想在任何時間禁用WinRM,你可以使用這樣的命令:

  winrm delete winrm/config/listener?IPAdress=*+Transport=HTTP

winrm service