WMI スクリプト タイプ ライブラリの使用

WMI スクリプト タイプ ライブラリを使用して、Microsoft Visual Studio から、および Windows スクリプト ホスト WSF ファイル内で WMI スクリプト API のメソッドを呼び出すことができます。

Microsoft Visual Studio での WMI スクリプト タイプ ライブラリの使用

注意

Visual InterDev 6.0 の機能は、Microsoft Visual Studio .NET に統合されています。

 

次の手順では、統合開発環境 (IDE) で WbemScripting タイプ ライブラリを認識できるようにする方法について説明します。

プロジェクト参照に WMI スクリプト タイプ ライブラリを追加するには

  1. [プロジェクト] メニューの [参照の追加] を選びます。

  2. [参照の追加] ボックスの [COM] タブで、[Microsoft WMI Scripting V1.2 Library] を選びます。

  3. [参照] の一覧に適切な選択肢が表示されない場合は、[参照] ボックスの[参照] を使用して追加します。 [参照] を実行すると、[参照の追加] ボックスが開き、WbemScripting タイプ ライブラリを見つけることができます。

    WbemScripting タイプ ライブラリは、%windir%\System32\Wbem ディレクトリの Wbemdisp.tlb ファイル内にあります。

  4. ファイルを選択し、 [開く] をクリックします。 Microsoft WMI Scripting V1.2 Library が参照リストに表示されます。 必ず、リスト内のこの項目の横にあるボックスを選択してください。

Windows スクリプト ホスト 2.0 での WMI スクリプト タイプ ライブラリの使用

WbemScripting.SWbemLocator への参照は、Visual Basic、Scripting Edition、またはその他のスクリプト言語で記述されたスクリプトとは異なり、Windows スクリプト ホスト WSF ファイルに含めることができます。 これにより、値の代わりに定数名を使用できます。 たとえば、認証を設定するときは、値 6 ではなく、WbemAuthenticationLevelPktPrivacy を使用します。

スクリプトは、次の方法を使用して、WMI タイプ ライブラリ用スクリプト API に接続できます。

  • VBScript メソッドの CreateObjectGetObject 内での WbemScripting GUID の指定。

    これで、WMI オブジェクト セットに接続することを Windows スクリプト ホストに通知します。

    次の VBScript コード例では、新しい SWbemDateTime オブジェクトを作成します。

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • 新規または既存のオブジェクトを取得するときのモニカー文字列 "winmgmts:" の使用。

    次の VBScript コード例では、"winmgmts:" モニカーを使用して、Handle プロパティが 0 (ゼロ) である Win32_Process のインスタンスを取得します。 Handle は、このクラスのキー プロパティです。

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • WSH 2.0 XML ファイル形式の <reference> タグを使用した WMI タイプ ライブラリの参照。 <reference> タグを使用する場合、タグには、値が WMI タイプ ライブラリの GUID である uuid 属性、または作成できる WMI スクリプト オブジェクトの PROGID を値とするオブジェクト属性 (おすすめ) が必要です。

    次の VBScript コード例では、"WbemScripting" の PROGID を使用しています。 スクリプトを実行するには、.wsf 拡張子を持つファイルにテキストを保存します。

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
    <reference object="WbemScripting.SWbemLocator"/>
    <script language="VBScript">
        set service = GetObject("winmgmts:")
        ' Following line uses a symbolic 
        ' constant from the WMI type library
        service.Security_.impersonationLevel = _
            wbemImpersonationLevelDelegate
    </script>
    </job>
    
  • <object> タグを使用した WMI スクリプト オブジェクトの作成。 作成する WMI スクリプト オブジェクトを参照する名前の値を含む id 属性と、WMI スクリプト オブジェクトの PROID と等しい progid 属性を指定できます。

    次の WSH スクリプトは、ローカル コンピューターのホスト名とプロセッサの数を表示します。 スクリプトを実行するには、.wsf 拡張子を持つファイルにテキストを保存します。

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
     <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/>
     <script language="VBScript">
    
      strComputer = "."
      Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
      Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem")
      For Each objComputer in colSettings
       Wscript.Echo "System Name: " & objComputer.Name
       Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors
      Next
    
     </script>
    </job>
    

WMI でのスクリプト作成

WMI 用スクリプト API