Where-Object

Memilih objek dari koleksi berdasarkan nilai propertinya.

Sintaks

Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     [-EQ]
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-FilterScript] <ScriptBlock>
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Match
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CEQ
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -GT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CGT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -LT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -GE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CGE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -LE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Like
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Contains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -In
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Is
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -IsNot
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     -Not
     [<CommonParameters>]

Deskripsi

Where-Object Cmdlet memilih objek yang memiliki nilai properti tertentu dari kumpulan objek yang diteruskan ke objek tersebut. Misalnya, Anda dapat menggunakan Where-Object cmdlet untuk memilih file yang dibuat setelah tanggal tertentu, peristiwa dengan ID tertentu, atau komputer yang menggunakan versi Windows tertentu.

Dimulai di Windows PowerShell 3.0, ada dua cara berbeda untuk membuat Where-Object perintah.

  • Blok skrip. Anda dapat menggunakan blok skrip untuk menentukan nama properti, operator perbandingan, dan nilai properti. Where-Object mengembalikan semua objek yang pernyataan blok skripnya benar.

    Misalnya, perintah berikut mendapatkan proses di Normal kelas prioritas, yaitu, proses di mana nilai properti PriorityClass sama dengan Normal.

    Get-Process | Where-Object {$_.PriorityClass -eq "Normal"}

    Semua operator perbandingan PowerShell valid dalam format blok skrip. Untuk informasi selengkapnya, lihat about_Comparison_Operators.

  • Pernyataan perbandingan. Anda juga dapat menulis pernyataan perbandingan, yang jauh lebih seperti bahasa alami. Pernyataan perbandingan diperkenalkan di Windows PowerShell 3.0.

    Misalnya, perintah berikut juga mendapatkan proses yang memiliki kelas prioritas .Normal Perintah ini setara dan Anda dapat menggunakannya secara bergantian.

    Get-Process | Where-Object -Property PriorityClass -EQ -Value "Normal"

    Get-Process | Where-Object PriorityClass -EQ "Normal"

    Dimulai di Windows PowerShell 3.0, Where-Object menambahkan operator perbandingan sebagai parameter dalam Where-Object perintah. Kecuali ditentukan, semua operator tidak peka huruf besar/kecil. Sebelum Windows PowerShell 3.0, operator perbandingan dalam bahasa PowerShell hanya dapat digunakan dalam blok skrip.

Saat Anda memberikan satu Properti ke Where-Object, cmdlet memperlakukan nilai properti sebagai ekspresi boolean. Saat nilai Panjang properti bukan nol, ekspresi mengevaluasi ke $true. Misalnya: ('hi', '', 'there') | Where-Object Length

Contoh sebelumnya secara fungsional setara dengan:

  • ('hi', '', 'there') | Where-Object Length -GT 0
  • ('hi', '', 'there') | Where-Object { $_.Length -gt 0 }

Untuk informasi selengkapnya tentang bagaimana PowerShell mengevaluasi boolean, lihat about_Booleans.

Contoh

Contoh 1: Dapatkan layanan yang dihentikan

Perintah ini mendapatkan daftar semua layanan yang dihentikan. Variabel $_ otomatis mewakili setiap objek yang diteruskan ke Where-Object cmdlet.

Perintah pertama menggunakan format blok skrip, perintah kedua menggunakan format pernyataan perbandingan. Perintah memfilter layanan dengan cara yang sama dan mengembalikan output yang sama. Hanya sintaksnya yang berbeda.

Get-Service | Where-Object { $_.Status -eq "Stopped" }
Get-Service | Where-Object Status -EQ "Stopped"

Contoh 2: Mendapatkan proses berdasarkan set kerja

Perintah ini mencantumkan proses yang memiliki set kerja lebih besar dari 250 megabyte (MB). Perintah memfilter proses dengan cara yang sama dan mengembalikan output yang sama. Hanya sintaksnya yang berbeda.

Get-Process | Where-Object { $_.WorkingSet -GT 250MB }
Get-Process | Where-Object WorkingSet -GT 250MB

