極客學校:學習在powershell中使用遠端處理

PowerShell提供的最好的特性之一是能夠遠端管理伺服器。它甚至可以讓你同時管理一堆。...

極客學校:學習在powershell中使用遠端處理

PowerShell提供的最好的特性之一是能夠遠端管理伺服器。它甚至可以讓你同時管理一堆。

請務必閱讀本系列之前的文章:

  • 瞭解如何使用PowerShell自動化Windows
  • 學習在PowerShell中使用cmdlet
  • 學習如何在PowerShell中使用物件
  • 在PowerShell中學習格式化、過濾和比較

整個星期請繼續關注本系列的其餘部分。

什麼是遠端處理(remoting)?

伺服器的批次管理可能會很乏味,如果您以前必須在50個Web伺服器上更改IIS配置,您就會明白我的意思。在這種情況下,PowerShell遠端處理和該語言的指令碼能力可以起到解救作用。使用HTTP或更安全的HTTPS,PowerShell遠端處理允許您向網路上的遠端計算機發送命令。然後,機器執行命令並將輸出傳送回您,這些輸出依次顯示在您的螢幕上。

讓我們從技術上

PowerShell遠端處理的核心是一個Windows服務,即眾所周知的Windows遠端管理或WinRM服務。使用WinRM,您可以設定一個或多個會話配置(也稱為端點),這些配置基本上是包含有關您要向連線到遠端PowerShell例項的人員提供的體驗的資訊的檔案。更具體地說,您可以使用會話配置檔案來定義誰可以連線到例項,誰不能連線到例項,它們可以執行什麼cmdlet和指令碼,以及會話必須在什麼安全上下文下執行。使用WinRM服務,還可以設定“偵聽器”,偵聽傳入的PowerShell請求。這些“偵聽器”可以是HTTP或HTTPS,並且可以繫結到您計算機上的單個IP地址。當您開啟到另一臺計算機的PowerShell連線時(技術上這是使用基於HTTP的WS-MAN協議完成的),連線將繫結到這些“偵聽器”之一。然後,“監聽器”負責將通訊量傳送到與相應會話配置檔案關聯的應用程式;應用程式(通常是PowerShell,但如果需要,可以有其他宿主應用程式)然後執行命令,並透過“監聽器”將結果反饋到整個網路,然後反饋到您的伺服器上機器。

告訴我怎麼做

您需要做的第一件事是在要連線的計算機上啟用遠端處理。這可以透過執行以下命令來完成:

Enable-PSRemoting

極客學校:學習在powershell中使用遠端處理

然後您需要對所有提示回答yes。執行Enable PSRemoting時,會對您的電腦進行一些更改:

  • WinRM服務啟動。
  • WinRM服務從手動啟動模式更改為自動啟動。
  • 它建立一個繫結到所有網絡卡的HTTP偵聽器。
  • 它還為WS-MAN協議建立入站防火牆例外。
  • 會建立一些預設會話配置

如果您執行的是Windows 7,並且網絡卡的位置設定為Public,則啟用PowerShell遠端處理將失敗。要解決這個問題,只需切換到家庭或工作網路位置。或者,您可以使用以下方法跳過網路檢查:

Enable-PSRemoting –SkipNetworkProfileCheck

極客學校:學習在powershell中使用遠端處理

但是,我們建議您更改您的網路位置。

使用PowerShell連線到另一臺機器有兩種方法。有一對一的方法,這與使用SSH非常相似,還有一對多的方法。

使用powershell會話

使用PowerShell連線到遠端計算機的第一種方法是使用稱為PowerShell會話的東西。簡單地說,會話允許您以互動方式在遠端機器上執行命令,這與您在自己的機器上執行命令的方式非常相似。要開啟會話,只需鍵入以下內容:

Enter-PSSession –ComputerName “Darlah”

極客學校:學習在powershell中使用遠端處理

提示符將獲得一個字首,該字首表示執行cmdlet的計算機。

極客學校:學習在powershell中使用遠端處理

從這裡,您可以真正地對待提示符,就像您坐在遠端機器上一樣。例如,如果要檢視C:\驅動器上的所有檔案,可以執行以下操作:

Get-ChildItem –Path C:\

極客學校:學習在powershell中使用遠端處理

如果您來自Linux背景,可以考慮使用這種一對一的遠端處理方法作為SSH的PowerShell替代方法。

使用invoke命令

在遠端計算機上使用PowerShell的第二種方法是使用Invoke命令。使用Invoke命令的優勢在於,您可以在多臺計算機上同時執行同一個命令。可以想象,當您想從伺服器收集事件日誌時,這一點特別有用。Invoke命令遵循以下語法:

Invoke-Command -ComputerName Darlah,localhost -ScriptBlock {Get-EventLog Application -Newest 2}

極客學校:學習在powershell中使用遠端處理

由於該命令是在所有機器上並行執行的,因此您需要一些方法來檢視給定結果來自哪臺PC。您可以透過檢視PSComputerName屬性來實現這一點。

極客學校:學習在powershell中使用遠端處理

