Invoke-CMWmiQuery

Execute uma consulta WMI.

Sintaxe

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 (Windows Management Instrumentation). Ao contrário de outros cmdlets ou ferramentas de consulta, com este cmdlet, a ligação e o espaço de nomes já estão configurados para si.

Também pode utilizar este cmdlet para criar uma consulta com a WMI Query Language (WQL). O Configuration Manager utiliza o WQL para consultas em coleções. O WQL é semelhante ao SQL, mas ainda utiliza o Fornecedor de SMS, pelo que cumpre os controlos de acesso baseados em funções.

Observação

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

Exemplos

Exemplo 1: Executar uma consulta WQL

O primeiro comando cria uma consulta WQL e armazena-a 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 é ascendente por CollectionID.

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

O último comando executa a consulta armazenada no $Search. 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 estado

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 . Neste caso, a consulta procura sites.

O último comando executa a consulta armazenada no $Search. Especifica SMS_Site como a classe que contém a propriedade Estado 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 . Neste caso, a consulta procura sites.

O último comando executa a consulta armazenada no $Search. 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 aplicações

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 . Neste caso, a consulta procura aplicações.

O último comando executa a consulta armazenada no $Search. Especifica SMS_Application como a classe que contém a propriedade site CI_ID .

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

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

Parâmetros

-ClassName

Especifica a classe WMI do Configuration Manager que pretende consultar.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Confirm

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

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Context

Especifique o contexto WMI como uma tabela hash. É uma lista de pares de nome/valor que são transmitidos a um fornecedor WMI que suporta informações de contexto para uma operação personalizada.

Tipo:Hashtable
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DisableWildcardHandling

Este parâmetro trata os carateres universais como valores de carateres literais. Não pode combiná-lo com ForceWildcardHandling.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ForceWildcardHandling

Este parâmetro processa carateres universais e pode levar a um comportamento inesperado (não recomendado). Não pode combiná-lo com DisableWildcardHandling.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Option

A opção mais comum é Fast.

Especifique uma opção de consulta:

  • None: Predefinição
  • Lazy: por predefinição, o cmdlet carrega propriedades lentas.
  • Fast: utilize esta opção para não carregar propriedades em diferido. Esta opção pode devolver resultados mais rapidamente para algumas classes.
  • ExpectResults ExpectResultsThrowException&: se a consulta não devolver resultados, crie uma exceção. Normalmente, esta exceção termina um script.
  • FastExpectResults LazyExpectResults&: estas opções combinam Fast e Lazy com ExpectResults.
  • ExpectResultsSoftFail: se a consulta não devolver resultados, produza um erro, mas não termine o script.

Para obter mais informações sobre propriedades em diferido, veja Propriedades em diferido do Configuration Manager.

Os seguintes valores destinam-se apenas a utilização interna:

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
Tipo:QueryOptions
Aliases:Options
Valores aceitos:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Query

Especifica uma instrução WMI Query Language (WQL).

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Especifica um objeto SMSProviderSearch .

Tipo:SmsProviderSearch
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-WhatIf

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

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

None

Saídas

IResultObject[]

IResultObject