Share via


Invoke-CMWmiQuery

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

Invoke-CMWmiQuery cmdlet은 WMI(Windows Management Instrumentation) 쿼리를 실행합니다. 다른 쿼리 cmdlet 또는 도구와 달리 이 cmdlet을 사용하면 연결 및 네임스페이스가 이미 설정되어 있습니다.

이 cmdlet을 사용하여 WQL(WMI 쿼리 언어)을 사용하여 쿼리를 만들 수도 있습니다. Configuration Manager 컬렉션의 쿼리에 WQL을 사용합니다. WQL은 SQL과 비슷하지만 여전히 SMS 공급자를 사용하므로 역할 기반 액세스 제어를 준수합니다.

참고

Configuration Manager 사이트 드라이브에서 Configuration Manager cmdlet을 실행합니다(예: PS XYZ:\>). 자세한 내용은 시작을 참조하세요.

예제

예제 1: WQL 쿼리 실행

첫 번째 명령은 WQL 쿼리를 만들고 $WQL 변수에 저장합니다. 두 번째 명령은 변수에 저장된 쿼리를 실행합니다.

$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

예제 2: 디바이스 컬렉션에 대한 WMI 쿼리 실행

첫 번째 명령은 검색 개체를 만들고 개체를 $Search 변수에 저장합니다.

두 번째 명령은 검색 순서가 CollectionID에 의해 오름차순으로 오름차순이 되도록 지정합니다.

세 번째 명령은 검색 매개 변수를 $Search 개체에 추가합니다. 이 경우 쿼리는 디바이스 컬렉션을 검색합니다.

마지막 명령은 $Search 저장된 쿼리를 실행합니다. SMS_Collection 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

예제 3: 상태 사이트용 WMI 쿼리 실행

첫 번째 명령은 기존 검색 개체에서 검색 매개 변수를 지웁니다.

두 번째 명령은 검색 매개 변수를 $Search 개체에 추가합니다. 이 경우 쿼리는 사이트를 검색합니다.

마지막 명령은 $Search 저장된 쿼리를 실행합니다. SMS_Site site Status 속성을 포함하는 클래스로 지정합니다.

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

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

예제 4: 이름으로 사이트에 대한 WMI 쿼리 실행

첫 번째 명령은 기존 검색 개체에서 검색 매개 변수를 지웁니다.

두 번째 명령은 검색 매개 변수를 $Search 개체에 추가합니다. 이 경우 쿼리는 사이트를 검색합니다.

마지막 명령은 $Search 저장된 쿼리를 실행합니다. SMS_Site SiteName 속성을 포함하는 클래스로 지정합니다.

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

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

예제 5: 애플리케이션에 대한 WMI 쿼리 실행

첫 번째 명령은 기존 검색 개체에서 검색 매개 변수를 지웁니다.

두 번째 명령은 검색 매개 변수를 $Search 개체에 추가합니다. 이 경우 쿼리는 애플리케이션을 검색합니다.

마지막 명령은 $Search 저장된 쿼리를 실행합니다. SMS_Application 사이트CI_ID 속성을 포함하는 클래스로 지정합니다.

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

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

매개 변수

-ClassName

쿼리할 Configuration Manager WMI 클래스를 지정합니다.

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

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

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

-Context

WMI 컨텍스트를 해시 테이블로 지정합니다. 사용자 지정된 작업에 대한 컨텍스트 정보를 지원하는 WMI 공급자에게 전달되는 이름/값 쌍 목록입니다.

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

-DisableWildcardHandling

이 매개 변수는 와일드카드 문자를 리터럴 문자 값으로 처리합니다. ForceWildcardHandling과 결합할 수 없습니다.

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

-ForceWildcardHandling

이 매개 변수는 와일드카드 문자를 처리하고 예기치 않은 동작(권장되지 않음)으로 이어질 수 있습니다. DisableWildcardHandling과 결합할 수 없습니다.

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

-Option

가장 일반적인 옵션은 입니다 Fast.

쿼리 옵션을 지정합니다.

  • None:기본
  • Lazy: 기본적으로 cmdlet은 지연 속성을 로드합니다.
  • Fast: 지연 속성을 로드하지 않려면 이 옵션을 사용합니다. 이 옵션은 일부 클래스에 대해 결과를 더 빠르게 반환할 수 있습니다.
  • ExpectResultsExpectResultsThrowException&: 쿼리가 결과를 반환하지 않으면 예외를 throw합니다. 이 예외는 일반적으로 스크립트를 종료합니다.
  • FastExpectResultsLazyExpectResults&: 이러한 옵션은 및 를 Lazy 와 결합 Fast 합니다ExpectResults.
  • ExpectResultsSoftFail: 쿼리가 결과를 반환하지 않으면 오류를 출력하지만 스크립트를 종료하지 마세요.

지연 속성에 대한 자세한 내용은 Configuration Manager 지연 속성을 참조하세요.

내부 전용 값은 다음과 같습니다.

  • 복제
  • 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

WQL(WMI 쿼리 언어) 문을 지정합니다.

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

SMSProviderSearch 개체를 지정합니다.

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

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여줍니다. cmdlet이 실행되지 않습니다.

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

입력

None

출력

IResultObject[]

IResultObject