Microsoft PowerShell コネクタ

Select

PowerShell コネクタを使用すると、Windows の管理タスクを Mule アプリケーションに統合できます。SSH を使用して PowerShell のスクリプトをリモートの Windows または Linux (Ubuntu) マシン上で実行し、結果を Mule 内で処理することができます。 PowerShell コネクタにより、任意のマシンにローカルまたはリモートで接続し、ローカルまたはリモートマシン上でスクリプトファイルやコマンドを実行できるようになります。

前提条件

PowerShell コネクタを操作するには、SSH サーバを Windows または Linux (Ubuntu) のリモートマシンにインストールします。

  • Windows 用の SSH をインストールする場合は、次の手順を実行する必要があります。

    • Windows 専用の SSH zip ファイルをダウンロードします。このドキュメントの「関連情報」セクションにリンクが記載されています。

    • Windows マシンに SSH をインストールする手順に従います。このドキュメントの「関連情報」セクションにリンクが記載されています。

  • Linux (Ubuntu) システムについては、Linux のインストール手順に従います。このドキュメントの「関連情報」セクションにリンクが記載されています。

このコネクタの新機能

Mule 4 のサポート。

Design Center での接続方法

  1. トリガをクリックします。HTTP から入力を受け取る HTTP リスナや、 決まった時間にアクションをトリガするスケジューラなどの他のコンポーネントを使用できます。

  2. コンポーネントとしてコネクタを選択します。

    PowerShell コネクタでコネクタを検索
  3. 操作を選択します。

    PowerShell コネクタで操作を選択
  4. PowerShell に Windows または Linux の設定を行います。

    PowerShell コネクタで設定を選択
    1. PowerShell の Linux 設定をセットアップします。

      PowerShell コネクタの Linux 設定
    2. PowerShell の Windows 設定をセットアップします。

      PowerShell コネクタの Windows 設定
      項目 説明

      Configuration (設定)

      PowerShell

      Connection (接続)

      Connection Type (接続種別)

      Windows または Linux を選択します。

      IPAddress (IP アドレス)

      接続するマシンの IpAddress。

      User Name (ユーザ名)

      SSH を使用した認証に必要なユーザ名。

      Password (パスワード)

      ユーザ名に関連付けられているパスワード。

      次の操作を選択して、シンプルなフローを作成できます。

      • Execute Command:

        PowerShell コネクタの Execute Command
  5. PowerShell の Execute Command 操作を設定します。

    PowerShell コネクタの Execute Command アクション
    項目 説明

    Command (コマンド)

    クライアントマシンで実行できるコマンドを指定します。

Anypoint Studio 7 での接続

このコネクタを Anypoint Studio で使用するには、まず Exchange からダウンロードして必要に応じて設定します。

Studio でコネクタをインストールする

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. このコネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってこのコネクタをインストールします。

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

Studio 7 での設定

  1. pom.xml ファイルに次の連動関係を追加します。

    <dependency>
          <groupId>org.mule.connectors</groupId>
          <artifactId>mule-powershell-connector</artifactId>
          <version>2.0.0</version>
          <classifier>mule-plugin</classifier>
    </dependency>
  2. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックします。

  3. [Global Configuration Elements (グローバル設定要素)] 画面で、[Create (作成)] をクリックします。

    [Global Configuration Elements (グローバル設定要素)] ウィザード
  4. [Choose Global Type (グローバル種別の選択)] ウィザードで、[Connector Configuration (コネクタ設定)] を展開し、[Windows Configuration (Windows 設定)] または [Linux Configuration (Linux 設定)] を選択して [OK] をクリックします。

    • Windows マシンにリモートで接続する場合は、[Windows Configuration (Windows 設定)] を選択します。

    • Linux (Ubuntu) マシンにリモートで接続する場合は、[Linux Configuration (Linux 設定)] を選択します。

  5. 以下の説明に従ってパラメータを設定します。

    パラメータ 説明

    Connection (接続)

    接続種別に Windows または Linux 設定を選択します。

    IPAddress (IP アドレス)

    スクリプトファイルやコマンドを実行するマシンの IP アドレス。

    UserName (ユーザ名)

    Windows または Linux マシンに関連付けられているユーザ。

    Password (パスワード)

    UserName に関連付けられているパスワード。

    注意: 上の画像のプレースホルダの値は、プロジェクトの src/main/resources フォルダにある mule-artifact.properties 設定ファイルを参照します。ログイン情報をグローバル設定プロパティに入力するか、それらの値を含む設定ファイルを参照することができます。メンテナンスをシンプルにして、プロジェクトを再利用できるようにするために、設定ファイルを使用することをお勧めします。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。

  6. 再接続戦略を指定する [Advanced (詳細)] タブはデフォルトエントリのままにします。

  7. [Test Connection (接続をテスト)] をクリックして、グローバル設定のパラメータが正確であることと、Mule が PowerShell に正常に接続できることを確認します。

  8. [OK] をクリックして、グローバルコネクタ設定を保存します。

  9. 設定は次のようになります。

    PowerShell のユースケースの設定

