PowerShell アクティビティを作成する

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:7分
  • Microsoft PowerShell を使用してホストからワークフローにデータを返すために、カスタム PowerShell アクティビティを作成します。

    始める前に

    必要なロール:activity_creator または workflow_admin

    このタスクについて

    ServiceNow は PowerShell 3.0 ~ 5.1 をサポートしています。

    手順

    1. カスタムアクティビティを作成します。
      このアクションにより、テンプレートを使用してカスタムアクティビティが作成されます。
    2. 一般的なプロパティを設定し、入力変数を作成した後、PowerShell 実行コマンドを構成します。
      オプション説明
      入力変数をマップする 作成した変数を使用して、オーケストレーションが MID サーバー上で実行するコマンドを設定します。
      ターゲット ホスト この PowerShell アクティビティのターゲットサーバーのホスト名または IP アドレス。
      スクリプト タイプ PowerShell ホストで実行する PowerShell スクリプトのタイプ。使用可能なオプションは次のとおりです。
      • カスタム PowerShell コマンド
      • MID サーバースクリプトファイル
      MID サーバースクリプトファイル MID サーバースクリプトファイルには PowerShell スクリプトが含まれています。このフィールドは、選択されている [スクリプト タイプ] が [MID サーバースクリプトファイル] である場合に使用可能です。
      コマンド アクティビティが実行する PowerShell コマンド。このフィールドは、選択されている [スクリプト タイプ][カスタム PowerShell コマンド] である場合に使用可能です。入力変数を変数ビルダーからこのフィールドにドラッグ アンド ドロップすることで、コマンドを作成できます。
      PowerShell 変数 PowerShell でホストに渡す名前と値のペア。これらの変数は手動で作成することも、入力変数を [値] フィールドにドラッグすることもできます。暗号化された入力変数は、このフィールドのデータタイプ設定に関係なく、その暗号化を保持します。値を入力して [暗号化] データタイプを選択すると、値はプレーン テキストで表示されます。これは、ECC キューに渡されるときにのみ暗号化されます。
      MID サービスアカウントを使用する オンの場合、このアクティビティは、他の認証情報を試行せずに、MID サーバーサービスアカウントの認証情報のみを使用してターゲット ホスト上で認証します。
      注:
      [認証情報タグ] フィールドは使用できません。
      認証情報タグ このアクティビティがホスト上で PowerShell コマンドを実行するために使用する必要がある認証情報タグ。このフィールドを空白のままにすると、MID サーバーは有効な認証情報が見つかるまで、使用可能な認証情報をすべて試行し、MID サーバーサービスアカウントで終了します。認証情報タグが定義されている場合、MID サーバーはそのタグが指定されている認証情報のみを試行し、MID サーバーサービスアカウントを試行しません。
      注:
      このフィールドは、[MID サービスアカウントを使用する] チェック ボックスがオンになっている場合、使用できません。
      必要な MID サーバー機能 PowerShell のクエリに使用する MID サーバー (機能別)。デフォルトでは、PowerShell MID サーバーが選択されます。
      注:
      テストペイロードのパラメーター値を、[出力] タブの変数に自動的にマッピングできます。「出力変数を自動マッピングする」を参照してください。

    次のタスク

    出力変数を作成する解析ルールを作成する、または条件を作成するのいずれかを行って、PowerShell アクティビティの作成を終了します。テンプレート オプションの詳細については、「カスタムアクティビティを作成する」のトピックを参照してください。

    PowerShell テンプレートの実行パラメーター

    実行パラメーターを使用して、アクティビティデザイナーの [前処理] フォームで入力プロセス スクリプトを作成します。

    PowerShell コマンド フィールドの説明については、「PowerShell 実行コマンドを設定する」の表を参照してください。
    注:
    この表のすべての変数で executionParam. プリフィックスを使用する必要があります。
    表 : 1. PowerShell 実行パラメーター
    名前 変数 タイプ 使用法
    ソース ソース 文字列 コマンドを実行するターゲット ホスト。
    スクリプト タイプ script_type 列挙 実行するスクリプトのタイプ。可能なタイプは次のとおりです。
    • command:カスタム PowerShell コマンド。
    • file:実行する MID サーバースクリプトファイルを指定します。
    コマンド command 文字列 ターゲットサーバー上で実行するために MID サーバーに送信されるコマンド。
    MidScriptFile midScriptFile 参照 script_typefile であるときに、実行される MID サーバースクリプトの参照 sys_id。
    PowershellVariables powershellVariables ハッシュマップの配列 各オブジェクトに namevalue、および type が指定されている JavaScript オブジェクトのハッシュマップ。各オブジェクトの type は、plainencryptedboolean、または null のいずれかで、入力タブで選択されている PowerShell 変数の type に対応します。たとえば、次のように入力します。
    var newParameter = {"name":"parameterName","value":"parameterValue", "type": "plain" };
    executionParam.powershellVariables.push(newParameter);
    認証情報タグ credential_tag 文字列 このアクティビティがホスト上で PowerShell コマンドを実行するために使用する必要がある特定の認証情報タグ。
    MidCapabilities midCapabilities 文字列 (コンマ区切り) 必要な MID サーバー機能のリスト。
    ValueCapabilities valueCapabilities ハッシュマップの配列 MID サーバーの選択に使用される機能値。詳細については、「MID サーバーの機能」を参照してください。値によって割り当てられる追加の機能がある場合は、次の例を使用して MID サーバーの選択をカスタマイズします。
    var valueCapability = {'NEW_MID_CAPABIILTY':'NEW_MID_CAPABILITY_VALUE'};
    executionParam.valueCapabilities.push(valueCapability);

    PowerShell の後処理パラメーターとペイロード解析

    これらのパラメーターを使用して、後処理スクリプト、ペイロード解析、およびタグ付けを作成します。

    表 : 2. PowerShell の後処理パラメーター
    名前 変数 タイプ 使用法
    タグ タグ PowerShell コマンドから返すタグ値のハッシュマップ。 PowerShell コマンドを使用して出力を抽出するために使用されるタグが含まれています。タグ出力は、次のように二重のパーセント記号で区切られます。%%tagname%% … %%。この例の形式を使用してコマンドを設定します。
    Write-Host %%tagname1%%
    output1 line 1
    output1 line 2
    …
    Write-Host%%
    
    Write-Host %%tagname2%%
    output2 line 1
    output2 line 2
    …
    Write-Host%%

    返されるタグは JavaScript ハッシュマップ オブジェクトで、各キーには tagname が付加された tag がプリフィックスとして付いています。

    {"__text__": "", 
    "tagtagname1":"output1 line1\noutput1 line2\n", 
    "tagtagname2":"output2 line1\noutput2 line2\n"}
    Hresult hresult 文字列 PowerShell コマンドから返された hresult が含まれています。hresult が返されない場合、このパラメーターは null です。
    出力 output 文字列 PowerShell コマンドからの生の出力が含まれています。
    EccSysID eccSysID 文字列 アクティビティによって返された ECC キュー入力メッセージに関連付けられた参照 ID が含まれています。
    ErrorMessages errorMessage 文字列 PowerShell コマンドから取得したエラーメッセージが含まれています。エラーメッセージがない場合、この値は null です。