COM は、COM クライアントが使用するサービスをアプリケーションで公開できるようにする、Windows 固有の標準 API です。 COM クライアントをサポートすると、Internet Explorer、Microsoft Office、さまざまな管理関連 OS サービス(特に WMI)など、広範囲の COM サーバにアクセスできるようになります。 new-comObject コマンドは、スクリプト作成に利用できるサービスを COM サーバで公開できるようにする、プロキシ クライアント オブジェクトを作成します。
コマンドの構文は、以下のとおりです。
new-comObject progid [-locale lcid]
インスタンス化する COM オブジェクトを識別する文字列を指定します。 この文字列は、人が判読できるプログラム ID(PROGID)か内部 CLSID になります。 CLSID を指定する場合は、中かっこで囲む必要があります。
複数のロケールをサポートする COM サーバに対し、希望するロケールを定義する整数を指定します。
デフォルト: 0
new-comObject は、AutoShell と COM サーバの間のプロキシを表すオブジェクトを返します。 このオブジェクトは、COM サーバで公開されているメソッドとプロパティをミラーリングします。 COM サーバのパブリック インターフェースの詳細については、該当のサーバのプログラマ ドキュメントを参照してください。 公開されているメソッドとプロパティには、返された AutoObject で、標準の JavaScript 構文を使用してアクセスします。
例
Internet Explorer で Web ページを開き、その URL を問い合わせます。
o = new-comObject InternetExplorer.Application
// Internet Explorer を表示
o.Visible = true;
o.navigate("www.ca.com");
// アクティブなドキュメント(別の COM オブジェクト)を取得
doc = o.document
? doc.Url // http://www.ca.com/us など
スクリプト作成オブジェクトを使用して、コンピュータ名を取得します。
o = new-comObject WScript.Network ? o.ComputerName
WMI を使用して、オペレーティング システムと論理ドライブに関する情報を取得します。
loc=new-comObject WbemScripting.SWbemLocator
// 実際には、localhost ではセキュリティは不要
loc.Security_.AuthenticationLevel=0; // wbemAuthenticationLevelDefault
loc.Security_.ImpersonationLevel=3; // wbemImpersonationLevelImpersonate
wmisrv=loc.connectServer("localhost", "root¥cimv2");
items = wmisrv.ExecQuery("Select * from Win32_OperatingSystem");
// OS が 1 つしか稼働していないため、
// 返されるコレクションのアイテムは 1 つのみ
os = items[0];
? "OS の種類:", os.Caption;
? "サービス パック:", os.CSDVersion;
? "コンピュータ名:", os.CSName;
? "空き物理メモリ:", os.FreePhysicalMemory;
? "登録ユーザ:", os.RegisteredUser;
? "可視メモリの合計サイズ:", os.TotalVisibleMemorySize;
? "バージョン:", os.Version;
? "Windows ディレクトリ:", os.WindowsDirectory;
// ディスク情報
items = wmisrv.ExecQuery("Select * from Win32_LogicalDisk");
// 返されたディスクに対して処理をループ
for(i in items)
{
disk = items[i];
? "説明:", disk.Description;
? "デバイス ID:", disk.DeviceID;
? "ファイル システム:", disk.FileSystem;
? "空き容量:", disk.FreeSpace;
? "名前:", disk.Name;
? "サイズ:", disk.Size;
}
|
Copyright © 2013 CA.
All rights reserved.
|
|