Invoke-CMWmiQuery

Ejecute una 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

El cmdlet Invoke-CMWmiQuery ejecuta una consulta de Instrumental de administración de Windows (WMI). A diferencia de otros cmdlets o herramientas de consulta, con este cmdlet la conexión y el espacio de nombres ya están configurados para usted.

También puede usar este cmdlet para crear una consulta con lenguaje de consulta WMI (WQL). Configuration Manager usa WQL para consultas en colecciones. WQL es similar a SQL, pero sigue usando el proveedor de SMS, por lo que se rige por los controles de acceso basados en roles.

Nota:

Ejecute Configuration Manager cmdlets desde la unidad de sitio Configuration Manager, por ejemploPS XYZ:\>. Para obtener más información, consulte Introducción.

Ejemplos

Ejemplo 1: Ejecución de una consulta WQL

El primer comando crea una consulta WQL y la almacena en la variable $WQL . El segundo comando ejecuta la consulta almacenada en la variable .

$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

Ejemplo 2: Ejecución de una consulta WMI para colecciones de dispositivos

El primer comando crea un objeto de búsqueda y almacena el objeto en la variable $Search .

El segundo comando especifica que el orden de búsqueda es ascendente por CollectionID.

El tercer comando agrega parámetros de búsqueda al objeto $Search . En este caso, la consulta busca colecciones de dispositivos.

El último comando ejecuta la consulta almacenada en $Search. Especifica SMS_Collection como la clase que contiene la propiedad 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

Ejemplo 3: Ejecución de una consulta WMI para sitios por estado

El primer comando borra los parámetros de búsqueda de cualquier objeto de búsqueda existente.

El segundo comando agrega parámetros de búsqueda al objeto $Search . En este caso, la consulta busca sitios.

El último comando ejecuta la consulta almacenada en $Search. Especifica SMS_Site como la clase que contiene la propiedad Status del sitio.

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

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

Ejemplo 4: Ejecución de una consulta WMI para sitios por nombre

El primer comando borra los parámetros de búsqueda de cualquier objeto de búsqueda existente.

El segundo comando agrega parámetros de búsqueda al objeto $Search . En este caso, la consulta busca sitios.

El último comando ejecuta la consulta almacenada en $Search. Especifica SMS_Site como la clase que contiene la propiedad SiteName .

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

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

Ejemplo 5: Ejecución de una consulta WMI para aplicaciones

El primer comando borra los parámetros de búsqueda de cualquier objeto de búsqueda existente.

El segundo comando agrega parámetros de búsqueda al objeto $Search . En este caso, la consulta busca aplicaciones.

El último comando ejecuta la consulta almacenada en $Search. Especifica SMS_Application como la clase que contiene la propiedad CI_ID del sitio.

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

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

Parámetros

-ClassName

Especifica el Configuration Manager clase WMI que desea consultar.

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

-Confirm

Solicitará confirmación antes de ejecutar el cmdlet.

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

-Context

Especifique el contexto WMI como una tabla hash. Es una lista de pares nombre-valor que se pasan a un proveedor WMI que admite información de contexto para una operación personalizada.

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

-DisableWildcardHandling

Este parámetro trata los caracteres comodín como valores de caracteres literales. No se puede combinar con ForceWildcardHandling.

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

-ForceWildcardHandling

Este parámetro procesa caracteres comodín y puede provocar un comportamiento inesperado (no recomendado). No se puede combinar con DisableWildcardHandling.

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

-Option

La opción más común es Fast.

Especifique una opción de consulta:

  • None:Predeterminado
  • Lazy: de forma predeterminada, el cmdlet carga propiedades diferidas.
  • Fast: use esta opción para no cargar propiedades diferidas. Esta opción puede devolver resultados más rápidamente para algunas clases.
  • ExpectResultsExpectResultsThrowException& : si la consulta no devuelve ningún resultado, inicie una excepción. Normalmente, esta excepción finaliza un script.
  • FastExpectResultsLazyExpectResults& : estas opciones se combinan Fast y Lazy con ExpectResults.
  • ExpectResultsSoftFail: si la consulta no devuelve ningún resultado, genere un error, pero no finalice el script.

Para obtener más información sobre las propiedades diferidas, vea Configuration Manager propiedades diferidas.

Los siguientes valores son solo 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 una instrucción lenguaje de consulta WMI (WQL).

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

Especifica un objeto SMSProviderSearch .

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

-WhatIf

Muestra lo que ocurriría si se ejecuta el cmdlet. El cmdlet no se ejecuta.

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

Entradas

None

Salidas

IResultObject[]

IResultObject