前回の続きです。
コマンド(オンプレミス)実行機能
Windows上で動作する「コマンド実行エージェント」により、Exticのユーザー情報の追加・更新・削除に合わせて実行ファイルを実行できる機能です。
複数のエージェントを稼働させることで複数の実行ファイルを実行することができます。
設定
Extic側の準備
管理コンソール > コマンド(オンプレミス)を選択します。
表示名を設定し、接続キーを発行します。
今回は2つ追加してみます。
Webアプリケーションの設定
cmdagent.war
をダウンロードします。
コピー・リネームし、<tomcat_home>\webapps\
以下にコピーしてデプロイを確認します。
<tomcat_home>\webapps\<agent_name>\WEB-INF\classes\META-INF\application_setting.properties
を編集します。
サブドメイン、接続キーとsqliteのファイルが入るディレクトリを指定します。
同じモジュールを複数使用する場合、sqliteのディレクトリを分ける必要があります。
保存してTomcatを再起動します。
http://(ホスト名):(ポート)/cmdagent1/
および/cmdagent2/
にアクセスし、管理者ロールを持つユーザーでログインします。
次の画面に遷移します。
右上プルダウンメニューの「設定」を選択します。
次の画面に遷移します。
ユーザーの追加、更新、削除ごとにコマンドが実行できることがわかります。
今回は以下のようなファイルを作成しました。
これらをcmdagent1
の実行コマンドとして指定します。
if exist C:\cmduser\%1 (
rem
) else (
mkdir C:\cmduser\%1
)
echo %1 > C:\cmduser\%1\userinfo.txt
echo %2 >> C:\cmduser\%1\userinfo.txt
echo %1 > C:\cmduser\%1\userinfo.txt
echo %2 >> C:\cmduser\%1\userinfo.txt
if exist C:\cmduser\%1 (
rd /s /q C:\cmduser\%1
)
実行区分は「実行する」に、「実行コマンド」には実行ファイルの フルパスを 設定します。
仮に環境変数Path
が通っている実行ファイルでもフルパスで指定する必要があります。
また「実行コマンド」とありますが、echo %computername%
のようにコマンドプロンプトのコマンドを書いても動作しません。
「削除」時に使用できる属性はユーザー名
のみです。
cmdagent2
ではユーザー情報更新時にWindowsイベントログにログを出力するようなコマンドを実行します。
EventCreate /L Application /T INFORMATION /SO "CMDAGENT" /ID 100 /D "User %1 info is updated"
最後にポーリング間隔とTomcat起動に合わせた自動起動の設定を行います。
確認
Exticで対象ユーザーのコマンド実行を「使用する」とします。
この状態でcmdagent1
を起動します。
add.bat
が実行され、フォルダ・ファイルの作成が確認できます。
対象ユーザーの情報を更新します。
upd.bat
、upd2.bat
共に動作していることがわかります。
対象ユーザーのコマンド実行を「使用しない」とします。
del.bat
が実行され、フォルダが削除されたことがわかります。
このように「コマンド実行」モジュールでは、Exticの追加・更新・削除に合わせてオンプレミスサーバー上のコマンド(実行ファイル)が実行されます。
次回はExticからLDAPサーバへのプロビジョニングについて検証します。