Contoh 3: Dapatkan proses berdasarkan nama proses

Perintah ini mendapatkan proses yang memiliki nilai properti ProcessName yang dimulai dengan huruf p. Operator Match memungkinkan Anda menggunakan kecocokan ekspresi reguler.

Perintah memfilter proses dengan cara yang sama dan mengembalikan output yang sama. Hanya sintaksnya yang berbeda.

Get-Process | Where-Object { $_.ProcessName -Match "^p.*" }
Get-Process | Where-Object ProcessName -Match "^p.*"

Contoh 4: Gunakan format pernyataan perbandingan

Contoh ini menunjukkan cara menggunakan format pernyataan perbandingan baru cmdlet Where-Object .

Perintah pertama menggunakan format pernyataan perbandingan. Ini tidak menggunakan alias apa pun dan menyertakan nama untuk setiap parameter.

Perintah kedua adalah penggunaan format perintah perbandingan yang lebih alami. Perintah menggantikan where alias untuk Where-Object nama cmdlet dan menghilangkan semua nama parameter opsional.

Perintah memfilter proses dengan cara yang sama dan mengembalikan output yang sama. Hanya sintaksnya yang berbeda.

Get-Process | Where-Object -Property Handles -GE -Value 1000
Get-Process | where Handles -GE 1000

Contoh 5: Dapatkan perintah berdasarkan properti

Contoh ini menunjukkan cara menulis perintah yang mengembalikan item yang benar atau salah atau memiliki nilai apa pun untuk properti tertentu. Setiap contoh menunjukkan format blok skrip dan pernyataan perbandingan untuk perintah .

Perintah memfilter inputnya dengan cara yang sama dan mengembalikan output yang sama. Hanya sintaksnya yang berbeda.

# Use Where-Object to get commands that have any value for the OutputType
# property of the command. This omits commands that do not have an OutputType
# property and those that have an OutputType property, but no property value.
Get-Command | Where-Object OutputType
Get-Command | Where-Object { $_.OutputType }

# Use Where-Object to get objects that are containers. This gets objects that
# have the **PSIsContainer** property with a value of $True and excludes all
# others.
Get-ChildItem | Where-Object PSIsContainer
Get-ChildItem | Where-Object { $_.PSIsContainer }

# Finally, use the -not operator (!) to get objects that are not containers.
# This gets objects that do have the **PSIsContainer** property and those
# that have a value of $False for the **PSIsContainer** property.
Get-ChildItem | Where-Object -Not PSIsContainer
Get-ChildItem | Where-Object { !$_.PSIsContainer }

Contoh 6: Menggunakan beberapa kondisi

