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

由於PowerShell基於.Net框架,並結合了各種其他技術,如WMI和CIM,因此實現同一目標的方法總是不止一種。快來加入我們,學習如何選擇最佳的方法來完成我們的任務。...

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

由於PowerShell基於.Net框架,並結合了各種其他技術,如WMI和CIM,因此實現同一目標的方法總是不止一種。快來加入我們,學習如何選擇最佳的方法來完成我們的任務。

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

  • 瞭解如何使用PowerShell自動化Windows
  • 學習在PowerShell中使用cmdlet
  • 學習如何在PowerShell中使用物件
  • 在PowerShell中學習格式化、過濾和比較
  • 學習在PowerShell中使用遠端處理
  • 使用PowerShell獲取計算機資訊

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

使用批處理cmdlet

在本系列的前面,當我們向您介紹管道時,我們向您展示瞭如何獲取一個cmdlet輸出的物件,並使用如下方式將它們作為輸入傳遞給另一個cmdlet:

Get-Process -Name notepad | Stop-Process

這將殺死任何名為“記事本”的程序。但您可能想知道PowerShell是如何用一個命令殺死所有notepad例項的。答案就在Stop-processcmdlet的幫助下。

help Stop-Process –Full

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

如果檢視syntax部分中的最後一行程式碼,您可以看到InputObject引數接受Process[]型別的物件,並且每當您看到一個型別後跟兩個方括號時,這意味著該引數接受前面的一個或多個型別。在這種情況下,它接受一個或多個程序物件。從技術上講,我們可以說InputObject cmdlet接受程序陣列。每當您有一個cmdlet以這種方式支援批處理操作時,請使用它。這是第一選擇。

使用wmi

雖然WMI不是從Microsoft HQ釋出的最好技術,但它確實在如何處理物件集合的列表中名列第二。我們可以很容易地從Win32\u程序類中獲取執行的程序列表,如:

Get-WmiObject –Class Win32_Process

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

由於WMI查詢返回它自己型別的物件,因此您需要尋找一個可以停止該程序的方法,因此讓我們透過管道來獲取成員。

Get-WmiObject –Class Win32_Process | Get-Member

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

看起來最需要停止的是terminate方法,所以這一定是一個。要呼叫WMI物件上的方法,只需透過管道將其呼叫WmiMethod並指定方法的名稱。

Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate

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

太好了,成功了。每當您在WMI中獲得ReturnValue為0時,請記住命令已成功執行。

列舉

如果其他兩種方法失敗,那麼如果必須對一組物件執行某些操作,則可以列舉整個物件並對每個物件執行操作。首先,您必須找到停止單個程序的方法。

Get-Process | Get-Member -MemberType Method

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

很好,看起來我們可以使用Kill方法,然後透過管道將ForEach物件全部殺死。

Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}

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

在這裡,我們獲取所有返回process的process物件,並將它們傳遞給ForEach Object cmdlet。很像Where Object cmdlet,我們用$表示管道中的每個物件,我們可以呼叫$上的Kill()方法。儘管如此,列舉集合的速度要比上述方法慢得多,只能作為最後一個結果使用。

總結

選擇一

Get-Process -Name notepad | Stop-Process

選擇二

Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate

選擇三

Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}

這一次就到此為止,各位,下週見,更多的PowerShell樂趣。

  • 發表於 2021-04-11 22:46
  • 閱讀 ( 43 )
  • 分類:網際網路

你可能感興趣的文章

如何在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上建立已安裝程式的列表

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

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

如何修復windows應用商店中卡住的下載

...嘗試執行它。這不需要太多時間,可能會有幫助。 向powershell重新註冊windows應用商店 如果所有這些都失敗了,您可以嘗試重新註冊Windows應用商店,這是您可以重新安裝它。為此,您需要使用PowerShell,這是一種內置於Windows中...

  • 發佈於 2021-04-09 18:36
  • 閲讀 ( 40 )

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

...論您是在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
  • 閲讀 ( 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 )
njct9201
njct9201

0 篇文章

作家榜

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

相關推薦