WbemLocatorからSWbemServicesを得る

メモ:  Category:windows

「SWbemServicesってなに?」という場合、 WMI による Windows の管理WMIの使い方で確認します。

WMIの情報を取得するには、SWbemServicesが必要になるのですがこのオブジェクトを取得する方法のひとつにSWbemLocatorオブジェクトを使う方法があります。

SWbemLocatorには、メソッドが1つとプロパティが1つ用意されています。

  • Method : ConnectServer
  • Property : Security_
<script language="VBScript" content="text/vbscript">

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer()

objService.Security_.ImpersonationLevel = 3

Set objClasses = objService.InstancesOf("Win32_LogicalDisk")
for each objClass in objClasses
  document.write objClass.Description &amp; "<br>"
Next
</script>

まず、CreateObject()関数でSWbemLocatorオブジェクトを作成します。

SWbemLocatorオブジェクトのConnectServer()メソッドでSWbemServicesを取得します。ConnectServerには、モニカで指定するコンピュータ名や名前空間、ユーザーといった引数を渡すことができます。

偽装レベルについては、Security_プロパティで指定します。上記例の場合、3という値を指定していますが、これは、wbemImpersonationLevelImpersonate(モニカでは、Impersonate)を指定しています。

後の処理は、欲しい情報のかたまりを取得しFor Eachで順にディスクの情報を取得していきます。

bluenote by BBB