Get-Module -ListAvailable | Where-Object {
    ($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
}

Contoh ini menunjukkan cara membuat Where-Object perintah dengan beberapa kondisi.

Perintah ini mendapatkan modul non-inti yang mendukung fitur Bantuan yang Dapat Diperbarui. Perintah menggunakan parameter ListAvailable cmdlet Get-Module untuk mendapatkan semua modul di komputer. Operator alur (|) mengirim modul ke Where-Object cmdlet, yang mendapatkan modul yang namanya tidak dimulai dengan Microsoft atau PS, dan memiliki nilai untuk properti HelpInfoURI , yang memberi tahu PowerShell tempat menemukan file bantuan yang diperbarui untuk modul. Operator -and logis menyambungkan pernyataan perbandingan.

Contoh menggunakan format perintah blok skrip. Operator logis, seperti -and,-or, dan -not hanya valid dalam blok skrip. Anda tidak dapat menggunakannya dalam format pernyataan perbandingan Where-Object perintah.

Parameter

-CContains

Menunjukkan bahwa cmdlet ini mendapatkan objek dari koleksi jika nilai properti objek sama persis dengan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Misalnya: Get-Process | Where-Object ProcessName -CContains "svchost"

CContains mengacu pada kumpulan nilai dan benar jika koleksi berisi item yang sama persis dengan nilai yang ditentukan. Jika input adalah objek tunggal, PowerShell mengonversinya menjadi kumpulan satu objek.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CEQ

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti sama dengan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CGE

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti lebih besar dari atau sama dengan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CGT

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti lebih besar dari nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CIn

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti menyertakan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Misalnya: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

CIn menyerupaiCContains, kecuali bahwa posisi properti dan nilai dibalik. Misalnya, pernyataan berikut keduanya benar.

"abc", "def" -CContains "abc"

"abc" -CIn "abc", "def"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLE

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti kurang dari atau sama dengan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLike

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti cocok dengan nilai yang menyertakan karakter kartubebas (*). Operasi ini peka huruf besar/kecil.

Misalnya: Get-Process | Where-Object ProcessName -CLike "*host"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLT

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti kurang dari nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CMatch

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti cocok dengan ekspresi reguler yang ditentukan. Operasi ini peka huruf besar/kecil. Ketika input adalah objek tunggal, nilai yang cocok disimpan dalam $Matches variabel otomatis.

Misalnya: Get-Process | Where-Object ProcessName -CMatch "Shell"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNE

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti berbeda dari nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotContains

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti objek tidak sama persis dengan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Misalnya: Get-Process | Where-Object ProcessName -CNotContains "svchost"

NotContains dan CNotContains mengacu pada kumpulan nilai dan benar ketika koleksi tidak berisi item apa pun yang sama persis dengan nilai yang ditentukan. Jika input adalah objek tunggal, PowerShell mengonversinya menjadi kumpulan satu objek.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotIn

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti tidak sama persis dengan nilai yang ditentukan. Operasi ini peka huruf besar/kecil.

Misalnya: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

Operator NotIn dan CNotIn menyerupai NotContains dan CNotContains, kecuali bahwa posisi properti dan nilai dibalik. Misalnya, pernyataan berikut benar.

"abc", "def" -CNotContains "Abc"

"abc" -CNotIn "Abc", "def"

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotLike

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti tidak cocok dengan nilai yang menyertakan karakter kartubebas. Operasi ini peka huruf besar/kecil.

Misalnya: Get-Process | Where-Object ProcessName -CNotLike "*host"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotMatch

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti tidak cocok dengan ekspresi reguler yang ditentukan. Operasi ini peka huruf besar/kecil. Ketika input adalah objek tunggal, nilai yang cocok disimpan dalam $Matches variabel otomatis.

Misalnya: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Contains

Menunjukkan bahwa cmdlet ini mendapatkan objek jika ada item dalam nilai properti objek yang sama persis dengan nilai yang ditentukan.

Misalnya: Get-Process | Where-Object ProcessName -Contains "Svchost"

Jika input adalah objek tunggal, PowerShell mengonversinya menjadi kumpulan satu objek.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-EQ

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti sama dengan nilai yang ditentukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IEQ
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilterScript

Menentukan blok skrip yang digunakan untuk memfilter objek. Sertakan blok skrip dalam tanda kurung kurawal ({}).

Nama parameter, FilterScript, bersifat opsional.

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-GE

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti lebih besar dari atau sama dengan nilai yang ditentukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IGE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-GT

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti lebih besar dari nilai yang ditentukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IGT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-In

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti cocok dengan salah satu nilai yang ditentukan. Contohnya:

Get-Process | Where-Object -Property ProcessName -in -Value "Svchost", "TaskHost", "WsmProvHost"

Jika input adalah objek tunggal, PowerShell mengonversinya menjadi kumpulan satu objek.

Jika nilai properti objek adalah array, PowerShell menggunakan kesetaraan referensi untuk menentukan kecocokan. Where-Object mengembalikan objek hanya jika nilai parameter Properti dan nilai Nilai apa pun adalah instans objek yang sama.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Menentukan objek yang akan difilter. Anda juga dapat menyalurkan objek ke Where-Object.

Saat Anda menggunakan parameter InputObject dengan Where-Object, alih-alih hasil perintah pipa ke Where-Object, cmdlet memperlakukan InputObject sebagai satu objek. Ini benar bahkan jika nilainya adalah koleksi yang merupakan hasil dari perintah, seperti -InputObject (Get-Process).

Karena InputObject tidak dapat mengembalikan properti individual dari array atau kumpulan objek, kami sarankan, jika Anda menggunakan Where-Object untuk memfilter kumpulan objek untuk objek yang memiliki nilai tertentu dalam properti yang ditentukan, Anda gunakan Where-Object dalam alur, seperti yang ditunjukkan dalam contoh dalam topik ini.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Is

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti adalah instans dari jenis .NET yang ditentukan. Sertakan nama jenis dalam tanda kurung siku.

Misalnya: Get-Process | Where-Object StartTime -Is [DateTime]

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-IsNot

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti bukan instans dari jenis .NET yang ditentukan.

Misalnya: Get-Process | where StartTime -IsNot [DateTime]

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LE

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti kurang dari atau sama dengan nilai yang ditentukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:ILE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Like

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti cocok dengan nilai yang menyertakan karakter kartubebas (*).

Misalnya: Get-Process | Where-Object ProcessName -Like "*host"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:ILike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LT

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti kurang dari nilai yang ditentukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:ILT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Match

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti cocok dengan ekspresi reguler yang ditentukan. Ketika input adalah objek tunggal, nilai yang cocok disimpan dalam $Matches variabel otomatis.

Misalnya: Get-Process | Where-Object ProcessName -Match "shell"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NE

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti berbeda dari nilai yang ditentukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Not

Menunjukkan bahwa cmdlet ini mendapatkan objek jika properti tidak ada atau memiliki nilai $null atau $false.

Misalnya: Get-Service | Where-Object -Not "DependentServices"

Parameter ini diperkenalkan di Windows PowerShell 6.1.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotContains

Menunjukkan bahwa cmdlet ini mendapatkan objek jika tidak ada item dalam nilai properti yang sama persis dengan nilai yang ditentukan.

Misalnya: Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains mengacu pada kumpulan nilai dan benar jika koleksi tidak berisi item apa pun yang sama persis dengan nilai yang ditentukan. Jika input adalah objek tunggal, PowerShell mengonversinya menjadi kumpulan satu objek.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotIn

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti tidak sama persis untuk salah satu nilai yang ditentukan.

Misalnya: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Jika nilai Nilai adalah objek tunggal, PowerShell mengonversinya menjadi kumpulan satu objek.

Jika nilai properti objek adalah array, PowerShell menggunakan kesetaraan referensi untuk menentukan kecocokan. Where-Object mengembalikan objek hanya jika nilai Properti dan nilai Nilai apa pun bukan instans objek yang sama.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotLike

Menunjukkan bahwa cmdlet ini mendapatkan objek jika nilai properti tidak cocok dengan nilai yang menyertakan karakter kartubebas (*).

Misalnya: Get-Process | Where-Object ProcessName -NotLike "*host"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotLike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

Menunjukkan bahwa cmdlet ini mendapatkan objek ketika nilai properti tidak cocok dengan ekspresi reguler yang ditentukan. Ketika input adalah objek tunggal, nilai yang cocok disimpan dalam $Matches variabel otomatis.

Misalnya: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Property

Menentukan nama properti objek. Nama parameter, Properti, bersifat opsional.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Value

Menentukan nilai properti. Nama parameter, Nilai, bersifat opsional. Parameter ini menerima karakter kartubebas saat digunakan dengan parameter perbandingan berikut:

  • CLike
  • CNotLike
  • Seperti
  • Tidak Seperti

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Input

PSObject

Anda dapat menyalurkan objek apa pun ke cmdlet ini.

Output

Object

Cmdlet ini mengembalikan item yang dipilih dari set objek input.

Catatan

PowerShell menyertakan alias berikut untuk Where-Object:

  • Semua Platform:
    • ?
    • where

Mulai dari Windows PowerShell 4.0, Where dan ForEach metode ditambahkan untuk digunakan dengan koleksi.

Anda dapat membaca selengkapnya tentang metode ini di sini about_arrays