Invoke-WmiMethod
WMI 메서드를 호출합니다.
구문
Invoke-WmiMethod
[-Class] <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-InputObject <ManagementObject>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-Path <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Invoke-WmiMethod cmdlet은 WMI(Windows Management Instrumentation) 개체의 메서드를 호출합니다.
Windows PowerShell 3.0에 도입된 새로운 CIM(일반 정보 모델) cmdlet은 WMI cmdlet과 동일한 작업을 수행합니다. CIM cmdlet은 WSMan(WS-Management) 표준과 CIM 표준을 준수하므로 cmdlet은 동일한 기술을 사용하여 Windows 컴퓨터와 다른 운영 체제를 실행하는 컴퓨터를 관리할 수 있습니다. Invoke-WmiMethod사용하는 대신 Invoke-CimMethodhttps://go.microsoft.com/fwlink/?LinkId=227965. 사용하는 것이 좋습니다.
예제
예제 1: 필요한 WMI 개체 순서 나열
PS C:\> ([wmiclass]'Win32_Volume').GetMethodParameters('Format')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 6
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ClusterSize : 0
EnableCompression : False
FileSystem : NTFS
Label :
QuickFormat : False
Version : 0
PSComputerName :
이 명령은 개체의 필수 순서를 나열합니다. PowerShell 3.0에서 WMI를 호출하려면 대체 메서드와 다르며 개체 값을 특정 순서로 입력해야 합니다.
예제 2: 애플리케이션 인스턴스 시작
PS C:\> ([Wmiclass]'Win32_Process').GetMethodParameters('Create')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
CommandLine :
CurrentDirectory :
ProcessStartupInformation :
PSComputerName : PS C:\> 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 : 11312
ReturnValue : 0
PSComputerName :
이 명령은 Win32_Process 클래스의 Create 메서드를 호출하여 메모장 인스턴스를 시작합니다.
ReturnValue 속성은 0으로 채워지고 명령이 완료되면 ProcessId 속성이 정수(다음 프로세스 ID 번호)로 채워집니다.
예제 3: 파일 이름 바꾸기
PS C:\> 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으로 채워집니다.
매개 변수
-ArgumentList
호출된 메서드에 전달할 매개 변수를 지정합니다. 이 매개 변수의 값은 개체의 배열이어야 하며 호출된 메서드에 필요한 순서대로 표시되어야 합니다. Invoke-CimCommand cmdlet에는 이러한 제한이 없습니다.
이러한 개체를 나열할 순서를 확인하려면 이 항목의 끝 부분에 있는 예제 1에 설명된 대로 WMI 클래스에서 GetMethodParameters() 메서드를 실행합니다.
중요: 첫 번째 값이 둘 이상의 요소를 포함하는 배열인 경우 두 번째 $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
형식: | Object[] |
별칭: | Args |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsJob
이 cmdlet이 명령을 백그라운드 작업으로 실행한다는 것을 나타냅니다. 이 매개 변수를 사용하여 완료하는 데 시간이 오래 걸리는 명령을 실행합니다.
AsJob 매개 변수를 사용하는 경우 명령은 백그라운드 작업을 나타내는 개체를 반환한 다음 명령 프롬프트를 표시합니다. 작업이 완료되는 동안 세션에서 작업을 계속할 수 있습니다. Invoke-WmiMethod 원격 컴퓨터에 대해 사용되는 경우 작업이 로컬 컴퓨터에 생성되고 원격 컴퓨터의 결과가 자동으로 로컬 컴퓨터로 반환됩니다. 작업을 관리하려면 작업 명사(작업 cmdlet)가 포함된 cmdlet을 사용합니다. 작업 결과를 얻으려면 Receive-Job cmdlet을 사용합니다.
원격 컴퓨터에서 이 매개 변수를 사용하려면 원격으로 로컬 및 원격 컴퓨터를 구성해야 합니다. 또한 Windows Vista 이상 버전의 Windows에서 관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell을 시작해야 합니다. 자세한 내용은 about_Remote_Requirements 참조하세요.
Windows PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobs 및 about_Remote_Jobs 참조하세요.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Authentication
WMI 연결에 사용할 인증 수준을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
-1: 변경되지 않음
0: 기본값
1: 없음(수행된 인증 없음)
2: 연결(클라이언트가 애플리케이션과 관계를 설정하는 경우에만 인증이 수행됩니다.)
3: 호출(인증은 애플리케이션이 요청을 수신할 때 각 호출의 시작 부분에만 수행됩니다.)
4: 패킷(클라이언트에서 받은 모든 데이터에 대해 인증이 수행됩니다.)
5: PacketIntegrity(클라이언트와 애플리케이션 간에 전송되는 모든 데이터는 인증되고 확인됩니다.)
6: PacketPrivacy(다른 인증 수준의 속성이 사용되며 모든 데이터가 암호화됩니다.)
형식: | AuthenticationLevel |
허용되는 값: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Authority
WMI 연결을 인증하는 데 사용할 권한을 지정합니다. 표준 Windows NT LAN 관리자(NTLM) 또는 Kerberos 인증을 지정할 수 있습니다. NTLM을 사용하려면 기관 설정을 ntlmdomain:<DomainName>설정합니다. 여기서 <DomainName> 유효한 NTLM 도메인 이름을 식별합니다. Kerberos를 사용하려면 kerberos를 지정합니다.<DomainName\ServerName>. 로컬 컴퓨터에 연결할 때는 기관 설정을 포함할 수 없습니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Class
호출할 정적 메서드를 포함하는 WMI 클래스를 지정합니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ComputerName
이 cmdlet이 명령을 실행하는 컴퓨터를 문자열 배열로 지정합니다. 기본값은 로컬 컴퓨터입니다.
하나 이상의 컴퓨터의 NetBIOS 이름, IP 주소 또는 정규화된 도메인 이름을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.) 또는 localhost를 입력합니다.
이 매개 변수는 Windows PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 ComputerName 매개 변수를 사용할 수 있습니다.
형식: | String[] |
별칭: | Cn |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지를 표시합니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Credential
이 작업을 수행할 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다. User01, Domain01\User01 또는 User@Contoso.com같은 사용자 이름을 입력합니다. 또는 Get-Credential cmdlet에서 반환되는 개체와 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하면 암호를 입력하라는 메시지가 표시됩니다.
형식: | PSCredential |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-EnableAllPrivileges
이 cmdlet은 명령이 WMI를 호출하기 전에 현재 사용자의 모든 권한을 사용하도록 설정했음을 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Impersonation
사용할 가장 수준을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
0: 기본값(일반적으로 "3: 가장"으로 설정된 기본 가장 수준에 대한 로컬 레지스트리를 읽습니다.)
1: 익명(호출자의 자격 증명을 숨깁니다.)
2: 식별(개체가 호출자의 자격 증명을 쿼리할 수 있도록 허용).
3: 가장(개체가 호출자의 자격 증명을 사용할 수 있도록 허용)
4: 대리자(개체가 다른 개체가 호출자의 자격 증명을 사용하도록 허용합니다.)
형식: | ImpersonationLevel |
허용되는 값: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
입력으로 사용할 ManagementObject 개체를 지정합니다. 이 매개 변수를 사용하면 플래그 및 Argument 매개 변수를 제외한 다른 모든 매개 변수는 무시됩니다.
형식: | ManagementObject |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Locale
WMI 개체의 기본 로캘을 지정합니다. 로캘 매개 변수의 값을 기본 순서로 MS_<LCID> 형식의 배열로 지정합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Name
호출할 메서드의 이름을 지정합니다. 이 매개 변수는 필수이며 null이거나 비워 둘 수 없습니다.
형식: | String |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Namespace
클래스 매개 변수와 함께 사용하는 경우 이 매개 변수는 참조된 WMI 클래스 또는 개체가 있는 WMI 리포지토리 네임스페이스를 지정합니다.
형식: | String |
별칭: | NS |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Path
WMI 클래스의 WMI 개체 경로를 지정하거나 WMI 클래스 인스턴스의 WMI 개체 경로를 지정합니다. 지정하는 클래스 또는 인스턴스는 Name 매개 변수에 지정된 메서드를 포함해야 합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ThrottleLimit
동시에 실행할 수 있는 WMI 작업 수에 대한 제한 값을 지정합니다. 이 매개 변수는 AsJob 매개 변수와 함께 사용됩니다. 제한 제한은 세션이나 컴퓨터가 아닌 현재 명령에만 적용됩니다.
형식: | Int32 |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
이 cmdlet은 입력을 허용하지 않습니다.
출력
None
이 cmdlet은 출력을 생성하지 않습니다.