다음을 통해 공유


New-CimInstance

CIM 인스턴스를 만듭니다.

구문

New-CimInstance
   [-ClassName] <String>
   [-Key <String[]>]
   [[-Property] <IDictionary>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-ComputerName <String[]>]
   [-ClientOnly]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CimInstance
   [-ClassName] <String>
   [-Key <String[]>]
   [[-Property] <IDictionary>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   -CimSession <CimSession[]>
   [-ClientOnly]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CimInstance
   -ResourceUri <Uri>
   [-Key <String[]>]
   [[-Property] <IDictionary>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   -CimSession <CimSession[]>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CimInstance
   -ResourceUri <Uri>
   [-Key <String[]>]
   [[-Property] <IDictionary>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-ComputerName <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CimInstance
   [-CimClass] <CimClass>
   [[-Property] <IDictionary>]
   [-OperationTimeoutSec <UInt32>]
   -CimSession <CimSession[]>
   [-ClientOnly]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CimInstance
   [-CimClass] <CimClass>
   [[-Property] <IDictionary>]
   [-OperationTimeoutSec <UInt32>]
   [-ComputerName <String[]>]
   [-ClientOnly]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

cmdlet은 New-CimInstance 로컬 컴퓨터 또는 원격 컴퓨터의 클래스 정의를 기반으로 CIM 클래스의 인스턴스를 만듭니다. 기본적으로 cmdlet은 New-CimInstance 로컬 컴퓨터에 인스턴스를 만듭니다.

예제

예제 1: CIM 클래스의 인스턴스 만들기

이 예제에서는 컴퓨터의 루트/cimv2 네임스페이스에 win32_environment CIM 클래스의 인스턴스를 만듭니다.

New-CimInstance -ClassName Win32_Environment -Property @{Name="testvar";VariableValue="testvalue";UserName="domain\user"}

클래스가 없거나, 속성이 잘못되었거나, 서버에서 호출을 거부하는 경우 클라이언트 쪽 유효성 검사가 수행되지 않습니다. 인스턴스가 성공적으로 만들어지면 cmdlet은 새로 만든 인스턴스를 출력합니다.

예제 2: 클래스 스키마를 사용하여 CIM 클래스의 인스턴스 만들기

이 예제에서는 CIM 클래스 개체를 검색하고 이름이 지정된 $class변수에 저장합니다. 그런 다음 변수의 내용이 cmdlet에 New-CimInstance 전달됩니다.

$class = Get-CimClass -ClassName Win32_Environment
New-CimInstance -CimClass $class -Property @{Name="testvar";VariableValue="testvalue";UserName="Contoso\User1"}

예제 3: 클라이언트에서 동적 인스턴스 만들기

이 예제에서는 서버에서 인스턴스를 가져오지 않고 클라이언트 컴퓨터에 Win32_Process이라는 CIM 클래스의 동적 인스턴스를 만듭니다. 새 인스턴스는 변수 $a에 저장됩니다. 이 키를 가진 인스턴스가 서버에 있는 경우 이 동적 인스턴스를 사용하여 작업을 수행할 수 있습니다.

$a = New-CimInstance -ClassName Win32_Process -Property @{Handle=0} -Key Handle -ClientOnly
Get-CimInstance -CimInstance $a
Invoke-CimMethod -CimInstance $a -MethodName GetOwner

ProcessId Name                HandleCount WorkingSetSize VirtualSize
--------- ----                ----------- -------------- -----------
0         System Idle Process 0           8192           8192

Domain         :
ReturnValue    : 2
User           :
PSComputerName :

그런 다음 cmdlet은 Get-CimInstance 특정 단일 인스턴스를 검색합니다. cmdlet은 Invoke-CimMethod 검색된 인스턴스에서 GetOwner 메서드를 호출합니다.

예제 4: 특정 네임스페이스의 CIM 클래스에 대한 인스턴스 만들기

이 예제에서는 네임스페이스 루트/어딘가에 MSFT_Something CIM 클래스의 인스턴스를 가져와서 명명$class된 변수에 저장합니다. 변수는 cmdlet에 New-CimInstance 전달되어 새 CIM 인스턴스를 만들고 새 인스턴스에서 클라이언트 쪽 유효성 검사를 수행합니다.

$class = Get-CimClass -ClassName MSFT_Something -Namespace root/somewhere
New-CimInstance -CimClass $class -Property @{"Prop1"=1;"Prop2"="value"} -ClientOnly

이 예제에서는 ClassName 매개 변수 대신 CimClass 매개 변수를 사용하여 Prop1 및 Prop2실제로 존재하고 키가 올바르게 표시되는지 확인합니다.

ClientOnly 매개 변수에는 ComputerName 또는 CimSession 매개 변수를 사용할 수 없습니다.

매개 변수

-CimClass

인스턴스의 형식을 나타내는 CIM 클래스 개체를 지정합니다. cmdlet을 Get-CimClass 사용하여 컴퓨터에서 클래스 선언을 검색합니다. 이 매개 변수를 사용하면 클라이언트 쪽 스키마 유효성 검사가 향상됩니다.

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

-CimSession

지정된 CIM 세션을 사용하여 명령을 실행합니다. CIM 세션이 포함된 변수 또는 CIM 세션을 만들거나 가져오는 명령(예: cmdlet)을 New-CimSession Get-CimSession 입력합니다. 자세한 내용은 about_CimSession 참조하세요.

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

-ClassName

작업에서 인스턴스를 만드는 CIM 클래스의 이름을 지정합니다. 참고: PowerShell은 클래스 이름 목록을 제공하기 위해 로컬 WMI 서버에서 클래스 목록을 가져오므로 탭 완성을 사용하여 클래스 목록을 찾아볼 수 있습니다.

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

-ClientOnly

인스턴스가 CIM 서버로 가지 않고 PowerShell에서만 생성됨을 나타냅니다. 이 매개 변수를 사용하여 후속 PowerShell 작업에서 사용할 메모리 내 CIM 인스턴스를 만들 수 있습니다.

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

-ComputerName

CIM 작업을 실행할 컴퓨터의 이름을 지정합니다. FQDN(정규화된 도메인 이름), NetBIOS 이름 또는 IP 주소를 지정할 수 있습니다.

이 매개 변수를 지정하는 경우 cmdlet은 WSMan 프로토콜을 사용하여 지정된 컴퓨터에 임시 세션을 만듭니다.

이 매개 변수를 지정하지 않으면 cmdlet은 COM(구성 요소 개체 모델)을 사용하여 로컬 컴퓨터에서 작업을 수행합니다.

동일한 컴퓨터에서 여러 작업을 수행하는 경우 CIM 세션을 사용하여 연결하면 성능이 향상됩니다.

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

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

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

-Key

키로 사용되는 속성을 지정합니다. 키를 지정하면 CimSessionComputerName을 사용할 수 없습니다.

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

-Namespace

새 인스턴스에 대한 클래스의 네임스페이스를 지정합니다. 기본 네임스페이스는 root/cimv2입니다. PowerShell은 네임스페이스 목록을 제공하기 위해 로컬 WMI 서버에서 네임스페이스 목록을 가져오므로 탭 완성을 사용하여 네임스페이스 목록을 찾아볼 수 있습니다.

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

-OperationTimeoutSec

cmdlet이 CIM 서버의 응답을 기다리는 시간을 지정합니다. 기본적으로 이 매개 변수의 값은 0입니다. 즉, cmdlet은 서버에 대한 기본 시간 제한 값을 사용합니다. OperationTimeoutSec 매개 변수가 3분의 강력한 연결 재시도 시간 제한보다 작은 값으로 설정된 경우 클라이언트가 다시 연결하기 전에 서버의 작업이 시간 초과되므로 OperationTimeoutSec 매개 변수 값보다 더 많이 지속되는 네트워크 오류는 복구할 수 없습니다.

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

-Property

해시 테이블(이름-값 쌍)을 사용하여 CIM 인스턴스의 속성을 지정합니다.

CimClass 매개 변수 New-CimInstance지정하는 경우 cmdlet은 클라이언트에서 속성 유효성 검사를 수행하여 지정된 속성이 서버의 클래스 선언과 일치하는지 확인합니다. CimClass 매개 변수를 지정하지 않으면 서버에서 속성 유효성 검사가 수행됩니다.

형식:IDictionary
별칭:Arguments
Position:1
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ResourceUri

리소스 클래스 또는 인스턴스의 리소스 URI(Uniform Resource Identifier)를 지정합니다. URI는 컴퓨터에서 디스크 또는 프로세스와 같은 특정 유형의 리소스를 식별하는 데 사용됩니다.

URI는 접두사와 리소스 경로로 구성됩니다. 예시:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

기본적으로 이 매개 변수를 지정하지 않으면 DMTF 표준 리소스 URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ 가 사용되고 클래스 이름이 추가됩니다.

ResourceURI는 WSMan 프로토콜을 사용하여 만든 CIM 세션이나 WSMan을 사용하여 CIM 세션을 만드는 ComputerName 매개 변수를 지정할 때만 사용할 수 있습니다. ComputerName 매개 변수를 지정하지 않고 이 매개 변수를 지정하거나 DCOM 프로토콜을 사용하여 만든 CIM 세션을 지정하는 경우 DCOM 프로토콜이 ResourceURI 매개 변수를 지원하지 않으므로 오류가 발생합니다.

ResourceUri 매개 변수와 Filter 매개 변수를 모두 지정하면 Filter 매개 변수가 무시됩니다.

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

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

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

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

Object

이 cmdlet은 CIM 인스턴스 정보를 포함하는 개체를 반환합니다.