Microsoft .NET Framework 또는 COM 개체의 인스턴스를 만듭니다.

구문

New-Object -ComObject <string> [-Strict] [-Property <hashtable>] [<CommonParameters>]

New-Object [-TypeName] <string> [[-ArgumentList] <Object[]>] [-Property <hashtable>] [<CommonParameters>]

설명

New-Object cmdlet은 .NET Framework 또는 COM 개체의 인스턴스를 만듭니다.

COM 개체의 ProgID(프로그래밍 ID)나 .NET Framework 클래스의 유형을 지정할 수 있습니다. 기본적으로 .NET Framework 클래스의 정규화된 이름을 입력하면 cmdlet은 해당 클래스의 인스턴스에 대한 참조를 반환합니다. COM 개체의 인스턴스를 만들려면 ComObject 매개 변수를 사용하고 개체의 ProgID를 해당 값으로 지정하십시오.

매개 변수

-ArgumentList <Object[]>

.NET Framework 클래스의 생성자로 전달할 인수 목록을 지정합니다. 쉼표(,)를 사용하여 목록의 요소를 구분합니다. ArgumentList의 별칭은 Args입니다.

필수 여부

false

위치

2

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ComObject <string>

COM 개체의 ProgID(프로그래밍 ID)를 지정합니다.

필수 여부

true

위치

named

기본값

없음

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Property <hashtable>

속성 값을 설정하고 새 개체의 메서드를 호출합니다.

키가 속성 또는 메서드의 이름이고 값이 속성 값이나 메서드 인수인 해시 테이블을 입력합니다. New-Object는 개체를 만들고, 각 속성 값을 설정하고, 메서드가 해시 테이블에 나타나는 순서대로 각 메서드를 호출합니다.

PSObject 클래스에서 새 개체가 파생되고 개체에 없는 속성을 지정하는 경우 New-Object는 지정한 속성을 개체에 NoteProperty로 추가합니다. 개체가 PSObject가 아닌 경우 명령은 종료되지 않은 오류를 생성합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Strict

만들려는 COM 개체에서 interop 어셈블리를 사용하는 경우 발생하는 오류를 지정합니다. 그러면 .NET Framework 개체의 실제 COM 개체를 COM에서 호출 가능한 래퍼와 구분할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-TypeName <string>

.NET Framework 클래스의 정규화된 이름을 지정합니다. TypeName 매개 변수와 ComObject 매개 변수를 모두 지정할 수는 없습니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

없음

입력을 이 cmdlet으로 파이프할 수 없습니다.

출력

Object

New-Object는 만든 개체를 반환합니다.

참고

New-Object는 VBScript CreateObject 함수의 가장 자주 사용되는 기능을 제공합니다. VBScript의 Set objShell = CreateObject("Shell.Application") 같은 문을 Windows PowerShell의 $objShell = new-object -comobject "Shell.Application"으로 변환할 수 있습니다.

New-Object는 명령줄이나 스크립트 내에서 .NET Framework 개체를 사용하기 쉽게 만들어 Windows 스크립트 호스트 환경에서 사용할 수 있는 기능을 자세히 설명합니다.

예 1

C:\PS>new-object -typename System.Version -argumentlist "1.2.3.4" 

Major  Minor  Build  Revision
-----  -----  -----  --------
1      2      3      4

설명
-----------
이 명령은 문자열 "1.2.3.4"를 생성자로 사용하여 System.Version 개체를 만듭니다.






예 2

C:\PS>$ie = new-object -comobject InternetExplorer.Application -property @{navigate2="www.microsoft.com"; visible = $true}

설명
-----------
이 명령은 Internet Explorer 응용 프로그램을 나타내는 COM 개체의 인스턴스를 만들고 Property 매개 변수를 사용하여 Navigate2 메서드를 호출하고 개체의 Visible 속성을 $true로 설정하여 응용 프로그램이 표시되도록 합니다.

이 명령은 다음과 동일합니다.

$ie = new-object -comobject InternetExplorer.Application 
$ie.navigate2("www.microsoft.com")
$ie.visible = $true






예 3

C:\PS>$a=new-object -comobject Word.Application -strict -property @{visible=$true}

New-Object : The object written to the pipeline is an instance of the type
"Microsoft.Office.Interop.Word.ApplicationClass" from the component's prima
ry interop assembly. If this type exposes different members than the IDispa
tch members, scripts written to work with this object might not work if the
 primary interop assembly is not installed.
At line:1 char:14
+ $a=New-Object  <<<< -COM Word.Application -Strict; $a.visible=$true

설명
-----------
이 명령은 Strict 매개 변수를 지정하면 만들어진 COM 개체가 interop 어셈블리를 사용할 때 New-Object cmdlet이 종료되지 않는 오류를 발생시키는 것을 보여 줍니다.






예 4

C:\PS>$objshell = new-object -comobject "Shell.Application"

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

설명
-----------
이 명령은 ComObject 매개 변수를 사용하여 ProgID "Shell.Application"이 있는 COM 개체를 만들고 결과 개체를 $objShell 변수에 저장합니다.

두 번째 명령은 $objShell 변수를 Get-Member cmdlet으로 파이프합니다. 그러면 이 cmdlet이 COM 개체의 속성 및 메서드를 표시합니다. 

세 번째 명령은 개체의 ToggleDesktop 메서드를 호출하여 바탕 화면에 열려 있는 창을 최소화합니다.






참고 항목




목차