Share via


Invoke-CMWmiQuery

Execute uma consulta WMI.

Syntax

Invoke-CMWmiQuery
      [-Context <Hashtable>]
      [-Option <QueryOptions>]
      [-Query] <String>
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CMWmiQuery
      -ClassName <String>
      [-Context <Hashtable>]
      [-Option <QueryOptions>]
      -Search <SmsProviderSearch>
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

O cmdlet Invoke-CMWmiQuery executa uma consulta WMI (Instrumentação de Gerenciamento do Windows). Ao contrário de outros cmdlets ou ferramentas de consulta, com esse cmdlet, a conexão e o namespace já estão configurados para você.

Você também pode usar esse cmdlet para criar uma consulta com WQL (Linguagem de Consulta WMI). Configuration Manager usa o WQL para consultas em coleções. O WQL é semelhante ao SQL, mas ainda usa o Provedor de SMS, portanto, respeita os controles de acesso baseados em função.

Observação

Execute Configuration Manager cmdlets da unidade do site Configuration Manager, por exemplo PS XYZ:\>. Para obter mais informações, confira introdução.

Exemplos

Exemplo 1: executar uma consulta WQL

O primeiro comando cria uma consulta WQL e a armazena na variável $WQL . O segundo comando executa a consulta armazenada na variável.

$WQL = @"
SELECT app.* FROM SMS_ApplicationLatest AS app
INNER JOIN SMS_CIContentPackage AS con ON app.CI_ID=con.CI_ID
INNER JOIN SMS_DistributionPoint AS srv ON con.PackageID=srv.PackageID
WHERE app.IsHidden = 0
"@

Invoke-CMWmiQuery -Query $WQL -Option Lazy

Exemplo 2: executar uma consulta WMI para coleções de dispositivos

O primeiro comando cria um objeto de pesquisa e armazena o objeto na variável $Search .

O segundo comando especifica que a ordem de pesquisa está subindo pelo CollectionID.

O terceiro comando adiciona parâmetros de pesquisa ao objeto $Search . Nesse caso, a consulta pesquisa coleções de dispositivos.

O último comando executa a consulta armazenada em $Search. Ele especifica SMS_Collection como a classe que contém a propriedade CollectionID .

$Search = [Microsoft.ConfigurationManagement.PowerShell.Provider.SmsProviderSearch]::new()
$Search.AddOrder("CollectionID", [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOrderBy]::Asc)
$Search.Add("Name","DeviceCol*", $True)

Invoke-CMWmiQuery -Search $Search -ClassName "SMS_Collection" -Option Lazy

Exemplo 3: executar uma consulta WMI para sites por status

O primeiro comando limpa os parâmetros de pesquisa de qualquer objeto de pesquisa existente.

O segundo comando adiciona parâmetros de pesquisa ao objeto $Search . Nesse caso, a consulta procura sites.

O último comando executa a consulta armazenada em $Search. Ele especifica SMS_Site como a classe que contém a propriedade Status do site.

$Search.Clear()
$Search.Add("Status", $True)

Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search

Exemplo 4: executar uma consulta WMI para sites por nome

O primeiro comando limpa os parâmetros de pesquisa de qualquer objeto de pesquisa existente.

O segundo comando adiciona parâmetros de pesquisa ao objeto $Search . Nesse caso, a consulta procura sites.

O último comando executa a consulta armazenada em $Search. Ele especifica SMS_Site como a classe que contém a propriedade SiteName .

$Search.Clear()
$Search.Add("SiteName", $null, [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOperator]::NotEquals)

Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search

Exemplo 5: executar uma consulta WMI para aplicativos

O primeiro comando limpa os parâmetros de pesquisa de qualquer objeto de pesquisa existente.

O segundo comando adiciona parâmetros de pesquisa ao objeto $Search . Nesse caso, a consulta pesquisa aplicativos.

O último comando executa a consulta armazenada em $Search. Ele especifica SMS_Application como a classe que contém a propriedade CI_ID do site.

$Search.Clear()
$Search.AddAdhoc("CI_ID > 0")

Invoke-CMWmiQuery -ClassName "SMS_Application" -Search $Search -Option Lazy

Parâmetros

-ClassName

Especifica a classe WMI Configuration Manager que você deseja consultar.

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

-Confirm

Solicita a confirmação antes de executar o cmdlet.

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

-Context

Especifique o contexto WMI como uma tabela de hash. É uma lista de pares de nome/valor que são passados para um provedor WMI que dá suporte a informações de contexto para uma operação personalizada.

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

-DisableWildcardHandling

Esse parâmetro trata caracteres curinga como valores de caractere literal. Você não pode combiná-lo com ForceWildcardHandling.

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

-ForceWildcardHandling

Esse parâmetro processa caracteres curinga e pode levar a um comportamento inesperado (não recomendado). Você não pode combiná-lo com DisableWildcardHandling.

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

-Option

A opção mais comum é Fast.

Especifique uma opção de consulta:

  • None:Padrão
  • Lazy: por padrão, o cmdlet carrega propriedades lentas.
  • Fast: use essa opção para não carregar propriedades lentas. Essa opção pode retornar resultados mais rapidamente para algumas classes.
  • ExpectResultsExpectResultsThrowException&: se a consulta não retornar resultados, crie uma exceção. Essa exceção normalmente termina um script.
  • FastExpectResultsLazyExpectResults& : essas opções combinam Fast e Lazy com ExpectResults.
  • ExpectResultsSoftFail: se a consulta não retornar resultados, gere um erro, mas não termine o script.

Para obter mais informações sobre propriedades preguiçosas, consulte Configuration Manager propriedades lentas.

Os seguintes valores são somente para uso interno:

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
Type:QueryOptions
Aliases:Options
Accepted values:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Especifica uma instrução WQL (WQL).

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

Especifica um objeto SMSProviderSearch .

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

-WhatIf

Mostrar o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

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

Entradas

None

Saídas

IResultObject[]

IResultObject