Lotus Notes でマシン固有の情報を取得する

Notes 8.5.3 からマシン固有の情報を取得できる @関数 @GetMachineInfo() が使えるようになりました。マシン固有のポリシー設定をするにはこの関数を使って条件判断をすればよいという流れです。

IBM (参考)マシン固有のポリシー設定 - Japan

ポリシー設定はともかく、マシン固有の情報を簡単に取れるようになったというのはとても便利です。この関数一発で取れるというのは…今までの苦労は一体…

この関数を Notes Browser Plug-in 環境で実行すると、IsMultiUser が True で、IsStandard が False でした。ふつうの Basic クライアントと似たような挙動をするのでまあこんなもんでしょう。

Notes 8.5.2 以前ではこの関数はもちろん動きませんので、いろいろとコードを書いてコンピュータ固有の情報を取っていました。VBS の作法がほとんどそのまま使えるので WMIService 経由で様々な情報を取得できます。たとえばコンピュータ名を取得するには LotusScript でこんな感じで書けます。

Sub Click(Source As Button)
    Const wbemFlagReturnImmediately = &h10
    Const wbemFlagForwardOnly = &h20
    Dim msg,strComputer,vbcrlf,objWMIService,colItems
    msg = ""
    strComputer="."
    vbcrlf = Chr(10)
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
                   wbemFlagReturnImmediately + wbemFlagForwardOnly)
    Forall objItem In colItems
        msg = msg & vbcrlf &  "Name: " & objItem.Name
    End Forall
    Messagebox msg
End Sub