ACS の利用時に IBM i へのサインオンを自動化する
ACS の利用時に IBM i へのサインオンが求められます。
Access for Windows の場合は「cwBlogon.exe」で回避していたやつですね。
ACS では二つの方法方で
デフォルトユーザー名の使用を選択
サインオンを自動化したいシステムに対して「システム構成」の「接続」タブでデフォルトユーザー名の指定を選択しユーザー名を指定しておきます。
netrc ファイルの使用
一つ目は netrc ファイルを使う方法です。
netrc ファイルに、システム名・ユーザー名・パスワードを記述します。
システム名と「デフォルト・ユーザー名」が netrc ファイルの内容と一致している場合、ユーザーにプロンプトを出さずに、netrc ファイルからのパスワードを使用してシステムへの接続が行われます。
「netrc ファイルを読み取ってログオン情報を取得する」にチェックし、保管し ACS を再始動します。
ユーザーのホーム・ディレクトリーに、下記の名前でファイルを作ります。
.netrc (Linux および Mac)
_netrc ファイル (Windows)
例えば、Windows でユーザー名が User01 の場合「C:\Users\User01\_netrc」というファイル名になります。
内容の形式は下記のとおりです。
machine <system> login <user-id> password <password>
例えばシステム「ibmi730」に対するデフォルトユーザー名が「user01」で、そのパスワードが「passw0rd」の場合下記になります。
対象システムが複数あれば、別の行に記述します。
machine ibmi730 login user01 password passw0rd
これで、起動時に「netrc ファイルを読み取ってログオン情報を取得する」にチェックされている状態で起動した ACS は IBM i へのサインオンが必要になったら netrc ファイルがホームディレクトリーにあるがチェックし、システム名・デフォルトユーザー名が一致すれば、ファイル内のパスワードで自動サインオンを試みます。
Logon PLUGIN の使用
ACS には 特定の機能を直接呼び出したりバッチでできるようにする PLUGIN の機能があります。
起動プログラムに、下記のオプションを指定します。
/PLUGIN=logon /SYSTEM=<system> [/USERID=<userid>] [/PASSWORD=password>] [/AUTH] [/C] [/GUI=<1|0>]
起動プログラムは「Start_Programs\Windows_x86-64\acslaunch_win-64.exe」だったり「java -jar acsbundle.jar」だったりします。
例えば、今回の例で32 ビット Java を利用している場合、下記のようになりますので、PC へのログイン時に自動実行します。
Start_Programs\Windows_i386-32\acslaunch_win-32 /PLUGIN=logon /SYSTEM=ibmi730 /USERID=user01 /PASSWORD=passw0rd
細かなオプションは下記のとおりです。
/SYSTEM - システムの名前
/USERID - ユーザー ID
/PASSWORD - ユーザー ID に関連付けられたパスワード
/AUTH - 指定されたログオン資格情報を使用してシステムへの接続を試行し、 成功時にのみキャッシュに入れます
/C - キャッシュをクリアします
/GUI - グラフィカル・ユーザー・インターフェースを使用できるかどうか
デフォルトでは、実行時に IBM i への接続・パスワードの検証を行わないでキャッシュしてしまうことに注意してください。
これは、PC へのログイン時などプラグインの利用時に IBM i へ接続できないことがある場合への配慮です。例えば、出先でPCを使うため Windows へログイン時は、IBM i につなげないケースです。プラグインの実行は Windows へログイン時に行いたいが、接続・パスワードのチェックまですると、エラーになってしまいます。そのためその時点では接続やチェックは行いません。その後、帰社したり VPN で社内 LAN に接続し IBM i を利用するときに、キャッシュされたパスワードが初めて使われます。
即時に接続・チェックを行いたければ「/AUTH」を追加指定します。
自動ログオンがうまくいかない時
システムの名前が ACS に登録されているものと同じか確認します。
同じ接続先であっても、ACS は単に登録名で確認します。
同じIPアドレスを示すものでも「ibmi730」「ibmi730.example.com」「192.128.0.101」は ACS にとって異なるシステムです。
また、パスワード設定にデフォルトユーザー名が設定されていること、自動ログオンのユーザーとして、同一のデフォルトユーザー名が指定されていることを確認します。
2019-06-27 本文中、Windows の _netrc の場所が正しく表示されていなかったのを修正しました。
「All About ACS」では IBM i に対する新しいクライアント「IBM i Access Client Solutions」の情報をいろいろ提供していきます。
記事一覧はこちらで確認いたけます。
許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。