Powershell遠端管理 二

來源:互聯網
上載者:User

    上文Powershell 遠端管理 (一)和大家大概的講述了一個我的遠端管理的過程,今天主要和大家說說ps 在互動式會話的管理方式也就是Pssession,Pssession是Windows Powershell會話的意思,一個會話,可以共用資料,提供互動對話,我們可以為某些命令例如Invoke-Command 制定會話來遠程作業。當然我們還能利用Enter-Pssession來直接和遠端電腦串連,直接建立一個持續安全的遠程對話,來執行我們的所有命令。
 我們分三個部分來講述Powershell Session,首先是域環境下的遠端連線,WAN/LAN的遠端連線(Trusthost方式),WAN/LAN的遠端連線(SSL加密方式),可以先大致的理解為,當我們操作的機器和遠程機器處於同一個AD下,那麼是可以直接向Powershell使用Kerbors(基於FQDN),NTLM基於ip地址來進行身份標識的傳輸,一般是通過當前登入到機器的使用者憑證。當我們處於另外的網路環境,或者工作機沒有入域能夠提供域標識的情況下,可以使用信任主機和SSL加密方式來向遠程機器提供會話標識的方式。
 Powershell基於WinRM和WinRS來建立遠端工作階段的,以及和傳統的WMI DCOM的對比。WMI 依賴 DCOM 在遠端電腦上執行管理工作,而防火牆往往會阻止所有傳入的 DCOM 通訊,這使 WMI 很難(如果並非完全不可能)通過 Internet 以編程方式管理電腦 Windows 遠端管理(WinRM)是“WS 管理協議的 Microsoft 實施,該協議是基於標準 SOAP、不受防火牆影響的協議,允許不同供應商的硬體和作業系統相互操作。也就是我們在Client使用本地的WinRS(Windows Remote Shell) 向遠端WinRM(Windows Remote Service)基於SOAP 通過http或者https進行串連擷取管理資料(底層依舊使用WMI,但是已經被封裝了SOAP來通訊了)。必須注意的是:用戶端和服務端都必須安裝啟用WinRM
Solution One:
Client:非域環境 Domain:vm.terry-corp.com(也可以是工作群組,我這裡用的是域)
用戶端開啟Powershell 執行 cd wsman::localhost\client 輸入ls
PS Microsoft.WSMan.Management\WSMan::localhost\Client> ls
(預設TrustedHosts 為空白,當我們在非信任環境下(不能使用Kerbors認證) 的時候,必須使用TrustedHosts或者SSL方式)

##Set-Item TrustedHosts “你的入域機器的IP或者工作群組機器”
我這裡執行的是:
Set-Item TrustedHosts “192.168.133.67”
查看 ls

Name                      Value
----                      -----
NetworkDelayms            5000
URLPrefix                 wsman
AllowUnencrypted          false
Auth
DefaultPorts
TrustedHosts              192.168.133.67
修改成功!

服務端
首先啟用遠端存取Enable-PSRemoting –Force
操作會開啟WinRM服務,添加WinRM 的防火牆例外,可以在WF.MSC自己再次確認Windows Remote Management的防火牆是否對你的Client有了例外

用戶端開啟Powershell

Enter-PSSession -ComputerName 192.168.133.67 –Credential vm.terry-corp.com\Administrator
(可以設定自己的憑據,我這裡用的域帳號)
成功的話會顯示:
[192.168.133.67]: PS C:\Users\Administrator\Documents>
記得退出Exit-Pssession
Solution Two:
WS-Management 加密通過網路傳輸的所有 Windows PowerShell 內容。UseSSL 是一種額外的保護措施,它通過 HTTPS 串連而不是 HTTP 串連來發送資料。
因此使用SSL方式是一種更加安全可靠的遠端管理方式.
SSL的工作原理也是確認用戶端和服務端的身份之後再進行握手的,還擔保了資料的來源,不被纂改和監聽.
首先要產生SSL認證
(題外話:我本來打算使用AD 認證服務來給自己頒發一個機器名的認證,但是我入域機器的機器名是帶上了dns尾碼名的, 而我的用戶端串連使用的是IP地址,那麼會被認為認證的CN名和機器名不一致.AD 機器很多時候都是內網環境,所以想直接通過AD認證,那麼你的DNS必須在用戶端能夠被解析.所以我這裡使用的是自簽名的認證)
可以使用sslself.exe或者makecert.exe
下載SelfSSL http://www.microsoft.com/downloads/...laylang=en
makecert.exe在.NET Framework 工具中有
服務端產生認證
SELFSSL:
C:\Program Files (x86)\IIS Resources\SelfSSL>selfssl.exe /N:CN=192.168.133.67 /V:3600 /T /Q
(ip就是服務端的ip)
MAKECERT:
MakeCert.exe -pe -n "CN=192.168.133.67" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange –r C:\1.CER
(在C盤根目錄下的1.cer)

開啟inetmgr 移除預設網站對SSL 443的binding
開啟MMC (檔案->添加刪除 嵌入式管理單元)找到 認證 選擇 本機電腦添加 找到根信任地區
匯出剛才的認證
Copy 到用戶端,匯入認證到根信任地區
再次返回到服務端
開啟MMC 找到剛才的認證,複製認證 詳細資料裡面的 指紋
eb 10 24 5d 89 11 4a 57 4c 0c ba ac 79 b7 3b 3a 05 aa 1b d7
執行CMD
C:\Users\Administrator> winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="192.168.133.67";CertificateThumbprint=" eb 10 24 5d 89 11 4a 57 4c 0c ba ac 79 b7 3b 3a 05 aa 1b d7"}
添加對https 的監聽,以及添加認證指紋.
成功顯示:
ResourceCreated
    Address = http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
    ReferenceParameters
        ResourceURI = http://schemas.microsoft.com/wbem/wsman/1/config/listener
        SelectorSet
            Selector: Address = *, Transport = HTTPS
執行Winrm enumerate winrm/config/listener 也可以確認添加是否成功顯示:

Listener
    Address = *
    Transport = HTTPS
    Port = 5986
    Hostname = 192.168.133.67
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint = eb 10 24 5d 89 11 4a 57 4c 0c ba ac 79 b7 3b 3a 05 aa 1b d7
    ListeningOn = 127.0.0.1, 192.168.28.128, 192.168.133.67, ::1, fe80::5efe:192.168.28.128%13, fe80::5efe:192.168.133.6
7%12, fe80::856d:7551:c80d:b615%11, fe80::c576:2df6:6d25:6da6%10
說明已經正確添加了SSL認證.再次返回到用戶端進行串連:
Powershell
Enter-PSSession -ComputerName 192.168.133.67 –Credential vm.terry-corp.com\Administrator –UseSSL
成功顯示:
[192.168.133.67]: PS C:\Users\Administrator\Documents>

至此Windows Powershell 的兩種方式已經和大家說清楚了,大家不明白的地方可以直接cnblogs聯絡我.下一篇文章詳細講述如何使用URI 串連遠端WinRM服務進行管理,這主要涉及到IIS 和SSL的配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.