Get-WmiObject

WMI(Windows Management Instrumentation) 클래스의 인스턴스 또는 사용 가능한 클래스에 대한 정보를 가져옵니다.

Syntax

Get-WmiObject
   [-Class] <String>
   [[-Property] <String[]>]
   [-Filter <String>]
   [-Amended]
   [-DirectRead]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [[-Class] <String>]
   [-Recurse]
   [-Amended]
   [-List]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-DirectRead]
   -Query <String>
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]

Description

PowerShell 3.0부터 이 cmdlet은 Get-CimInstance.

cmdlet은 Get-WmiObject WMI 클래스의 인스턴스 또는 사용 가능한 WMI 클래스에 대한 정보를 가져옵니다. 원격 컴퓨터를 지정하려면 ComputerName 매개 변수를 사용합니다. List 매개 변수를 지정하면 cmdlet은 지정된 네임스페이스에서 사용할 수 있는 WMI 클래스에 대한 정보를 가져옵니다. Query 매개 변수를 지정하면 cmdlet은 WQL(WMI 쿼리 언어) 문을 실행합니다.

cmdlet은 Get-WmiObject 원격 작업을 수행하기 위해 Windows PowerShell 원격을 사용하지 않습니다. 컴퓨터가 Windows PowerShell 원격에 Get-WmiObject 대한 요구 사항을 충족하지 않거나 Windows PowerShell에서 원격으로 구성되지 않은 경우에도 cmdlet의 ComputerName 매개 변수를 사용할 수 있습니다.

Windows PowerShell 3.0부터 반환하는 Get-WmiObject 개체의 __Server 속성에는 PSComputerName 별칭이 있습니다. 이렇게 하면 출력 및 보고서에 원본 컴퓨터 이름을 더 쉽게 포함할 수 있습니다.

예제

예제 1: 로컬 컴퓨터에서 프로세스 가져오기

이 예제에서는 로컬 컴퓨터의 프로세스를 가져옵니다.

Get-WmiObject -Class Win32_Process

예제 2: 원격 컴퓨터에서 서비스 가져오기

이 예제에서는 원격 컴퓨터에서 서비스를 가져옵니다. ComputerName 매개 변수는 원격 컴퓨터의 IP 주소를 지정합니다. 기본적으로 현재 사용자 계정은 원격 컴퓨터에서 관리istrators 그룹의 구성원이어야 합니다.

Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62

예제 3: 로컬 컴퓨터의 루트 또는 기본 네임스페이스에서 WMI 클래스 가져오기

이 예제에서는 로컬 컴퓨터의 루트 또는 기본 네임스페이스에서 WMI 클래스를 가져옵니다.

Get-WmiObject -Namespace "root/default" -List

예제 4: 여러 컴퓨터에서 명명된 서비스 가져오기

이 예제에서는 ComputerName 매개 변수 값으로 지정된 컴퓨터에서 WinRM 서비스를 가져옵니다.

Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
  Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status

PSComputerName : SERVER01
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessID      : 844
StartMode      : Auto
State          : Running
Status         : OK

PSComputerName : SERVER02
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessID      : 932
StartMode      : Auto
State          : Running
Status         : OK

파이프라인 연산자(|)는 출력을 cmdlet으로 Format-List 보내 PSComputerName 속성을 기본 출력에 추가합니다. PSComputerName은 반환되는 개체 Get-WmiObject__Server 속성의 별칭입니다. 이 별칭은 PowerShell 3.0에서 도입되었습니다.

예제 5: 원격 컴퓨터에서 서비스 중지

다음은 원격 컴퓨터에서 WinRM 서비스를 중지하는 예제입니다. Get-WmiObject 는 Server01에서 WinRM 서비스 개체의 인스턴스를 가져옵니다. 그런 다음 해당 개체에서 Win32_Service WMI 클래스의 StopService 메서드를 호출합니다.