ユースケース: Execute Command

次の Mule フローは、リモートの Windows マシン上でコマンドを実行します。

コマンドの実行
  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. 次のプロパティを mule-artifact.properties ファイルに追加して PowerShell ログイン情報を保持し、このプロパティファイルをプロジェクトの src/main/resources ディレクトリに配置します。

    config.host=<IpAddress>
    config.username=<UserName>
    config.password=<Password>
  3. HTTP Listener コンポーネントをキャンバスにドラッグし、次のパラメータを設定します。

    PowerShell の HTTP 設定のプロパティ
    パラメータ

    Display Name (表示名)

    リスナ

    Extension Configuration (拡張機能設定)

    HTTP リスナ設定が 1 つも作成されていない場合は、プラス記号をクリックして新しい HTTP リスナ設定を追加します。[Host (ホスト)] の値を「localhost」、[Port (ポート)] の値を「8081」に設定します。[OK] をクリックします。

    Path (パス)

    /executecommand

  4. PowerShell コネクタの [Execute Command] を [HTTP Listener (HTTP リスナ)] コンポーネントの横にドラッグします。

  5. 新しい PowerShell グローバル要素を追加して PowerShell コネクタを設定します。

  6. [Connector Configuration (コネクタ設定)] 項目の横にあるプラス記号をクリックします。

  7. 以下の表に従ってグローバル要素を設定します。

    パラメータ 説明

    Name (名前)

    設定を参照するための名前を入力します。

    <Configuration_Name>

    IPAddress (IP アドレス)

    スクリプトファイルやコマンドを実行するマシンの IP アドレス。

    UserName (ユーザ名)

    Windows または Linux マシンに関連付けられているユーザ。

    Password (パスワード)

    UserName に関連付けられているパスワード。

    設定は次のようになります。

    PowerShell のユースケースの設定

    対応する XML 設定は次のようになります。

    <powershell:config name="Powershell_Configuration"
      doc:name="PowerShell Configuration">
    	<powershell:windows-connection host="${config.host}"
    	 username="${config.username}" password="${config.password}" />
    </powershell:config>
  8. [Test Connection (接続をテスト)] をクリックして、Mule が PowerShell インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。そうでない場合は、見直して、誤ったパラメータを修正してからもう一度テストします。

  9. PowerShell コネクタの [Execute Command] 操作を [HTTP Listener (HTTP リスナ)] コンポーネントの横にドラッグします。PowerShell の Execute Command 操作のプロパティエディタに戻り、残りのパラメータを設定します。

    パラメータ

    Display Name (表示名)

    Execute Command (コマンドの実行) (または任意の他の名前)。

    Command (コマンド)

    リモートまたはローカルマシンで実行するコマンド。

    メッセージのパブリッシュコネクタのプロパティ
  10. XML が次のようになっていることを確認します。

    <powershell:execute-command doc:name="Execute command"
    config-ref="Powershell_Configuration" command="ipconfig"/>
  11. Execute Command 操作の後に [Logger (ロガー)] コンポーネントを追加して、Mule コンソールに出力を表示します。以下の表に従って Logger を設定します。

    パラメータ

    Display Name (表示名)

    Logger (ロガー) (または他の任意の名前)

    Message (メッセージ)

    #[payload]

    Level (レベル)

    INFO

    PowerShell の [Logger (ロガー)]
  12. プロジェクトを保存し、Mule アプリケーションとして実行します。Package Explorer でプロジェクトを右クリックし、[Run As (別のユーザとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。

  13. ブラウザを開き、URL http://localhost:8081/executecommand を入力して応答を確認します。ブラウザとコンソールに Execute Command 操作の出力が表示されます。

  14. Execute Command 操作を正常に実行できました。

ユースケース: Execute Script File

Studio の Execute Script File アイコン

作成方法:

  1. HTTP Listener コンポーネントをキャンバスにドラッグし、次のパラメータを設定します。

    PowerShell の HTTP 設定のプロパティ
    パラメータ

    Display Name (表示名)

    Listener (リスナ)

    Extension Configuration (拡張機能設定)

    まだ HTTP リスナ設定が作成されていない場合は、プラス記号をクリックして新しい HTTP リスナ設定を追加します。[Host (ホスト)] に「localhost」、[Port (ポート)] に「8081」を指定します。[OK] をクリックします。

    Path (パス)

    /executescriptfile

  2. [Parse Template (テンプレートの解析)] コンポーネントを [HTTP Listener (HTTP リスナ)] の横にドラッグして、次のパラメータを設定します。

    PowerShell の HTTP 設定のプロパティ
    パラメータ

    Display Name (表示名)

    Parse Template (テンプレートの解析)

    Location (場所)

    実行するファイルの場所。

  3. PowerShell コネクタの [Execute Script File] 操作を [Parse Template (テンプレートの解析)] コンポーネントの横にドラッグします。PowerShell の Execute Script File 操作のプロパティエディタで、残りのパラメータを設定します。

    パラメータ

    Display Name (表示名)

    Execute Script File (スクリプトファイルの実行) (または任意の他の名前)。

    File content (ファイルの内容)

    #[payload] - ファイルの内容はペイロードから取り込みます。

    Parameters (パラメータ)

    スクリプトにパラメータが必要な場合は、キー-値のペアごとにパラメータを追加します。

    メッセージのパブリッシュコネクタプロパティ
  4. XML が次のようになっていることを確認します。

    <powershell:execute-script-file doc:name="Execute script file"
     config-ref="Powershell_Configuration">
    	<powershell:parameters >
    		<powershell:parameter key="a" value="5" />
    		<powershell:parameter key="b" value="10" />
    		<powershell:parameter key="c" value="15" />
    	</powershell:parameters>
    </powershell:execute-script-file>
  5. [Execute Script File] の後に [Logger (ロガー)] コンポーネントを追加して、Mule コンソールに出力を表示します。以下の表に従って Logger を設定します。

    パラメータ

    Display Name (表示名)

    Logger (ロガー) (または他の任意の名前)

    Message (メッセージ)

    #[payload]

    Level (レベル)

    INFO

    PowerShell の [Logger (ロガー)]
  6. プロジェクトを保存し、Mule アプリケーションとして実行します。Package Explorer でプロジェクトを右クリックし、[Run As (別のユーザとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。

  7. ブラウザを開き、URL http://localhost:8081/executescriptfile を入力して応答を確認します。ブラウザとコンソールに操作の出力が表示されます。

ユースケース: XML

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:powershell="http://www.mulesoft.org/schema/mule/powershell"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/powershell
http://www.mulesoft.org/schema/mule/powershell/current/mule-powershell.xsd">

    <configuration-properties file="mule-artifact.properties"/>

	<powershell:config name="PowerShell_Configuration" doc:name="PowerShell Configuration">
		<powershell:windows-connection host="${config.host}" username="${config.username}" password="${config.password}" />
	</powershell:config>
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config"\>
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>
	<flow name="Execute-Command-Flow" />
		<http:listener doc:name="Listener" config-ref="HTTP_Listener_config"
		path="/executecommand"/>
		<powershell:execute-command doc:name="Execute command"
		  config-ref="PowerShell_Configuration" command="ipconfig"/>
		<logger level="INFO" doc:name="Logger" message="#[payload]"/>
	</flow>
	<flow name="Execute-Script-File-Flow">
		<http:listener doc:name="Listener" config-ref="HTTP_Listener_config"
		path="/executescriptfile"/>
		<parse-template doc:name="Parse Template"
		location="/home/me/get-en-param.ps1"/>
		<powershell:execute-script-file doc:name="Execute script file"
		 config-ref="Powershell_Configuration">
			<powershell:parameters >
				<powershell:parameter key="a" value="5" />
				<powershell:parameter key="b" value="10" />
				<powershell:parameter key="c" value="15" />
			</powershell:parameters>
		</powershell:execute-script-file>
		<logger level="INFO" doc:name="Logger" message="#[payload]"/>
	</flow>
</mule>

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub