다음을 통해 공유


Invoke-WmiMethod

WMI(Windows Management Instrument) 메서드를 호출합니다.

구문

Invoke-WmiMethod [-Class] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Invoke-WmiMethod cmdlet은 WMI 메서드를 호출합니다.

매개 변수

-ArgumentList <Object[]>

호출된 메서드에 전달할 매개 변수를 지정합니다. 이 매개 변수 값은 개체의 배열이어야 하며 호출된 메서드에 필요한 순서대로 표시되어야 합니다.

중요: 두 번째 $null 값은 필수입니다. 이 값이 없으면 명령에서 "'System.Byte' 유형 개체를 'System.Array' 유형으로 캐스팅할 수 없습니다."와 같은 오류가 생성됩니다.

개체 배열($binSD) 뒤에 null 값($null)을 붙이는 형식의 예는 다음과 같습니다.

PS C:\> $acl = Get-Acl test.txt

PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()

PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-AsJob

명령을 백그라운드 작업으로 실행합니다. 이 매개 변수를 사용하여 마치는 데 시간이 많이 걸리는 명령을 실행할 수 있습니다.

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

참고: 원격 컴퓨터와 함께 이 매개 변수를 사용하려면 원격 기능을 사용하도록 로컬 및 원격 컴퓨터를 구성해야 합니다. 또한 Windows Vista 이상 Windows 버전의 경우 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작해야 합니다. 자세한 내용은 about_Remote_Requirements를 참조하십시오.

Windows PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobs 및 about_Remote_Jobs를 참조하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Authentication <AuthenticationLevel>

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

-1: Unchanged

0: Default

1: None(인증 수행 안 함)

2: Connect(클라이언트가 응용 프로그램과 관계를 설정한 경우에만 인증 수행)

3: Call(응용 프로그램이 요청을 받을 때 각 호출의 시작 부분에서만 인증 수행)

4: Packet(클라이언트에서 받는 모든 데이터에서 인증 수행)

5: PacketIntegrity(클라이언트와 응용 프로그램 사이에 전송되는 모든 데이터 인증 및 확인)

6: PacketPrivacy(기타 인증 수준의 속성이 사용되고 모든 데이터가 암호화됨)

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Authority <string>

WMI 연결을 인증하는 데 사용할 기관을 지정합니다. 표준 NTLM 또는 Kerberos 인증을 지정할 수 있습니다. NTLM을 사용하려면 기관 설정을 ntlmdomain:<DomainName>으로 설정합니다. 여기서 <DomainName>은 올바른 NTLM 도메인 이름을 식별합니다. Kerberos를 사용하려면 kerberos:<DomainName\ServerName>을 지정합니다. 로컬 컴퓨터에 연결할 때 기관 설정을 포함할 수 없습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Class <string>

호출할 정적 메서드가 포함된 WMI 클래스를 지정합니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ComputerName <string[]>

관리 작업을 실행할 컴퓨터를 지정합니다. 값은 정규화된 도메인 이름, NetBIOS 이름 또는 IP(인터넷 프로토콜) 주소가 될 수 있습니다. 로컬 컴퓨터 이름, localhost 또는 점(.)을 사용하여 로컬 컴퓨터를 지정합니다. 기본값은 로컬 컴퓨터입니다. 원격 컴퓨터가 사용자와 다른 도메인에 있는 경우 정규화된 도메인 이름이 필요합니다. 값을 매개 변수로 파이프하여 이 매개 변수 값을 설정할 수도 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Credential <PSCredential>

이 작업을 수행할 수 있는 권한을 가진 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다. "User01", "Domain01\User01" 또는 User@Contoso.com과 같은 사용자 이름을 입력합니다. 또는 Get-Credential cmdlet에서 반환된 개체와 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하면 암호를 묻는 메시지가 표시됩니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-EnableAllPrivileges

명령에서 WMI 호출을 수행하기 전에 현재 사용자의 모든 권한을 활성화합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Impersonation <ImpersonationLevel>

사용할 가장 수준을 지정합니다. 유효한 값은 다음과 같습니다.

0: Default(대개 "3: Impersonate"로 설정되어 있는 기본 가장 수준에 대한 로컬 레지스트리를 읽음)

1: Anonymous(호출자의 자격 증명을 숨김)

2: Identify(개체가 호출자 자격 증명을 쿼리할 수 있음)

3: Impersonate(개체가 호출자 자격 증명을 사용할 수 있음)

4: Delegate(개체에서 다른 개체가 호출자의 자격 증명을 사용할 수 있도록 허용)

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-InputObject <ManagementObject>

입력으로 사용할 ManagementObject 개체를 지정합니다. 이 매개 변수를 사용하면 Flag 및 Argument 매개 변수 외의 다른 모든 매개 변수는 무시됩니다.

필수 여부

true

위치

named

기본값

파이프라인 입력 적용 여부

true (ByValue)

와일드카드 문자 적용 여부

false

-Locale <string>

WMI 개체의 기본 설정 로캘을 지정합니다. Locale 매개 변수의 값을 기본 설정 순서에 따라 MS_<LCID> 형식의 배열로 지정합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Name <string>

호출할 메서드의 이름을 지정합니다. 이 매개 변수는 필수 항목이며 null이거나 비워 둘 수 없습니다.

필수 여부

true

위치

2

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Namespace <string>

Class 매개 변수와 함께 사용하는 경우 이 매개 변수는 참조된 WMI 클래스 또는 개체가 있는 WMI 리포지토리 네임스페이스를 지정합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Path <string>

WMI 클래스의 WMI 개체 경로 또는 WMI 클래스 인스턴스의 WMI 개체 경로를 지정합니다. 지정하는 클래스 또는 인스턴스에는 Name 매개 변수에 지정된 메서드가 포함되어 있어야 합니다.

필수 여부

true

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ThrottleLimit <int>

사용자가 동시에 실행할 수 있는 WMI 작업 수에 대한 스로틀 값을 지정할 수 있도록 허용합니다. 이 매개 변수는 AsJob 매개 변수와 함께 사용됩니다. 스로틀 한도는 현재 명령에만 적용되며 세션이나 컴퓨터에는 적용되지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Confirm

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

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

없음

이 cmdlet은 어떠한 입력도 받지 않습니다.

출력

없음

이 cmdlet은 어떠한 출력도 생성하지 않습니다.

예 1

C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ProcessId        : 4844
ReturnValue      : 0

설명
-----------
이 명령은 Win32_Process 클래스의 Create 메서드를 호출하여 메모장 인스턴스를 시작합니다.

참고: 명령을 완료하면 ReturnValue 속성에는 0이 채워지며 ProcessID 속성에는 정수(다음 프로세스 ID 번호)가 채워집니다.





예 2

C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

설명
-----------
이 명령은 파일 이름을 바꿉니다. 이 명령은 먼저 Path 매개 변수를 사용하여 CIM_DataFile 클래스 인스턴스를 참조한 다음 Rename 메서드를 해당 인스턴스에 적용합니다.

참고: 명령을 완료하면 ReturnValue 속성에는 0이 채워집니다.





참고 항목

개념

Get-WmiObject
Remove-WmiObject
Set-WmiInstance
Get-WSManInstance
Invoke-WSManAction
New-WSManInstance
Remove-WSManInstance