Set-WmiInstance
기존 WMI(Windows Management Instrumentation) 클래스의 인스턴스를 만들거나 업데이트합니다.
구문
Set-WmiInstance [-Class] <string> [[-Arguments] <hashtable>] [-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>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance [-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>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance -InputObject <ManagementObject> [-Arguments <hashtable>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance -Path <string> [-Arguments <hashtable>] [-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>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance [-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>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance [-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>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
설명
Set-WmiInstance cmdlet은 기존 WMI 개체의 인스턴스를 만들거나 업데이트합니다. 만들거나 업데이트한 인스턴스는 WMI 리포지토리에 기록됩니다.
매개 변수
-Arguments <hashtable>
변경할 속성 이름과 해당 속성의 새 값을 지정합니다. 이름과 값은 이름-값 쌍으로 지정해야 합니다. 이름-값 쌍은 명령줄에서 해시 테이블로 전달됩니다. 예를 들면 다음과 같습니다.
-argument @{Setting1=1; Setting2=5; Setting3="test"}
필수 여부 |
false |
위치 |
2 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-AsJob
명령을 백그라운드 작업으로 실행합니다. 이 매개 변수를 사용하여 마치는 데 시간이 많이 걸리는 명령을 실행할 수 있습니다.
AsJob 매개 변수를 사용하는 경우 이 명령은 백그라운드 작업을 나타내는 개체를 반환한 다음 명령 프롬프트를 표시합니다. 작업을 마치는 동안 세션에서 작업을 계속할 수 있습니다. Set-WmiObject가 원격 컴퓨터에 대해 사용되는 경우 작업은 로컬 컴퓨터에 만들어지고 원격 컴퓨터의 결과는 자동으로 로컬 컴퓨터로 반환됩니다. 작업을 관리하려면 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 또는 점(.)을 사용하여 로컬 컴퓨터를 지정합니다. 기본값은 로컬 컴퓨터입니다. 원격 컴퓨터가 사용자와 다른 도메인에 있는 경우 정규화된 도메인 이름을 사용해야 합니다. 값을 매개 변수로 파이프하여 이 매개 변수의 값을 설정할 수 있습니다.
이 매개 변수는 WS-Management를 사용하는 Windows PowerShell 원격에 독립적입니다. WS-Management 원격 명령을 실행하도록 컴퓨터를 구성하지 않은 경우에도 Get-WmiObject의 ComputerName 매개 변수를 사용할 수 있습니다.
필수 여부 |
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 개체를 지정합니다. 이 매개 변수를 사용하는 경우 Arguments 매개 변수를 제외한 다른 모든 매개 변수는 무시됩니다.
필수 여부 |
true |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
-Locale <string>
WMI 개체의 기본 설정 로캘을 지정합니다. Locale 매개 변수는 기본 설정 순서에 따라 MS_<LCID> 형식의 배열로 지정됩니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Namespace <string>
Class 매개 변수와 함께 사용하는 경우 이 매개 변수는 참조된 WMI 클래스가 있는 WMI 리포지토리 네임스페이스를 지정합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Path <string>
만들거나 업데이트할 인스턴스의 WMI 개체 경로를 지정합니다.
필수 여부 |
true |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-PutType <PutType>
WMI 인스턴스를 만들지 또는 업데이트할지를 나타냅니다. 유효한 값은 다음과 같습니다.
UpdateOnly: 기존 WMI 인스턴스를 업데이트합니다.
CreateOnly: 새 WMI 인스턴스를 만듭니다.
UpdateOrCreate: WMI 인스턴스가 있을 경우 업데이트하고 인스턴스가 없을 경우 새 인스턴스를 만듭니다.
필수 여부 |
false |
위치 |
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>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2}
__GENUS : 2
__CLASS : Win32_WMISetting
__SUPERCLASS : CIM_Setting
__DYNASTY : CIM_Setting
__RELPATH : Win32_WMISetting=@
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_Setting}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace : \\root\cimv2
ASPScriptEnabled : False
AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X :
BackupInterval :
BackupLastTime :
BuildVersion : 6001.18000
Caption :
DatabaseDirectory : C:\Windows\system32\wbem\repository
DatabaseMaxSize :
Description :
EnableAnonWin9xConnections :
EnableEvents : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects :
HighThresholdOnEvents : 20000000
InstallationDirectory : C:\Windows\system32\wbem
LastStartupHeapPreallocation :
LoggingDirectory : C:\Windows\system32\wbem\Logs\
LoggingLevel : 2
LowThresholdOnClientObjects :
LowThresholdOnEvents : 10000000
MaxLogFileSize : 65536
MaxWaitOnClientObjects :
MaxWaitOnEvents : 2000
MofSelfInstallDirectory :
SettingID :
설명
-----------
이 명령은 WMI 로깅 수준을 2로 설정하며, 인수 매개 변수에 있는 값과 설정할 속성(함께 값 쌍으로 간주됨)을 전달합니다. 매개 변수는 @{property = value} 생성에서 정의하는 해시 테이블을 가져옵니다. 반환되는 클래스 정보에는 새 값이 반영됩니다.
예 2
C:\PS>set-wmiinstance -class win32_environment -argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}
__GENUS : 2
__CLASS : Win32_Environment
__SUPERCLASS : CIM_SystemResource
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Environment.Name="testvar",UserName="<SYSTEM>"
__PROPERTY_COUNT : 8
__DERIVATION : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",UserName="<SYSTEM>"
Caption : <SYSTEM>\testvar
Description : <SYSTEM>\testvar
InstallDate :
Name : testvar
Status : OK
SystemVariable : True
UserName : <SYSTEM>
VariableValue : testvalue
설명
-----------
이 명령은 값이 "testvalue"인 testvar 환경 변수를 만듭니다. 이를 위해 Win32_Environment WMI 클래스의 새 인스턴스를 만듭니다. 이 작업을 수행하려면 적합한 자격 증명이 필요하며 새 환경 변수를 보려면 Windows PowerShell을 다시 시작해야 합니다.
예 3
C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2} -computername system01, system02, system03
__GENUS : 2
__CLASS : Win32_WMISetting
__SUPERCLASS : CIM_Setting
__DYNASTY : CIM_Setting
__RELPATH : Win32_WMISetting=@
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_Setting}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace : \\root\cimv2
ASPScriptEnabled : False
AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X :
BackupInterval :
BackupLastTime :
BuildVersion : 6001.18000
Caption :
DatabaseDirectory : C:\Windows\system32\wbem\repository
DatabaseMaxSize :
Description :
EnableAnonWin9xConnections :
EnableEvents : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects :
HighThresholdOnEvents : 20000000
InstallationDirectory : C:\Windows\system32\wbem
LastStartupHeapPreallocation :
LoggingDirectory : C:\Windows\system32\wbem\Logs\
LoggingLevel : 2
LowThresholdOnClientObjects :
LowThresholdOnEvents : 10000000
MaxLogFileSize : 65536
MaxWaitOnClientObjects :
MaxWaitOnEvents : 2000
MofSelfInstallDirectory :
SettingID :
...
설명
-----------
이 명령은 WMI 로깅 수준을 2로 설정하며, 인수 매개 변수에 있는 값과 설정할 속성(함께 값 쌍으로 간주됨)을 전달합니다. 매개 변수는 @{property = value} 생성에서 정의하는 해시 테이블을 가져옵니다. 반환되는 클래스 정보에는 새 값이 반영됩니다.
참고 항목
개념
Get-WmiObject
Invoke-WmiMethod
Remove-WmiObject
Get-WSManInstance
Invoke-WSManAction
New-WSManInstance
Remove-WSManInstance