COMオブジェクトを生成する

Web Cast

TechNet Webcast: Next Generation Command Line Scripting with Monad (Part 2 of 2) (Level 300)によると、

以下のように打てばWScipt.Shellオブジェクトを生成できるようです。

MSH> $ws = new-object -com wscript.shell

ですが、実際にMSH beta1で、上記の通り入力してみると、
以下のエラー。

MSH> $ws = new-object -com wscript.shell
new-object : A parameter cannot be found
that matches parameter 'com'.
At line:1 char:22
+ $ws = new-object -com  <<<< wscript.shell
  • 「-com」というパラメータがが正しくないと言われます。

WinFX SDK

MSH Language and Syntaxを見ると、
COM取得時、new-objectの第1引数には「-ActiveX」を取るらしい。

MSH> $wsh = New-Object -ActiveX "WScript.Shell"

さっそく打ってみますが、さっきと同様にエラー。

MSH> $wsh = New-Object -ActiveX "WScript.Shell"
new-object : A parameter cannot be found
that matches parameter 'ActiveX'.
At line:1 char:27
+ $wsh = New-Object -ActiveX  <<<< "WScript.Shell"


どこが間違っているの?と悩んでいると、このような記事を発見。
http://www.leeholmes.com/blog/ParamStatementAndNewobject.aspx

MSH Beta1の「new-object」は、.NETオブジェクトのみサポートで、
COMはまだサポートしていないようです。


「new-object」のヘルプを見てみると、
確かに、「Creates a new .Net object」と書いてありました。(^^;

MSH> new-object -?

NAME
    new-object

SYNOPSIS
    [-TypeName] type-name
                [[-Arguments] arguments]
                [-AssemblyName]
                [-FileName]

    Creates a new .Net object