다음을 통해 공유


Set-WmiInstance

기존 WMI(Windows Management Instrumentation) 클래스의 인스턴스를 만들거나 업데이트합니다.

구문

Set-WmiInstance
   [-Class] <String>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   -InputObject <ManagementObject>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-ThrottleLimit <Int32>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   -Path <String>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Set-WmiInstance cmdlet은 기존 WMI(Windows Management Instrumentation) 클래스의 인스턴스를 만들거나 업데이트합니다. 생성되거나 업데이트된 인스턴스는 WMI 리포지토리에 기록됩니다.

Windows PowerShell 3.0에 도입된 새로운 CIM cmdlet은 WMI cmdlet과 동일한 작업을 수행합니다. CIM cmdlet은 WSMan(WS-Management) 표준 및 CIM(공용 정보 모델) 표준을 준수합니다. 이를 통해 cmdlet은 동일한 기술을 사용하여 Windows 기반 컴퓨터와 다른 운영 체제를 실행하는 컴퓨터를 관리할 수 있습니다. 사용하는 대신 Set-CimInstance 사용하거나 New-CimInstance cmdlet을 것이 좋습니다.

예제

예제 1: WMI 로깅 수준 설정

PS C:\> 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: 환경 변수 및 해당 값 만들기

PS C:\> 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: 여러 원격 컴퓨터에 대한 WMI 로깅 수준 설정

PS C:\> 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} 생성으로 정의된 해시 테이블을 사용합니다. 반환된 클래스 정보는 새 값을 반영합니다.

매개 변수

-Arguments

변경할 속성의 이름과 해당 속성의 새 값을 지정합니다. 이름과 값은 이름-값 쌍이어야 합니다. 이름-값 쌍은 명령줄에 해시 테이블로 전달됩니다. 예를 들어:

@{Setting1=1; Setting2=5; Setting3="test"}

형식:Hashtable
별칭:Args, Property
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-AsJob

이 cmdket가 백그라운드 작업으로 실행됨을 나타냅니다. 이 매개 변수를 사용하여 완료하는 데 시간이 오래 걸리는 명령을 실행합니다.

AsJob 매개 변수를 지정하면 이 명령은 백그라운드 작업을 나타내는 개체를 반환한 다음 명령 프롬프트를 표시합니다. 작업이 완료되는 동안 세션에서 작업을 계속할 수 있습니다. Set-WmiInstance 원격 컴퓨터에 사용되는 경우 작업이 로컬 컴퓨터에 생성되고 원격 컴퓨터의 결과가 자동으로 로컬 컴퓨터로 반환됩니다. 작업을 관리하려면 작업 명사(작업 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 연결을 인증하는 데 사용할 권한을 지정합니다. 표준 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과 같은 사용자 이름을 입력하거나 Get-Credential cmdlet에서 생성된 개체와 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하면 이 cmdlet에서 암호를 묻는 메시지가 표시됩니다.

이 매개 변수는 Windows PowerShell과 함께 설치된 공급자가 매개 변수를 사용하여 설치한 공급자에서 지원되지 않습니다.

형식:PSCredential
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-EnableAllPrivileges

이 cmdlet은 WMI를 호출하는 명령 전에 현재 사용자의 모든 권한을 사용하도록 설정했음을 나타냅니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Impersonation

사용할 가장 수준을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 0: 기본값입니다. 기본 가장 수준에 대한 로컬 레지스트리를 읽습니다. 일반적으로 3: Impersonate로 설정됩니다.
  • 1: 익명. 호출자의 자격 증명을 숨깁니다.
  • 2: 식별합니다. 개체가 호출자의 자격 증명을 쿼리할 수 있도록 허용합니다.
  • 3: 가장. 개체가 호출자의 자격 증명을 사용할 수 있도록 허용합니다.
  • 4: 대리자. 개체가 다른 개체가 호출자의 자격 증명을 사용하도록 허용할 수 있습니다.
형식:ImpersonationLevel
허용되는 값:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

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

형식:ManagementObject
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Locale

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

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Namespace

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

형식:String
별칭:NS
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Path

만들거나 업데이트하려는 인스턴스의 WMI 개체 경로를 지정합니다.

형식:String
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-PutType

WMI 인스턴스를 만들거나 업데이트할지 여부를 나타냅니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • UpdateOnly. 기존 WMI 인스턴스를 업데이트합니다.
  • CreateOnly. 새 WMI 인스턴스를 만듭니다.
  • UpdateOrCreate. WMI 인스턴스가 있는 경우 업데이트하거나 인스턴스가 없는 경우 새 인스턴스를 만듭니다.
형식:PutType
허용되는 값:None, UpdateOnly, CreateOnly, UpdateOrCreate
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ThrottleLimit

이 명령을 실행하기 위해 설정할 수 있는 최대 동시 연결 수를 지정합니다. 이 매개 변수는 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은 출력을 생성하지 않습니다.