次の方法で共有


Where-Object

プロパティ値に基づいてコレクションからオブジェクトを選択します。

構文

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>]

説明

Where-Object コマンドレットは、渡されるオブジェクトのコレクションから、特定のプロパティ値を持つオブジェクトを選択します。 たとえば、Where-Object コマンドレットを使用して、特定の日付以降に作成されたファイル、特定の ID を持つイベント、または特定のバージョンの Windows を使用するコンピューターを選択できます。

Windows PowerShell 3.0 以降では、Where-Object コマンドを作成する 2 つの異なる方法があります。

  • スクリプト ブロックの。 スクリプト ブロックを使用して、プロパティ名、比較演算子、およびプロパティ値を指定できます。 Where-Object は、スクリプト ブロック ステートメントが true であるすべてのオブジェクトを返します。

    たとえば、次のコマンドは、Normal 優先度クラスのプロセス、つまり、PriorityClass プロパティの値が Normal等しいプロセスを取得します。

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

    すべての PowerShell 比較演算子は、スクリプト ブロック形式で有効です。 詳細については、about_Comparison_Operatorsを参照してください。

  • Comparison ステートメント。 比較ステートメントを記述することもできます。これは自然言語に似ています。 比較ステートメントは、Windows PowerShell 3.0 で導入されました。

    たとえば、次のコマンドは、Normalの優先順位クラスを持つプロセスも取得します。 これらのコマンドは同等であり、同じ意味で使用できます。

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

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

    Windows PowerShell 3.0 以降では、Where-ObjectWhere-Object コマンドのパラメーターとして比較演算子を追加します。 指定しない限り、すべての演算子で大文字と小文字が区別されません。 Windows PowerShell 3.0 より前では、PowerShell 言語の比較演算子はスクリプト ブロックでのみ使用されていました。

Where-Objectする 1 つの Property を指定すると、コマンドレットはプロパティの値をブール式として扱います。 プロパティの Length の値が 0 でない場合、式は $trueに評価されます。 例: ('hi', '', 'there') | Where-Object Length

前の例は、機能的には次の例と同等です。

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

PowerShell でブール値を評価する方法の詳細については、「about_Booleans」を参照してください。

例 1: 停止したサービスを取得する

これらのコマンドは、停止されているすべてのサービスの一覧を取得します。 $_ 自動変数は、Where-Object コマンドレットに渡される各オブジェクトを表します。

最初のコマンドはスクリプト ブロック形式を使用し、2 番目のコマンドは比較ステートメント形式を使用します。 コマンドはサービスを同じ方法でフィルター処理し、同じ出力を返します。 構文のみが異なります。

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

例 2: ワーキング セットに基づいてプロセスを取得する

これらのコマンドは、250 メガバイト (MB) を超えるワーキング セットを持つプロセスを一覧表示します。 コマンドは、同じ方法でプロセスをフィルター処理し、同じ出力を返します。 構文のみが異なります。

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

例 3: プロセス名に基づいてプロセスを取得する

これらのコマンドは、文字 pで始まる ProcessName プロパティ値を持つプロセスを取得します。 Match 演算子を使用すると、正規表現の一致を使用できます。

コマンドは、同じ方法でプロセスをフィルター処理し、同じ出力を返します。 構文のみが異なります。

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

例 4: 比較ステートメント形式を使用する

この例では、Where-Object コマンドレットの新しい比較ステートメント形式を使用する方法を示します。

最初のコマンドでは、比較ステートメントの形式を使用します。 エイリアスは使用せず、すべてのパラメーターの名前が含まれます。

2 番目のコマンドは、比較コマンド形式をより自然に使用することです。 このコマンドは、Where-Object コマンドレット名の where エイリアスに置き換え、省略可能なすべてのパラメーター名を省略します。

コマンドは、同じ方法でプロセスをフィルター処理し、同じ出力を返します。 構文のみが異なります。

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

例 5: プロパティに基づいてコマンドを取得する

この例では、true または false、または指定したプロパティの値を持つ項目を返すコマンドを記述する方法を示します。 各例は、コマンドのスクリプト ブロック形式と比較ステートメント形式の両方を示しています。

コマンドは入力を同じ方法でフィルター処理し、同じ出力を返します。 構文のみが異なります。

# 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 }

例 6: 複数の条件を使用する

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

この例では、複数の条件を持つ Where-Object コマンドを作成する方法を示します。

