0

SQLに似たPowershellの「in」状態はありますか。可能な場合は、使用方法の構文を教えてください。私のシナリオは、IDのリストを取得し、それを別のクエリで使用する必要があるということです。

以下を探しています

//Below line i veried returns values more than 1
$desktopGroupIds = Get-BrokerDesktopGroup -AdminAddress 'IPAddressgoeshere' |  select uid

Get-BrokerPrivateDesktop  -AdminAddress 'IPAddressgoeshere' | Where { $desktopGroupIds.contains($_.DesktopGroupUid) } | select DesktopGroupUid

2番目のクエリは値を返しません。値を1つずつ渡すと、2番目のクエリで結果が得られると確信しています。使用できる場合は「-in」演算子を使用するか、上記に作業が含まれるようにします。

ありがとう、

4

3 に答える 3

5

-inPowerShell 3.0で追加された逆-contains演算子です(したがって、dasari ..を使用するには更新する必要があります)。を含むと使用$array -contains -elementできますが、PS3.0では使用できます$element -in $array

にタイプミスがあるようです$desktopGroupIdS -c contains $_ .....。これを試して:

//Below line i veried returns values more than 1
$desktopGroupIds = @(Get-BrokerDesktopGroup -AdminAddress 'IPAddressgoeshere' |  select uid)

Get-BrokerPrivateDesktop  -AdminAddress 'IPAddressgoeshere' | Where { $desktopGroupIds -contains $_.DesktopGroupUid } | select DesktopGroupUid
于 2013-01-31T07:26:11.490 に答える
1

Powershellの「in」キーワードは通常、コレクションオブジェクト内のアイテムを個別に選択するために使用されます。

例えば:

foreach($item in $collection)
{
    #...Process some code...
}

ソリューションのように「Contains」を使用する場合は、@()内に最初の行を配置することで、$desktopGroupIds内のすべてを配列にキャストできます。

例えば

//Below line i veried returns values more than 1
$desktopGroupIds = @(Get-BrokerDesktopGroup -AdminAddress 'IPAddressgoeshere' |  select uid)
Get-BrokerPrivateDesktop  -AdminAddress 'IPAddressgoeshere' | Where { $desktopGroupIds.Contains($_.DesktopGroupUid) } | select DesktopGroupUid

編集

あなたが試みるかもしれないもう一つの解決策は-match演算子を使うことです:

例えば:

$desktopGroupIds = @(Get-BrokerDesktopGroup -AdminAddress 'IPAddressgoeshere' |  select uid)
Get-BrokerPrivateDesktop  -AdminAddress 'IPAddressgoeshere' | Where { $desktopGroupIds -match $_.DesktopGroupUid } | select DesktopGroupUid
于 2013-01-31T06:07:22.603 に答える
0

この問題を修正するための更新コード行を以下に示します

Get-BrokerPrivateDesktop  -AdminAddress $regionAddress | Where { $desktopGroupIds  -Contains $_.DesktopGroupUid } | select DesktopGroupUid

上記の「-Contains」の使用法に注意してください

于 2013-01-31T10:18:26.200 に答える