Enterprise 技術情報 Enterprise Technical information
外部との連携 Active Directoryから情報を取得する
Windowsで情報システムを構築している場合、規模が大きくなるにつれて管理負荷が大きくなるため、Active Directoryを利用してアカウントやIT資源の集中管理を行います。今回の記事ではKompiraからActive Directoryにアクセスして、登録されている情報の検索を行います。
(Active Directoryは既存のサーバーを利用する想定です。)
動作確認環境 Kompira
Windows Server
※本記事は上記環境を利用して検証しております。掲載時点の情報であり、最新のものとは異なる場合があります。予めご了承ください。
事前準備 Active DirectoryはLDAPやDNSなどの仕組みを利用した管理基盤です。Kompiraからのアクセス方法はLDAPの利用なども考えられますが、今回は「Windows PowerShell 用 Active Directory モジュール」を利用して、KompiraのスクリプトジョブからPowerShellでの操作を行います。 Active Directoryサーバーのサーバーマネージャーを起動してから、「機能」>「機能の追加」>「役割と機能の追加ウィザード」>「機能」>「Role Administration Tools」>「AD DS and AD LDS Tools」と選択します。「Active Directory module for Windows PowerShell」のチェックを指定して、インストールを選択してください。(デフォルトでインストールされていた場合には、そのままで構いません。)
またKompiraからWindowsサーバーにアクセスできるように、WinRMの設定を行う必要があります。詳細は以前の記事Windowsでリモートスクリプトを実行する(その1)の、「Windows側での設定」をご参照ください。
スクリプトジョブの準備
Active Directoryモジュールに含まれるコマンドレット(Cmdlets)については、以下の記事を参照してください。
Windows Tech Net: Active Directory Cmdlets in Windows PowerShell
またスクリプトジョブを作成するにあたり、各コマンドレットの動作確認はサーバー側のWindows PowerShellウィンドウを使ってコマンドを投入してみると良いでしょう。
PowerShellを利用して上述のコマンドレットからActiveDirectoryを操作するためには、最初に以下のコマンドレットを実行して、ActiveDirectoryモジュールをインポートしておく必要があります。
このように検索条件に該当するユーザーアカウントの情報が列挙されます。
出力結果を扱いやすくするため、「ConvertTo-Json」コマンドレットを使用してJSON形式にしてみましょう。
スクリプトジョブ「直近の30日間ログオンしていないユーザーを検索」その2
ジョブフローからスクリプトジョブを呼び出す
スクリプトジョブからの応答をJSON化した所で、これを利用するジョブフローを作成してみます。
例として、ユーザー名を抽出して表示します。
スクリプトジョブからの応答はJSON形式の文字列のため、これをKompiraの辞書形式のデータにするためにjson_parse()関数を利用しています。
今回の記事では、PowerShellを使ったスクリプトジョブから、Active Directoryの情報検索を行いました。モジュールにはユーザーや機器の情報登録・参照・削除などの多くのコマンドレットが用意されているため、同様の手法でWindows関連のリソース管理をKompiraから行う事が出来るでしょう。
動作確認環境 Kompira
ソフトウェア | バージョン |
---|---|
Kompira | 1.5.5.post7 |
LinuxOS | CentOS7.8.2003 |
ソフトウェア | バージョン |
---|---|
Active Directory | スキーマバージョン 88 |
OS | Windows Server 2019 |
事前準備 Active DirectoryはLDAPやDNSなどの仕組みを利用した管理基盤です。Kompiraからのアクセス方法はLDAPの利用なども考えられますが、今回は「Windows PowerShell 用 Active Directory モジュール」を利用して、KompiraのスクリプトジョブからPowerShellでの操作を行います。 Active Directoryサーバーのサーバーマネージャーを起動してから、「機能」>「機能の追加」>「役割と機能の追加ウィザード」>「機能」>「Role Administration Tools」>「AD DS and AD LDS Tools」と選択します。「Active Directory module for Windows PowerShell」のチェックを指定して、インストールを選択してください。(デフォルトでインストールされていた場合には、そのままで構いません。)

Import-Module ActiveDirectoryでは、「直近の30日間ログオンしていないユーザーを検索」というスクリプトジョブを作成します。拡張子に”ps1″を付けることを忘れないでください。 スクリプトジョブ「直近の30日間ログオンしていないユーザーを検索」
Import-Module ActiveDirectory Search-ADAccount -AccountInactive -TimeSpan 30 -UsersOnlyあわせて、ActiveDirectoryサーバーのノード情報、アクセスするアカウント情報のオブジェクトも作成してください。 上記のジョブフローを実行すると以下のような結果となります。

Import-Module ActiveDirectory Search-ADAccount -AccountInactive -TimeSpan 30 -UsersOnly | ConvertTo-Json -Compress出力をテキストエディタで整形すると次のようになります。

|__node__ = ./NodeOfActiveDirectory | [./直近の30日間ログオンしていないユーザーを検索] -> # スクリプトジョブの呼び出し [res = json_parse($RESULT)] -> { for id in res | print(id.Name) }実行結果は以下のようになります。

スタートガイド
Kompiraジョブフローの基礎
ジョブフローの簡単な例
Kompiraの機能
-
- フィールド修飾子でフィールドの入力内容に制約を設ける
- Kompiraでの文字列のパターンマッチング
- Kompira上でWikiページを作成する
- スケジューラを使って定期的にジョブを実行する
- ジョブフローを実行するフォームを作成する
- テーブル内の情報を選択して処理を実行する
- ジョブフローに権限設定をする
- ジョブフロー画面の各種設定
- Pythonで記述された処理をKompiraから呼び出す
- Kompiraオブジェクトのプロパティ,メソッド,フィールドを扱う
- Windowsでリモートスクリプトを実行する(その1)
- Windowsでリモートスクリプトを実行する(その2)
- Kompira上のデータをバックアップする(その1)
- Kompira上のデータをバックアップする(その2)
- Kompira上のデータをバックアップする(その3)
外部との連携
-
- Prometheusからの通知をKompiraで受信する
- Kompira cloud Pigeonを利用した通知電話の利用
- ネットワーク機器へのコマンド投入
- KompiraからWindowsGUIアプリケーションを操作する (1/2)
- メールを送信する
- メール受信をトリガーにしてジョブフローを実行する
- アラートメールをフィルタリングして転送する
- チャネルを利用して外部システムからデータを受信する
- Webページから内容を取得する
- Redmineへ新規チケットを登録する
- Redmineでのチケット作成をKompiraに通知する
- Kompira REST APIを利用して外部からジョブフローを実行する
- Kompira REST APIを利用して外部からオブジェクト情報を取得する
- KompiraからSlackに通知する
- Slackでの投稿をKompiraに通知する
- KompiraからTwilioで電話をかける
- Zabbixからの通知をKompiraで受信する
- syslogをKompiraで受信する
- snmptrapをKompiraで受信する
- KompiraでExcelファイルの読み書きをする
- KompiraでGoogle SpreadSheetの読み書きをする
- Active Directoryから情報を取得する
- Active Directoryにユーザーを登録する