5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowershellでLotusScriptを利用する

Last updated at Posted at 2017-10-22

PowershellでLotusScriptを利用する

 VBScriptのときと同じように、COMでLotusScriptの各種クラスを呼ぶことが可能です。
 Powershellの強力なコマンドレットを扱えるため、書き方を覚えればこちらのほうが便利です。
 個人的にはログの吐き出しがリダイレクトで簡単になるのが楽でよいです。
 一方で、LotusScriptの書き方とシェルの書き方が混在するので、木に竹を接いだようになるのが見た目あまりよくないですが…。

HelloWorld的例
$ss = new-object -comobject Lotus.NotesSession
$ss.Initialize("")
Write-Output "Hello world!" $ss.CommonUserName
pause
出力例
PS C:\HelloWorld.ps1
Hello world!
Yamada Taroh
Press Enter to continue...: 

 注意点としては、Windowsが64bitの場合以下のようなエラーが出ることがあります。
 dllが32bitのためこのエラーが出るため、32bit版Powershellを使ってください。
 64bit版と32bit版では初期ディレクトリが異なるので、そこも注意してください。

32bit版Powershellの場所
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe
64bit版でNotesSessionを呼んだ例
PS C:\> .\HelloWorld.ps1
new-object : CLSID {29131539-2EED-1069-BF5D-00DD011186B7} を含むコンポーネントの COM クラス ファクトリを取得中に、次の
エラーが発生しました: 80040154 クラスが登録されていません (HRESULT からの例外:0x80040154 (REGDB_E_CLASSNOTREG))
At C:\HelloWorld.ps1:1 char:7
+ $ss = new-object -comobject Lotus.NotesSession
+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMException
    + FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

You cannot call a method on a null-valued expression.
At C:HelloWorld.ps1:2 char:1
+ $ss.Initialize("")
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Hello world!
Press Enter to continue...:

おまけ(他言語からLotusScriptを呼ぶパターン)

 Pythonからも呼ぶことができます。

addicted: Python から COM 経由で Lotus Notes にアクセス

参考

Powershell for Lotus Notes and Domino… | Messaging, Collaboration & Identity ※分かりやすいサンプルあり
PowerShellでアンマネージドdllを使おうとしたらハマった話 | $m0t0k1x2["code"].content ※Windowsが64bitなのにdllは32bitなので引っかかった例

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?