このコマンドは、更新可能なヘルプ機能をサポートするコア以外のモジュールを取得します。 このコマンドは、Get-Module コマンドレットの ListAvailable パラメーターを使用して、コンピューター上のすべてのモジュールを取得します。 パイプライン演算子 (|) は、モジュールを Where-Object コマンドレットに送信します。このコマンドレットは、名前が Microsoft または PSで始まらないモジュールを取得し、HelpInfoURI プロパティの値を持ち、モジュールの更新されたヘルプ ファイルを検索する場所を PowerShell に指示します。 -and 論理演算子は、比較ステートメントを接続します。

この例では、スクリプト ブロック コマンド形式を使用します。 -and-or-not などの論理演算子は、スクリプト ブロックでのみ有効です。 Where-Object コマンドの比較ステートメント形式では使用できません。

  • PowerShell 論理演算子の詳細については、「about_Logical_Operators」を参照してください。
  • 更新可能なヘルプ機能の詳細については、「about_Updatable_Help」を参照してください。

パラメーター

-CContains

オブジェクトのプロパティ値が指定した値と完全に一致する場合に、このコマンドレットがコレクションからオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

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

CContains は値のコレクションを参照し、コレクションに指定した値と完全に一致する項目が含まれている場合は true です。 入力が 1 つのオブジェクトの場合、PowerShell はそれを 1 つのオブジェクトのコレクションに変換します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CEQ

プロパティ値が指定した値と同じ場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CGE

プロパティ値が指定した値以上の場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CGT

プロパティ値が指定した値より大きい場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CIn

プロパティ値に指定した値が含まれている場合、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

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

CIn は、プロパティと値の位置 逆の点を除き、CContainsに似ています。 たとえば、次のステートメントは両方とも true です。

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

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CLE

プロパティ値が指定した値以下の場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CLike

プロパティ値がワイルドカード文字 (*) を含む値と一致する場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CLT

プロパティ値が指定した値より小さい場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CMatch

プロパティ値が指定された正規表現と一致する場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。 入力が 1 つのオブジェクトの場合、一致した値は $Matches 自動変数に保存されます。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CNE

プロパティ値が指定した値と異なる場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CNotContains

オブジェクトのプロパティ値が指定した値と完全に一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

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

NotContainsCNotContains 値のコレクションを参照します。指定した値と完全に一致する項目がコレクションに含まれていない場合は true です。 入力が 1 つのオブジェクトの場合、PowerShell はそれを 1 つのオブジェクトのコレクションに変換します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CNotIn

プロパティ値が指定した値と完全に一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

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

NotIn 演算子と CNotIn 演算子は、プロパティと値の位置が逆になっている点を除き、NotContains および CNotContainsに似ています。 たとえば、次のステートメントは true です。

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

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

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CNotLike

プロパティ値がワイルドカード文字を含む値と一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CNotMatch

プロパティ値が指定された正規表現と一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。 この操作では、大文字と小文字が区別されます。 入力が 1 つのオブジェクトの場合、一致した値は $Matches 自動変数に保存されます。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Contains

オブジェクトのプロパティ値の項目が指定した値と完全に一致する場合に、このコマンドレットがオブジェクトを取得することを示します。

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

入力が 1 つのオブジェクトの場合、PowerShell はそれを 1 つのオブジェクトのコレクションに変換します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:IContains
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-EQ

プロパティ値が指定した値と同じ場合に、このコマンドレットがオブジェクトを取得することを示します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:IEQ
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FilterScript

オブジェクトのフィルター処理に使用するスクリプト ブロックを指定します。 スクリプト ブロックを中かっこ ({}) で囲みます。

パラメーター名 (FilterScript ) は省略可能です。

型:ScriptBlock
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-GE

プロパティ値が指定した値以上の場合に、このコマンドレットがオブジェクトを取得することを示します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:IGE
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-GT

プロパティ値が指定した値より大きい場合に、このコマンドレットがオブジェクトを取得することを示します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:IGT
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-In

プロパティ値が指定した値のいずれかに一致する場合に、このコマンドレットがオブジェクトを取得することを示します。 例えば:

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

入力が 1 つのオブジェクトの場合、PowerShell はそれを 1 つのオブジェクトのコレクションに変換します。

オブジェクトのプロパティ値が配列の場合、PowerShell は参照の等価性を使用して一致を判断します。 Where-Object は、Property パラメーターの値と Value の値がオブジェクトの同じインスタンスである場合にのみ、オブジェクトを返します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:IIn
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

