PowerShell Cmdlet - New-Object
 記事記号:[mg1929] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    New-Object
    
概要
    Microsoft .NET Framework または COM オブジェクトのインスタンスを作成します。
    
構文
    New-Object -ComObject <string> [-Strict] [-Property <hashtable>] [<CommonPar
    ameters>]
    
    New-Object [-TypeName] <string> [[-ArgumentList] <Object[]>] [-Property <has
    htable>] [<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 としてオブジェクトに追加します。オブジェクトが PSObj
        ect ではない場合、コマンドによって未終了エラーが生成されます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Strict [<SwitchParameter>]
        作成しようとしている COM オブジェクトが相互運用機能アセンブリを使用すると、
        エラーになるよう指定します。これにより、COM 呼び出しが可能なラッパーを備
        えた .NET Framework オブジェクトと実際の COM オブジェクトとを区別できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -TypeName <string>
        .NET Framework クラスの完全修飾名を指定します。TypeName パラメーターと C
        omObject パラメーターの両方を指定することはできません。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help 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 @{n
    avigate2="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.Applicatio
    n" である COM オブジェクトを作成します。結果として得られるオブジェクトが $obj
    Shell 変数に保存されます。
    
    2 番目のコマンドは、Get-Member コマンドレットに $objShell 変数をパイプします。
    これにより、COM オブジェクトのプロパティとメソッドが表示されます。
    
    3 番目のコマンドは、オブジェクトの ToggleDesktop メソッドを呼び出してデスクト
    ップ上に開いているウィンドウを最小化します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113355
    Compare-Object 
    Select-Object 
    Sort-Object 
    ForEach-Object 
    Group-Object 
    Measure-Object 
    Tee-Object 
    Where-Object 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、New-Object
ご利用数: 1860057
感想・要望・問い合わせは こちら