極客學校:學習如何在powershell中使用物件

理解物件是“獲取”PowerShell的基本概念之一。加入我們,探索物件以及它們如何使PowerShell比目前任何其他shell都更好。...

極客學校:學習如何在powershell中使用物件

理解物件是“獲取”PowerShell的基本概念之一。加入我們,探索物件以及它們如何使PowerShell比目前任何其他shell都更好。

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

  • 瞭解如何使用PowerShell自動化Windows
  • 學習在PowerShell中使用cmdlet

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

物體

你有沒有想過是什麼讓PowerShell與傳統的Linux shell(比如Bash)甚至傳統的命令提示符區別開來?答案很簡單:傳統的shell輸出文字,這使得格式化和過濾等操作變得困難。當然,有一些工具可以幫助你完成這項工作(sed和grep在腦海中浮現),但歸根結底,如果你想做任何繁重的文字解析,你需要知道正則表示式,比如你的手背。

PowerShell利用了底層的.Net框架,並採用了不同的方法,使用物件而不是文字。物件只是某個事物的表示。它們是使用它們的部件和動作的集合。讓我們來看看腳踏車的零件以及如何使用它們。

極客學校:學習如何在powershell中使用物件

Net中的物件基本相同,只是有兩個小區別:“部分”稱為屬性,“指令”稱為方法。如果我們想將Windows服務表示為一個物件,我們可以決定使用三個屬性來描述它:服務名稱、狀態和描述。我們還需要與服務互動,因此我們可以給物件一個Start、Stop和Pause方法。

極客學校:學習如何在powershell中使用物件

透過將物件傳遞給Get-Member cmdlet,可以檢視物件的屬性和方法。PowerShell cmdlet輸出的物件基本上是.Net framework中的底層型別,但是如果需要使用C語言或PSObject型別,則可以建立自己的物件。

管道

有很多帶有管道的Linux shell,允許您將一個命令輸出的文字作為輸入傳送到管道中的下一個命令。PowerShell透過允許您獲取一個cmdlet輸出的物件並將其作為輸入傳遞給管道中的下一個cmdlet,將此功能提升到下一個級別。訣竅在於知道cmdlet返回什麼型別的物件,這在使用Get-Member cmdlet時非常簡單。

Get-Service | Get-Member

極客學校:學習如何在powershell中使用物件

由於超出本文範圍的原因,屬性和方法被聯合稱為類成員,這就解釋了為什麼使用Get-Member cmdlet來獲取物件具有的所有方法和屬性的列表。但是,Get-Member cmdlet還返回另一條重要資訊,即底層物件型別。在上面的螢幕截圖中,我們可以看到Get Service返回以下型別的物件:

System.ServiceProcess.ServiceController

由於PowerShell處理的是物件而不是文字,因此並非所有cmdlet都可以使用管道[1]連結在一起。這意味著我們需要找到一個cmdlet來接受System.ServiceProcess.ServiceController服務控制器管道中的物件。

Get-Command -ParameterType System.ServiceProcess.ServiceController

極客學校:學習如何在powershell中使用物件

請注意,有一個名為Stop-Service的cmdlet;讓我們看看它的幫助。

Get-Help –Name Stop-Service

極客學校:學習如何在powershell中使用物件

InputObject引數似乎將ServiceController物件陣列作為輸入。通常,如果您看到一個名為InputObject的引數,它將接受來自管道的輸入,但為了確保這一點,讓我們看看該引數的完整幫助。

Get-Help -Name Stop-Service –Full

極客學校:學習如何在powershell中使用物件

我們的懷疑是對的。所以在這一點上我們知道:

  • Get服務返回ServiceController物件
  • 停止服務有一個名為InputObject的引數,該引數接受一個或多個ServiceControllers作為輸入。
  • InputObject引數接受管道輸入。

利用這些資訊,我們可以做到以下幾點:

Get-Service -Name ‘Apple Mobile Device’ | Stop-Service

極客學校:學習如何在powershell中使用物件

這一次就到此為止。下次我們來看看如何格式化、過濾和比較管道中的物件。

作業

  • 讀取物件管道

如果你有任何問題,你可以發推特給我@taybgibb,或者只留下評論。

  • 發表於 2021-04-11 23:06
  • 閱讀 ( 41 )
  • 分類:網際網路

你可能感興趣的文章

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

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

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

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

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

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

如何在windows中批次重新命名多個檔案

...以輕鬆地重新命名一個或多個檔案,但使用命令提示符或PowerShell,您還可以執行更多操作。再加上第三方重新命名工具,可能性是無窮的。讓我們看看每個選項及其工作原理。 在windows資源管理器中重新命名多個檔案 Windows資...

  • 發佈於 2021-04-08 21:05
  • 閲讀 ( 58 )

如何在windows上建立已安裝程式的列表

....1和7上執行此操作的幾種不同方法。 簡單的方法:使用powershell命令 相關:極客學校:學習如何用PowerShell自動化Windows PowerShell是Windows中最強大的工具之一,所以它當然可以做一些簡單的事情,比如列出你安裝的程式。事實上...

  • 發佈於 2021-04-09 18:20
  • 閲讀 ( 55 )

powershell與windows命令提示符的區別

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

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

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

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

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

極客學校:寫你的第一個完整的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 )
yy729582
yy729582

0 篇文章

作家榜

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

相關推薦