Microsoft .NET Framework または COM オブジェクトのインスタンスを作成します。

構文

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

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

説明

New-Object コマンドレットは、.NET Framework または COM オブジェクトのインスタンスを作成します。

.NET Framework クラスの型または COM オブジェクトの ProgID を指定できます。既定では、このコマンドレットは完全修飾された .NET Framework クラスの名前を入力とし、そのクラスのインスタンスへの参照を返します。COM オブジェクトのインスタンスを作成するには、ComObject パラメーターの値にオブジェクトの ProgID を指定します。

パラメーター

-ArgumentList <Object[]>

.NET Framework クラスのコンストラクターに渡す引数の一覧を指定します。引数の一覧の各要素はコンマ (,) で区切ります。ArgumentList のエイリアスは Args です。

必須

false

位置

2

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ComObject <string>

COM オブジェクトのプログラム識別子 (ProgID) を指定します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Property <hashtable>

プロパティ値を設定し、新しいオブジェクトのメソッドを呼び出します。

キーがプロパティ名またはメソッド名で、値がプロパティ値またはメソッドの引数であるハッシュ テーブルを入力します。New-Object は、オブジェクトを作成し、ハッシュ テーブルで出現する順に各プロパティ値を設定し、各メソッドを呼び出します。

新しいオブジェクトが PSObject クラスから派生しているときに、そのオブジェクトに存在しないプロパティを指定した場合、New-Object は指定されたプロパティを NoteProperty としてオブジェクトに追加します。オブジェクトが PSObject ではない場合、コマンドによって未終了エラーが生成されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Strict

作成しようとしている COM オブジェクトが相互運用機能アセンブリを使用すると、エラーになるよう指定します。これにより、COM 呼び出しが可能なラッパーを備えた .NET Framework オブジェクトと実際の COM オブジェクトとを区別できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-TypeName <string>

.NET Framework クラスの完全修飾名を指定します。TypeName パラメーターと ComObject パラメーターの両方を指定することはできません。

必須

true

位置

1

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

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 Script Host 環境で使用できる機能を拡張します。

例 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 オブジェクトが相互運用機能アセンブリを使用すると、New-Object コマンドレットが未終了エラーを生成することを示しています。






例 4

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

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

説明
-----------
このコマンドは、ComObject パラメーターを使用して、ProgID が "Shell.Application" である COM オブジェクトを作成します。結果として得られるオブジェクトが $objShell 変数に保存されます。

2 番目のコマンドは、Get-Member コマンドレットに $objShell 変数をパイプします。これにより、COM オブジェクトのプロパティとメソッドが表示されます。

3 番目のコマンドは、オブジェクトの ToggleDesktop メソッドを呼び出してデスクトップ上に開いているウィンドウを最小化します。






関連項目




目次