サインオン画面を変更したい
Question
弊社ではエンドユーザーに対して権限等、制限を掛けてIBM iを利用しております。
その一環で、サインオン画面に表示される「プログラム」や「現行ライブラリー」の項目を利用出来ないようにしたいと考えています。
以前、独自に作られているサインオン画面を見たことが有るのですが、どのようにすれば変更できるのでしょうか?
Answer
サインオン画面のレイアウトは自由に変更することが出来ますが、フィールド等デザインにいくつか制限が有ります。
ライブラリQGPLのソースファイルQDDSSRCに有る、メンバーQDSIGNONとQDSIGNON2を元に作成されると良いと思います。
メンバーが2種類ありますが、システム値のパスワード・レベル(QPWDLVL) に依ってパスワード長が変わる為です。
パスワード・レベルが0か1でパスワード長が10桁までならQDSIGNONを、パスワード・レベルが2か3でパスワード長が128桁までならQDSIGNON2をご利用ください。
主な注意点として、定義済みのフィールドは使用しない物でも削除することは出来ません。
使用しないフィールドについては、位置(行 位置)を削除して使用目的をHの"隠しフィールド"とします。
ソースの修正もそうですが、コンパイル時は既存の表示装置ファイルを削除(上書き)しないように細心の注意が必要です。
画面のコンパイル自体は正常に完了してもサインオン画面として使用できないような場合に、IBM iは自動でライブラリーQSYS内の表示装置ファイルQDSIGNON(若しくはQDSIGNON2)を使用します。
上記理由から、ソースも表示装置ファイルも、必ずQSYS以外のライブラリに配置するように考慮することが必要です。
表示装置ファイルの作成が出来たら、次はサブシステムにその表示装置ファイルを定義します。
サインオン画面は、サブシステム記述内にどの表示装置ファイルを使用するかが定義されています。
サブシステム記述変更(CHGSBSD)コマンドを使用して、作成した表示装置ファイルを指定します。
CHGSBSD SBSD(subsystem library/subsystem) SGNDSPF(dspf library/dspf)
QINTER等、エンドユーザーが使用するサブシステムに適宜表示装置ファイルの定義を実施してください。
QCTL等、コンソールで接続するサブシステムは有事の際に初期プログラムや現行ライブラリーの指定が必要になる場合がありますので、変更せずにシステム標準のままにするか、念入りにテストを実施した表示装置ファイルを定義することをお薦めいたします。
サブシステムへの定義が完了したら、最後にサブシステムの再起動を実施します。
定義された内容は次回サブシステム起動時に適用される為です。
サブシステムの再起動の間はそのサブシステム配下に接続することができなくなりますので、エンドユーザーの使用されないタイミングか、次回のIPLで適用されることをご確認ください。
詳細な注意点はIBM Knowledge Centerに公開されておりますので、是非ご参照ください。
IBM Knowledge Center - サインオン・ディスプレイ・ファイルの作成
by なんちゃってエンジニア