다음을 통해 공유


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>]
   [-ComputerName <String[]>]
   [-ClientOnly]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CimInstance
   [-CimClass] <CimClass>
   [[-Property] <IDictionary>]
   [-OperationTimeoutSec <UInt32>]
   -CimSession <CimSession[]>
   [-ClientOnly]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

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

Property 매개 변수를 사용하여 선택한 속성의 초기 값을 설정합니다.

기본적으로 New-CimInstance cmdlet은 로컬 컴퓨터에 인스턴스를 만듭니다.

예제

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

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

이 명령은 컴퓨터의 루트/cimv2 네임스페이스에 win32_environment 명명된 CIM 클래스의 인스턴스를 만듭니다.

클래스가 없거나, 속성이 잘못되었거나, 서버에서 호출을 거부하는 경우 클라이언트 쪽 유효성 검사가 수행되지 않습니다.

인스턴스가 성공적으로 만들어지면 New-CimInstance cmdlet이 새로 만든 인스턴스를 출력합니다.

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

$class = Get-CimClass -ClassName Win32_Environment



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

이 명령 집합은 CIM 클래스 개체를 검색하고 Get-CimClass cmdlet을 사용하여 $class 변수에 저장합니다. 그런 다음 변수의 내용이 New-CimInstance cmdlet에 전달됩니다.

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

$a = New-CimInstance -ClassName Win32_Process -Property @{Handle=0} -Key Handle -ClientOnly


Get-CimInstance -CimInstance $a


Invoke-CimMethod -CimInstance $a -MethodName GetOwner

이 명령 집합은 서버에서 인스턴스를 가져오지 않고 클라이언트 컴퓨터에서 win32_Process이라는 CIM 클래스의 동적 인스턴스를 만듭니다. 이 명령 집합은 동적 인스턴스를 검색하여 $a 변수에 저장하고 변수의 내용을 Get-CimInstance cmdlet에 전달합니다. 그런 다음 Get-CimInstance cmdlet은 특정 단일 인스턴스를 검색하고 Invoke-CimMethod cmdlet을 사용하여 GetOwner 메서드를 호출합니다.

이 키를 가진 인스턴스가 서버에 있는 경우 이 동적 인스턴스를 사용하여 작업을 수행할 수 있습니다.

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

$class = Get-CimClass -ClassName MSFT_Something -Namespace root/somewhere



New-CimInstance -CimClass $class -Property @{"Prop1"=1;"Prop2"="value"} -ClientOnly

이 명령 집합은 네임스페이스 루트/어딘가에 MSFT_Something CIM 클래스의 인스턴스를 가져오고 Get-CimClass cmdlet을 사용하여 $class 변수에 저장합니다. 그런 다음 변수의 내용이 New-CimInstance cmdlet에 전달되어 새 CIM 인스턴스를 만들고 새 인스턴스에서 클라이언트 쪽 유효성 검사를 수행합니다.

예를 들어 Prop1 및 Prop2가 실제로 존재하고 키가 올바르게 표시되도록 인스턴스의 유효성을 검사하려면 ClassName 매개 변수 대신 CimClass 매개 변수를 사용합니다.

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

매개 변수

-CimClass

인스턴스의 형식을 나타내는 CIM 클래스 개체를 지정합니다.

Get-CimClass cmdlet을 사용하여 컴퓨터에서 클래스 선언을 검색할 수 있습니다.

이 매개 변수를 사용하면 클라이언트 쪽 스키마 유효성 검사가 향상됩니다.

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

-CimSession

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

형식: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은 Ws-Man 프로토콜을 사용하여 지정된 컴퓨터에 임시 세션을 만듭니다.

이 매개 변수를 지정하지 않으면 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

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

형식: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는 접두사 및 리소스 경로로 구성됩니다. 예를 들어:

https://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 인스턴스 정보를 포함하는 개체를 반환합니다.