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-CimMethod사용하는 것이 좋습니다.
예제
예제 1: WMI 메서드 매개 변수의 필수 순서 나열
이 명령은 개체의 필수 순서를 나열합니다.
Get-WmiObject Win32_Volume |
Get-Member -MemberType Method -Name Format |
Select-Object -ExpandProperty Definition
System.Management.ManagementBaseObject Format(System.String FileSystem, System.Boolean QuickFormat,
System.UInt32 ClusterSize, System.String Label, System.Boolean EnableCompression,
System.UInt32 Version)
PowerShell 3.0에서 WMI를 호출하려면 대체 메서드와 다르며 개체 값을 특정 순서로 입력해야 합니다.
예제 2: 애플리케이션 인스턴스 시작
([Wmiclass]'Win32_Process').Create.OverloadDefinitions
System.Management.ManagementBaseObject Create(System.String CommandLine, System.String CurrentDirectory,
System.Management.ManagementObject#Win32_ProcessStartup ProcessStartupInformation)
Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList C:\Windows\system32\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: 파일 이름 바꾸기
$invokeWmiMethodSplat = @{
Path = "CIM_DataFile.Name='C:\scripts\test.txt'"
Name = 'Rename'
ArgumentList = 'C:\scripts\test_bu.txt'
}
Invoke-WmiMethod @invokeWmiMethodSplat
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
이 명령은 파일의 이름을 바꿉니다. Path 매개 변수를 사용하여 CIM_DataFile 클래스의 인스턴스를 참조합니다. 그런 다음 해당 특정 인스턴스에 Rename 메서드를 적용합니다.
명령이 완료되면 ReturnValue 속성이 0
채워집니다.
예제 4: '-ArgumentList'를 사용하여 값 배열 전달
개체 배열과 $null
값이 $binSD
예제입니다.
$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
Class = 'Win32_SecurityDescriptorHelper'
Name = 'BinarySDToSDDL'
ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat
매개 변수
-ArgumentList
호출된 메서드에 전달할 매개 변수를 지정합니다. 이 매개 변수의 값은 개체의 배열이어야 하며 호출된 메서드에 필요한 순서대로 표시되어야 합니다.
Invoke-CimCommand
cmdlet에는 이러한 제한이 없습니다.
이러한 개체를 나열할 순서를 확인하려면 이 항목의 끝부분에 있는 예제 1에 설명된 대로 WMI 클래스에서 GetMethodParameters()
메서드를 실행합니다.
중요하다
첫 번째 값이 둘 이상의 요소를 포함하는 배열인 경우 두 번째 $null
값이 필요합니다. 그렇지 않으면 명령은 Unable to cast object of type 'System.Byte' to type 'System.Array'.
같은 오류를 생성합니다. 위의 예제 4를 참조하세요.
형식: | Object[] |
별칭: | Args |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsJob
이 cmdlet이 명령을 백그라운드 작업으로 실행한다는 것을 나타냅니다. 이 매개 변수를 사용하여 완료하는 데 시간이 오래 걸리는 명령을 실행합니다.
AsJob 매개 변수를 사용하는 경우 명령은 백그라운드 작업을 나타내는 개체를 반환한 다음 명령 프롬프트를 표시합니다. 작업이 완료되는 동안 세션에서 작업을 계속할 수 있습니다. 원격 컴퓨터에 대해 Invoke-WmiMethod
사용하는 경우 작업이 로컬 컴퓨터에 생성되고 원격 컴퓨터의 결과가 자동으로 로컬 컴퓨터로 반환됩니다. 작업을 관리하려면 Job
명사(작업 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
: Connect(클라이언트가 애플리케이션과 관계를 설정할 때만 인증이 수행됨) -
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을 사용하려면 <DomainName>
유효한 NTLM 도메인 이름을 식별하는 ntlmdomain:<DomainName>
기관 설정을 설정합니다. 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은 출력을 생성하지 않습니다.
참고
Windows PowerShell에는 Invoke-WmiMethod
다음과 같은 별칭이 포함되어 있습니다.
iwmi
관련 링크
PowerShell