當您使用Invoke命令時,您不再擁有管道中可能需要的物件。您知道,為了讓PowerShell從遠端機器獲取資訊並返回到您的機器,它們需要某種方式來表示您在遠端機器上執行的命令輸出的物件。如今,表示分層資料結構的最佳方法似乎是使用XML,這意味著當您使用Invoke命令發出命令時,結果首先序列化為XML,然後再發送回您的計算機。一旦它們返回到您的機器,它們就會反序列化為一個物件;這裡的問題是,當它們被反序列化時,物件擁有的所有方法(ToString()方法除外)都會從中剝離。

極客學校:學習在powershell中使用遠端處理

注意:此規則有一些例外,例如,大多數基本型別(如integers)都可以在包含其方法的情況下反序列化。還有一個稱為重水化的過程,其中可以將一些方法添加回反序列化物件。所以要小心,記住會員是你的朋友。

作業

  • 閱讀唐瓊斯的PowerShell遠端處理電子書的祕密。
  • 發表於 2021-04-11 22:54
  • 閱讀 ( 51 )
  • 分類:網際網路

你可能感興趣的文章

如何在Windows10中自動連線到特定應用的vpn

使用Windows10的PowerShellcmdlet,您可以輕鬆地新增應用程式,以便在啟動時自動觸發VPN連線。自動化這個任務意味著當你使用某些應用程式時,你甚至不必考慮連線到VPN。 要利用PowerShell中的此功能,如果您還沒有VPN服務,則必須...

  • 發佈於 2021-04-02 15:58
  • 閲讀 ( 85 )

如何在遠端計算機上執行powershell命令

PowerShell遠端處理允許您在遠端Windows系統上執行PowerShell命令或訪問完整的PowerShell會話。它類似於SSH,用於訪問其他作業系統上的遠端終端。 PowerShell在預設情況下是鎖定的,因此在使用它之前必須啟用PowerShell遠端處理。如果您...

  • 發佈於 2021-04-07 12:13
  • 閲讀 ( 80 )

如何在windows powershell中使用命令歷史記錄

Windows PowerShell具有內建的命令歷史記錄功能,可提供有關已執行命令的詳細資訊。與命令提示符一樣,PowerShell只記住當前會話的命令歷史記錄。 如何使用命令列緩衝區 相關:極客學校:學習如何用PowerShell自動化Windows PowerShel...

  • 發佈於 2021-04-08 03:50
  • 閲讀 ( 82 )

在任何作業系統上使用製表符完成可以更快地鍵入命令

...論您是在Linux上使用bashshell,在Windows上使用命令提示符或PowerShell,還是在macosx上使用終端視窗。 此功能可以極大地幫助您加快鍵入命令的速度。只需在鍵入命令、選項或檔名時單擊Tab,shell環境就會自動完成您鍵入的內容或向...

  • 發佈於 2021-04-11 07:17
  • 閲讀 ( 32 )

powershell與windows命令提示符的區別

Windows7增加了PowerShell,一種比命令提示符更強大的命令列shell和指令碼語言。自Windows7以來,PowerShell變得更加突出,它甚至成為Windows10的預設選擇。 PowerShell比傳統的命令提示符更復雜,但它也更強大。命令提示符明顯不如Linux...

  • 發佈於 2021-04-11 20:41
  • 閲讀 ( 89 )

如何建立一個測試實驗室,讓你可以跟隨極客學校(不破壞你的電腦)

我們的極客學校文章可能會變得相當複雜,沒有理由在你自己的臺式電腦上做大量瘋狂的事情。相反,你可以像我們一樣建立虛擬機器來進行所有測試。下面是如何做到這一點。 您甚至可以將多個虛擬機器連線在一起,因此只...

  • 發佈於 2021-04-11 21:51
  • 閲讀 ( 46 )

極客學校:寫你的第一個完整的powershell指令碼

...的計算機上一次啟動的時間。在上一次安裝Geek School for PowerShell時,我們將編寫一個可重用的PowerShell命令來完成同樣的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如...

  • 發佈於 2021-04-11 22:17
  • 閲讀 ( 50 )

極客學校:學習如何擴充套件powershell

PowerShell為您提供了兩種擴充套件shell的方法。您可以使用管理單元,它是二進位制的,並且是用成熟的程式語言(如C#)開發的,也可以使用模組,它可以是二進位制的,也可以是基於指令碼的。 請務必閱讀本系列之前的文章...

  • 發佈於 2021-04-11 22:25
  • 閲讀 ( 70 )

極客學校:學習如何在powershell中使用作業

PowerShell有四種類型的作業—後臺作業、遠端作業、WMI作業和計劃作業。加入我們,瞭解它們是什麼以及如何使用它們。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如何在Po...

  • 發佈於 2021-04-11 22:34
  • 閲讀 ( 53 )

極客學校:在powershell中使用集合

由於PowerShell基於.Net框架,並結合了各種其他技術,如WMI和CIM,因此實現同一目標的方法總是不止一種。快來加入我們,學習如何選擇最佳的方法來完成我們的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動...

  • 發佈於 2021-04-11 22:46
  • 閲讀 ( 43 )

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