Compartir a través de


Invoke-CMWmiQuery

Ejecute una consulta WMI.

Sintaxis

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 cmdlets de Configuration Manager desde la unidad de sitio de Configuration Manager, por ejemplo PS 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 la clase WMI de Configuration Manager que desea consultar.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Confirm

Solicitará confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.

Tipo:Hashtable
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-DisableWildcardHandling

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ForceWildcardHandling

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.
  • ExpectResults ExpectResultsThrowException& : si la consulta no devuelve ningún resultado, inicie una excepción. Normalmente, esta excepción finaliza un script.
  • FastExpectResults LazyExpectResults& : 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, consulte Propiedades diferidas de Configuration Manager.

Los siguientes valores son solo para uso interno:

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
Tipo:QueryOptions
Alias:Options
Valores aceptados:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Query

Especifica una instrucción lenguaje de consulta WMI (WQL).

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Especifica un objeto SMSProviderSearch .

Tipo:SmsProviderSearch
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-WhatIf

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

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

None

Salidas

IResultObject[]

IResultObject