フィルター処理するオブジェクトを指定します。 オブジェクトをパイプ処理して Where-Objectすることもできます。

コマンドの結果をパイプ処理して Where-Objectするのではなく、Where-ObjectInputObject パラメーターを使用すると、コマンドレットは InputObject を 1 つのオブジェクトとして扱います。 これは、値がコマンドの結果であるコレクション (-InputObject (Get-Process)など) の場合でも当てはまります。

InputObject は、配列またはオブジェクトのコレクションから個々のプロパティを返すことはできません。そのため、Where-Object を使用して、定義されたプロパティに特定の値を持つオブジェクトのコレクションをフィルター処理する場合は、このトピックの例に示すように、パイプラインで Where-Object を使用することをお勧めします。

型:PSObject
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Is

プロパティ値が指定した .NET 型のインスタンスである場合、このコマンドレットがオブジェクトを取得することを示します。 型名を角かっこで囲みます。

たとえば、Get-Process | Where-Object StartTime -Is [DateTime]

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-IsNot

プロパティ値が指定した .NET 型のインスタンスでない場合に、このコマンドレットがオブジェクトを取得することを示します。

たとえば、Get-Process | where StartTime -IsNot [DateTime]

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LE

プロパティ値が指定した値以下の場合に、このコマンドレットがオブジェクトを取得することを示します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:ILE
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Like

プロパティ値がワイルドカード文字 (*) を含む値と一致する場合に、このコマンドレットがオブジェクトを取得することを示します。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:ILike
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LT

プロパティ値が指定した値より小さい場合に、このコマンドレットがオブジェクトを取得することを示します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:ILT
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Match

プロパティ値が指定された正規表現と一致する場合に、このコマンドレットがオブジェクトを取得することを示します。 入力が 1 つのオブジェクトの場合、一致した値は $Matches 自動変数に保存されます。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:IMatch
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NE

プロパティ値が指定した値と異なる場合に、このコマンドレットがオブジェクトを取得することを示します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:INE
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Not

プロパティが存在しない場合、または値が $null または $falseの場合、このコマンドレットがオブジェクトを取得することを示します。

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

このパラメーターは、Windows PowerShell 6.1 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NotContains

プロパティ値内の項目が指定した値と完全に一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。

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

NotContains は値のコレクションを参照し、指定した値と完全に一致する項目がコレクションに含まれていない場合は true です。 入力が 1 つのオブジェクトの場合、PowerShell はそれを 1 つのオブジェクトのコレクションに変換します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:INotContains
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NotIn

プロパティ値が指定された値のいずれにも完全に一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。

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

Value の値が 1 つのオブジェクトの場合、PowerShell はそれを 1 つのオブジェクトのコレクションに変換します。

オブジェクトのプロパティ値が配列の場合、PowerShell は参照の等価性を使用して一致を判断します。 Where-Object は、Property の値と Value の値がオブジェクトの同じインスタンスでない場合にのみ、オブジェクトを返します。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:INotIn
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NotLike

プロパティ値がワイルドカード文字 (*) を含む値と一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:INotLike
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NotMatch

プロパティ値が指定された正規表現と一致しない場合に、このコマンドレットがオブジェクトを取得することを示します。 入力が 1 つのオブジェクトの場合、一致した値は $Matches 自動変数に保存されます。

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
Aliases:INotMatch
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Property

入力オブジェクトのプロパティの名前を指定します。 プロパティは、静的プロパティではなく、インスタンス プロパティである必要があります。 これは位置指定パラメーターであるため、名前 Propertyは省略可能です。

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Value

プロパティ値を指定します。 パラメーター名 Valueは省略可能です。 このパラメーターは、次の比較パラメーターで使用する場合にワイルドカード文字を受け取ります。

  • CLike
  • CNotLike
  • のような
  • NotLike

このパラメーターは、Windows PowerShell 3.0 で導入されました。

型:PSObject
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

入力

PSObject

任意のオブジェクトをこのコマンドレットにパイプできます。

出力

Object

このコマンドレットは、入力オブジェクト セットから選択した項目を返します。

メモ

PowerShell には、Where-Objectの次のエイリアスが含まれています。

  • すべてのプラットフォーム:
    • ?
    • where

Windows PowerShell 4.0 以降では、コレクションで使用する Where メソッドと ForEach メソッドが追加されました。

これらのメソッドの詳細については、about_arrays