Enterprise 技術情報 Enterprise Technical information
Kompiraの機能 Windowsでリモートスクリプトを実行する(その2)
Windowsでリモートスクリプトを実行する(その1)では、Kompiraからスクリプトジョブを利用してWindows機でバッチファイルを実行しました。
今回の記事ではWindows機でPowerShellスクリプトを実行してみましょう。
環境情報
本記事は、以下の環境で検証しております。
PowerShellスクリプトとは
歴代のWindowsにはcommand.com/cmd.exeといったコマンドラインツールが付属し、いわゆるMS-DOS時代からのバッチ実行が出来るようになっていました。これを補強する意味でWindows98からWindows Script Host(WSH)が提供されましたが、セキュリティ面での問題が指摘されるに至って、広く普及しませんでした。
そこで自社OSのシステム管理や自動化を行うための新世代シェル/プログラミング言語としてPowerShellを発表しました。
PowerShellは多くのコンポーネント(コマンドレット)を組み合わせたタスクで構成されます。
実行ポリシーの変更
本記事ではWinRMでの接続が出来ており、Windows機への接続に必要なノード情報、アカウント情報も用意されている前提です。出来ていない場合にはWindowsでリモートスクリプトを実行する(その1)を参照して準備してください。
システム保護のためにOSの初期設定の段階では、PowerShellスクリプトの実行が制限されている場合があります。特にWindows Server 2012 以前のOSでは、デフォルトでスクリプトファイルの実行ができないようにポリシーが設定されています。このポリシーを変更するには、 Set-ExecutionPolicy というコマンドレットを使用します。
これに”RemoteSigned”を指定した場合、ローカルで作成されたスクリプトは無条件で実行できますが、ネットワークから入手したスクリプトは署名が無ければ実行できません。(Windows Server 2019 はこの設定がデフォルト)。
以下、主な実行ポリシーの種類を示します。
スクリプトを実行できるように、ポリシーを変更します。管理者権限で PowerShell を起動し、以下のコマンドを実行してください。
適当に引数を指定して実行してみます。
上記のように、バッチファイル(bat)と同様に実行できる事がわかります。
Microsoft社も管理系のツールはPowerShellで実装することを表明しており、バッチ(batファイル)よりも適用範囲が多いため、Windows機の管理をする場合には大変有用です。
項目 | バージョン |
OS | CentOS Linux release 7.7.1908 |
Kompira | ver.1.5.5.post7 |
Windows Server | 2019 (バージョン1809) |
WinRM | 3.0 |
PowerShell | 5.1 |
Restricted | すべてのスクリプトの実行禁止 (規定値) 対話型モードでのみ使用できる |
AllSigned | 信頼できる発行元が署名したスクリプトのみ実行可能 |
RemoteSigned | ダウンロードしたスクリプトは信頼できる発行元が署名した場合にのみ実行可能 |
Bypass | すべてのスクリプトが実行可能 |
> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック(https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] 全て実行(A) [N] いいえ(N) [L] 全て無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Yスクリプトの実行 ここでは”スクリプトジョブ”型の”PowerShellスクリプトの実行”という名前のオブジェクトを作成します。 PowerShellスクリプトの実行
$user= Get-Content env:username $srv = hostname Write-Host "Kompiraから実行しています。" Write-Host "引数は $args です。" Write-Host "ユーザーは $user です。" Write-Host "ホスト名は $srv です。"Windowsでバッチファイルを実行させる場合拡張子を設定する必要があるので、”拡張子”の欄に”ps1″と入力してください。


スタートガイド
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にユーザーを登録する