다음을 통해 공유


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