(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()

이는 cmdlet을 Stop-Service 사용하는 것과 같습니다.

예제 6: 로컬 컴퓨터에서 BIOS 가져오기

이 예제에서는 로컬 컴퓨터에서 BIOS 정보를 가져옵니다. cmdlet의 Format-List Property 매개 변수는 반환된 개체의 모든 속성을 목록에 표시하는 데 사용됩니다. 기본적으로 구성 파일에 정의된 Types.ps1xml 속성의 하위 집합만 표시됩니다.

Get-WmiObject -Class Win32_Bios | Format-List -Property *

Status                : OK
Name                  : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption               : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent         : True
__GENUS               : 2
__CLASS               : Win32_BIOS
__SUPERCLASS          : CIM_BIOSElement
__DYNASTY             : CIM_ManagedSystemElement
__RELPATH             : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT      : 27
__DERIVATION          : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER              : Server01
__NAMESPACE           : root\cimv2
__PATH                : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics   : {7, 9, 10, 11...}
BIOSVersion           : {DELL   - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber           :
CodeSet               :
CurrentLanguage       : en|US|iso8859-1
Description           : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode    :
InstallableLanguages  : 1
InstallDate           :
LanguageEdition       :
ListOfLanguages       : {en|US|iso8859-1}
Manufacturer          : Dell Inc.
OtherTargetOS         :
PrimaryBIOS           : True
ReleaseDate           : 20101103000000.000000+000
SerialNumber          : 8VDM9P1
SMBIOSBIOSVersion     : A05
SMBIOSMajorVersion    : 2
SMBIOSMinorVersion    : 6
SoftwareElementID     : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState  : 3
TargetOperatingSystem : 0
Version               : DELL   - 15
Scope                 : System.Management.ManagementScope
Path                  : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options               : System.Management.ObjectGetOptions
ClassPath             : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties            : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties      : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers            : {dynamic, Locale, provider, UUID}
Site                  :
Container             :

예제 7: 원격 컴퓨터에서 서비스 가져오기

이 예제에서는 cmdlet의 Get-WmiObject 자격 증명 매개 변수를 사용하여 원격 컴퓨터에서 서비스를 가져옵니다. 자격 증명 매개 변수의 값은 사용자 계정 이름입니다. 암호를 입력하라는 메시지가 표시됩니다.

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam

참고 항목

로컬 컴퓨터를 대상으로 지정할 때는 자격 증명을 사용할 수 없습니다.

매개 변수

-Amended

WMI에서 반환되는 개체에 수정된 정보가 포함되어야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. 일반적으로 수정된 정보는 WMI 개체에 연결된 개체 및 속성 설명과 같은 지역화 가능한 정보입니다.

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

-AsJob

명령을 백그라운드 작업으로 실행합니다. 이 매개 변수를 사용하여 완료하는 데 시간이 오래 걸리는 명령을 실행합니다.

AsJob 매개 변수를 사용하는 경우 명령은 백그라운드 작업을 나타내는 개체를 반환한 다음 명령 프롬프트를 표시합니다. 작업이 완료되는 동안 세션에서 작업을 계속할 수 있습니다. ComputerName 매개 변수와 함께 사용되는 경우 Get-WmiObject 작업이 로컬 컴퓨터에 만들어지고 원격 컴퓨터의 결과가 자동으로 로컬 컴퓨터로 반환됩니다. 작업을 관리하려면 명사(명사)를 포함하는 cmdlet을 Job 사용합니다. 작업 결과를 얻으려면 cmdlet을 Receive-Job 사용합니다.

Windows PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobsabout_Remote_Jobs 참조하세요.

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

-Authentication

WMI 연결에 사용되는 인증 수준을 지정합니다. 유효한 값은 다음과 같습니다.

  • -1: 변경되지 않음
  • 0: 기본값
  • 1: 없음 (수행된 인증 없음)
  • 2: 커넥트(클라이언트가 애플리케이션과 관계를 설정할 때만 인증이 수행됩니다.)
  • 3: 호출 (인증은 애플리케이션이 요청을 수신할 때 각 호출의 시작 부분에만 수행됩니다.)
  • 4: 패킷 (클라이언트에서 받은 모든 데이터에 대해 인증이 수행됩니다.)
  • 5: PacketIntegrity (클라이언트와 애플리케이션 간에 전송되는 모든 데이터는 인증되고 확인됩니다.)
  • 6: PacketPrivacy (다른 인증 수준의 속성이 사용되며 모든 데이터가 암호화됩니다.)
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authority

WMI 연결을 인증하는 데 사용할 권한을 지정합니다. 표준 NTLM 또는 Kerberos 인증을 지정할 수 있습니다. NTLM을 사용하려면 유효한 NTLM do기본 이름을 식별하는 기관 설정을 ntlmdomain:<DomainName><DomainName> 설정합니다. Kerberos를 사용하려면 .를 지정합니다 kerberos:<DomainName>\<ServerName>. 로컬 컴퓨터에 연결할 때는 기관 설정을 포함할 수 없습니다.

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

-Class

WMI 클래스의 이름을 지정합니다. 이 매개 변수를 사용하면 cmdlet은 WMI 클래스의 인스턴스를 검색합니다.

Type:String
Aliases:ClassName
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

관리 작업의 대상 컴퓨터를 지정합니다. FQDN(정규화된 do기본 이름), NetBIOS 이름 또는 IP 주소를 입력합니다. 원격 컴퓨터가 로컬 컴퓨터와 다른 기본 경우 정규화된 do기본 이름이 필요합니다.

기본값은 로컬 컴퓨터입니다. 컴퓨터 이름 목록과 같은 로컬 컴퓨터를 지정하려면 , 로컬 컴퓨터 이름 또는 점(.)을 사용합니다localhost.

원격 컴퓨터를 지정할 때 현재 계정 또는 자격 증명 매개 변수를 사용하여 지정한 계정에는 정보에 액세스할 수 있는 적절한 권한이 있어야 합니다.

이 매개 변수는 WS-Management를 사용하는 Windows PowerShell 원격 기능을 사용하지 않습니다. 컴퓨터가 WS-Management 원격 명령을 실행하도록 구성되지 않은 경우에도 ComputerName 매개 변수 Get-WmiObject 를 사용할 수 있습니다.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

이 작업을 수행할 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다. 사용자 이름(예: User01, Domain01\User01또는 User@Contoso.com.)을 입력합니다. 또는 cmdlet에서 반환되는 개체와 같은 PSCredential 개체를 Get-Credential 입력합니다. 사용자 이름을 입력하면 암호를 입력하라는 메시지가 표시됩니다. 로컬 컴퓨터를 대상으로 지정할 때는 자격 증명을 사용할 수 없습니다.

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

-DirectRead

기본 클래스 또는 파생 클래스와 관계없이 지정된 클래스에 대해 WMI 공급자에 대한 직접 액세스를 요청할지 여부를 지정합니다.

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

-EnableAllPrivileges

명령이 WMI를 호출하기 전에 현재 사용자의 모든 권한을 사용하도록 설정합니다.

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

-Filter

필터로 사용할 Where 절을 지정합니다. WQL(WMI Query Language) 언어 구문을 사용합니다.

Important

Where 키워드(keyword) 매개 변수 값에 포함하지 마세요. 예를 들어 다음 명령은 Where 키워드(keyword) 사용하지 않고 DeviceID c: 가 있는 논리 디스크와 이름이 'WinRM'인 서비스만 반환합니다.

Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "

Get-WmiObject win32_service -filter "name='WinRM'"

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

-Impersonation

사용할 가장 수준을 지정합니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 0: 기본값입니다. 기본 가장 수준에 대한 로컬 레지스트리를 읽습니다. 기본값은 일반적으로 가장으로 설정됩니다.
  • 1: 익명입니다. 호출자의 자격 증명을 숨깁니다.
  • 2: 식별합니다. 개체가 호출자의 자격 증명을 쿼리할 수 있습니다.
  • 3: 가장합니다. 개체가 호출자의 자격 증명을 사용할 수 있습니다.
  • 4: 대리자입니다. 개체가 다른 개체가 호출자의 자격 증명을 사용하도록 허용할 수 있습니다.
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

네임스페이스 매개 변수로 지정된 WMI 리포지토리 네임스페이스의 WMI 클래스 이름을 가져옵니다.

List 매개 변수를 지정하지만 네임스페이스 매개 변수 Get-WmiObject 는 지정하지 않으면 기본적으로 Root\Cimv2 네임스페이스를 사용합니다. 이 cmdlet은 레지스트리 키의 기본 네임스페이스 레지스트리 항목을 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting 사용하여 기본 네임스페이스를 결정하지 않습니다.

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

-Locale

WMI 개체의 기본 설정 로캘을 지정합니다. 형식으로 값을 MS_<LCID> 입력합니다.

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

-Namespace

Class 매개 변수와 함께 사용할 경우 네임스페이스 매개 변수는 지정된 WMI 클래스가 있는 WMI 리포지토리 네임스페이스를 지정합니다. List 매개 변수와 함께 사용하면 WMI 클래스 정보를 수집할 네임스페이스를 지정합니다.

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

-Property

이 cmdlet에서 정보를 가져오는 WMI 클래스 속성을 지정합니다. 속성 이름을 입력합니다.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

지정된 WQL(WMI 쿼리 언어) 문을 실행합니다. 이 매개 변수는 이벤트 쿼리를 지원하지 않습니다.

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

-Recurse

Class 매개 변수로 지정된 클래스 이름의 현재 네임스페이스 및 기타 모든 네임스페이스를 검색합니다.

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

-ThrottleLimit

동시에 실행할 수 있는 최대 WMI 작업 수를 지정합니다. 이 매개 변수는 AsJob 매개 변수가 명령에 사용되는 경우에만 유효합니다.

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

입력

None

입력을 .에 파이프할 Get-WmiObject수 없습니다.

출력

PSObject or System.Management.Automation.RemotingJob

AsJob 매개 변수를 사용하는 경우 cmdlet은 작업 개체를 반환합니다. 그렇지 않으면 반환되는 개체는 Get-WmiObject Class 매개 변수의 값에 따라 달라집니다.

참고

Windows PowerShell에는 다음 별칭이 포함됩니다.Get-WmiObject

  • gwmi

원격 컴퓨터의 WMI 정보에 액세스하려면 원격 컴퓨터에서 로컬 관리자 그룹의 구성원인 계정으로 cmdlet을 실행해야 합니다. 또는 원격 리포지토리 WMI 네임스페이스의 기본 액세스 제어를 변경하여 다른 계정에 대한 액세스 권한을 부여할 수 있습니다.

각 WMI 클래스의 일부 속성만 기본적으로 표시됩니다. 각 WMI 클래스에 대해 표시되는 속성 집합은 구성 파일에 지정됩니다 Types.ps1xml . WMI 개체의 모든 속성을 얻으려면 or Format-List cmdlet을 Get-Member 사용합니다.