PowerShell ステップ

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:12分
  • MID サーバーを介して、ServiceNow インスタンスからのリモートマシン上で PowerShell スクリプトを実行します。

    PowerShell は Windows .NET Framework 上にビルドされており、Windows マシンとアプリケーションの管理を制御および自動化するように設計されています。 ServiceNow は PowerShell 3.0 から 7.4 をサポートしています。PowerShell 3.0 では Windows 2003 Server がサポートされていません。

    注:
    このステップには 統合ハブ のサブスクリプションが必要です。詳細については、「 法務スケジュール - 統合ハブ の概要」を参照してください。

    PowerShell バージョン

    デフォルトでは、 統合ハブ は PowerShell バージョン 3.0 から 5.1 をサポートしています。新しいバージョンを使用するには、 MID サーバープロパティを追加して mid.property.ihub.prefer_powershell6Plustrue に設定します。
    注:
    PowerShell バージョン 6.0 以降が MID サーバーにプリインストールされていません。新しい PowerShell バージョンを手動でインストールする必要があります。以前のバージョン (PowerShell 3.0 から 5.1) と新しいバージョン (PowerShell 6.0 から 7.4) の両方を同じ MID サーバーに共存させることができます。新しいバージョンの PowerShell にアップグレードする前に、 統合ハブ とカスタム PowerShell スクリプトをテストして、すべてが機能することを確認します。

    ロールと可用性

    ワークフロースタジオ アクションステップとして利用可能です。action_designer ロールを持つユーザーは、1 つ以上のアクションステップを使用してカスタムアクションを作成できます。

    フィールド

    フィールド 説明
    接続 使用する接続のタイプ。
    • [インラインで接続を定義]アクションステップ内の接続情報を定義します。
    • [接続エイリアスを使用]接続エイリアステーブルを使用して接続情報を定義します。エイリアスを使用することで、複数の環境でアクションを使用する場合に、複数の認証情報と接続情報プロファイルを構成する必要がなくなります。また、接続情報が変更された場合に、カスタムアクションを更新する必要がありません。

    接続と資格情報の詳細については、「資格情報、接続、およびエイリアスについて」を参照してください。

    接続エイリアス アクションステップを実行するために使用される接続および資格情報エイリアスレコード。flow_designer または admin ロールを持つユーザーは、関連する接続レコードを作成または選択できます。エイリアスを使用することで、複数の環境でアクションを使用する場合に、複数の認証情報と接続情報プロファイルを構成する必要がなくなります。また、接続情報が変更された場合に、カスタムアクションを更新する必要がありません。接続と資格情報の詳細については、「資格情報、接続、およびエイリアス」を参照してください。 認証情報の値は、データパネルにパスワード (双方向暗号化) データピルとして表示されます。
    注:
    このフィールドは、接続リストから [接続エイリアスを使用] が選択されている場合に利用可能です。
    認証情報エイリアス アクションステップを実行するために使用される認証情報エイリアス。flow_designer または admin ロールを持つユーザーは、関連する接続レコードを作成または選択できます。エイリアスを使用することで、複数の環境でアクションを使用する場合に、複数の認証情報を構成する必要がなくなります。また、認証情報が変更された場合に、カスタムアクションを更新する必要がありません。接続と資格情報の詳細については、「資格情報、接続、およびエイリアス」を参照してください。 認証情報の値は、データパネルにパスワード (双方向暗号化) データピルとして表示されます。
    注:
    このフィールドは、接続リストから [インラインで接続を定義] が選択されている場合に利用可能です。
    ホスト アクションステップが実行されるターゲットホストの完全修飾ドメイン名を指定します。たとえば、host.domain.com です。
    注:
    このフィールドは、[接続][インラインで接続を定義] である場合にのみ表示されます。
    ポート ターゲットホストが接続をリッスンする通信ポートを指定します。たとえば、5985 です。デフォルトポートを使用する場合は空白のままにします。
    注:
    このフィールドは、[接続][インラインで接続を定義] である場合にのみ表示されます。
    MID 選択 特定の MID サーバーまたは MID クラスターを選択するオプション。次のいずれかのオプションを選択します。
    • MID サーバーの自動選択: ServiceNow インスタンスは手動入力なしで MID サーバー を選択します。
    • 特定の MID サーバー: ServiceNow インスタンスは、指定した MID サーバー を使用します。
    • 特定の MID クラスター: ServiceNow インスタンスは、指定した MID クラスターを使用します。

      MID クラスターは、 ServiceNow インスタンスが複数の統合を処理できるようにする MID サーバーのグループであり、統合速度を向上させます。詳細については、「Configure a MID Server cluster」を参照してください。

    このフィールドは、接続リストから [インラインで接続を定義] が選択されている場合に利用可能です。
    MID アプリケーション 選択対象となるために MID サーバーがサポートする必要があるアプリケーションを指定します。選択したアプリケーションをサポートする MID サーバーからアクションステップが実行されます。 このフィールドにデータピルを使用する場合、ピルは MID アプリケーションレコードではなく、MID アプリケーションの名前を参照する必要があります。このフィールドは、接続リストから [インラインで接続を定義] が選択されていて、MID 選択リストから [MID サーバーの自動選択] が選択されている場合に利用可能です。
    できること 選択対象となるために MID サーバー がサポートする必要がある機能です。選択した機能をサポートする MID サーバー からアクションステップが実行されます。 このフィールドは、接続リストから [インラインで接続を定義] が選択されていて、MID 選択リストから [MID サーバーの自動選択] が選択されている場合に利用可能です。
    MID サーバー MID サーバー [ecc_agent_list] レコードへの sys_id 参照を含むデータピル。このフィールドは、接続リストから [インラインで接続を定義] が選択されていて、MID 選択リストから [特定の MID サーバー] が選択されている場合に利用可能です。
    MID クラスター 使用する MID クラスターのデータピル。このフィールドは、接続リストから [インラインで接続を定義] が選択されていて、MID 選択リストから [特定の MID クラスター] が選択されている場合に利用可能です。
    リモート処理タイプ MID サーバーやリモート サーバーなど、PowerShell スクリプトが実行される場所。
    • [明示的なリモート処理 (最も一般的)]:リモート サーバーとの接続を確立し、リモート サーバーでスクリプトを実行します。
    • [暗黙的なリモート処理 (高度)]MID サーバーでスクリプトを実行すると同時に、必要なモジュールをリモート サーバーからインポートします。選択した場合は、[リモート名のプリフィックス] フィールドと [インポートするモジュール] フィールドを定義します。最適なパフォーマンスを得るため、ステップに必要なモジュールのみをインポートします。空白にした場合、使用可能なすべてのモジュールがサーバーからインポートされます。
    • [MID サーバーで実行するか、スクリプトでリモートセッションを確立します]:スクリプトを MID サーバーで直接実行します。またはスクリプトの中でリモート処理の仕様を定義することができます。この値がデフォルトです。
    注:
    PowerShell スクリプトコマンドまたは PowerShell スクリプトファイル内の関数を呼び出す関数がパラメーターを入力している場合、コマンドは関数パラメーターブロックを定義する必要があります。この要件は、明示的および暗黙的なリモート処理に適用されます。パラメーターブロックの追加については、https://technet.microsoft.com/ の Windows Powershell パラメーターに関する Microsoft のドキュメントを参照してください。
    リモート名のプリフィックス リモート サーバーからロードするモジュールへのファイル パス (ファイル名を除く)。
    注:
    このフィールドは、[リモート処理タイプ][暗黙的なリモート処理 (高度)] の場合のみ表示されます。
    インポートするモジュール 定義したファイル パスにあるリモート サーバーからインポートするモジュールのカンマ区切りリスト。
    注:
    このフィールドは、[リモート処理タイプ][明示的なリモート処理 (最も一般的)] または [暗黙的なリモート処理 (高度)] の場合のみ表示されます。
    PowerShell ステップのテスト (Test PowerShell Step) PowerShell ステップ用に設定された認証情報をテストするボタン。詳細については、「PowerShell ステップの認証情報のテスト」を参照してください。
    スクリプト タイプ PowerShell ホストで実行するスクリプトのタイプ。
    • [インライン スクリプト]:ステップの [コマンド] フィールドに、実行するスクリプトを入力します。
    • [MID サーバースクリプトファイル]MID サーバー スクリプトファイル [ecc_agent_script_file] テーブルから、実行する PowerShell スクリプトを選択します。これはデフォルト値です。これによってスクリプトのロジックがアクションから分離されるため、アクションの変更や再展開をしなくてもスクリプトを更新することができます。
    MID サーバー スクリプト MID サーバー スクリプトファイル テーブル [ecc_agent_script_file] からの事前定義された PowerShell スクリプト。
    注:
    このフィールドは、[スクリプト タイプ][MID サーバースクリプトファイル] の場合にのみ使用できます。
    スクリプト パス 選択した MID サーバー スクリプトの読み取り専用パス。
    注:
    このフィールドは、[スクリプト タイプ][MID サーバースクリプトファイル] の場合にのみ表示されます。
    入力変数 PowerShell スクリプト変数の値を表すオプションの名前と値のペア。PowerShell スクリプトの中で、アクションの入力や他のステップからのデータを使用できます。各変数について次のフィールドを定義します。
    • [名前]:スクリプト変数の名前。この変数に値を渡します。この名前を、予約済みまたは禁止されている PowerShell 変数と一致させることはできません。一部の変数名は内部処理用に予約されているため、入力変数として使用しないでください。「PowerShell スクリプト変数」の「予約済みの変数」を参照してください。
    • [タイプ]:PowerShell 変数のタイプ。テキスト、暗号化、またはブーリアンを選択します。暗号化を選択した場合、値はこのフィールドにテキストで表示され、ECC キューに渡されるときのみ暗号化されます。
    • [値]:変数にマップする値。手動で値を入力するか、データ ピルをフィールドにドラッグします。
    コマンド ターゲット ホストで実行するインライン PowerShell スクリプト。
    注:
    このフィールドは、[スクリプト タイプ][インライン スクリプト] の場合にのみ表示されます。

    アクションエラー評価

    このステップが失敗した場合
    データタイプ:Choice

    次のステップの実行を続行するか、エラー評価に進むオプション。カスタムアクションのエラー条件のステップのステータスコードやメッセージを使用するには、「アクションエラー評価」を参照してください。

    PowerShell スクリプト変数

    [コマンド] フィールドから入力変数にアクセスするには、特殊な構文を使用して呼び出す必要があります。使用する構文はシステム プロパティの値によって異なります。[リモート処理タイプ][MID サーバーで実行するか、スクリプトでリモートセッションを確立します] の場合、入力変数に加えていくつかの予約済み変数が使用できます。

    入力変数の構文

    デフォルトでは、変数名の先頭に $ 文字を付けます。たとえば、入力変数の名前が message の場合は、$message を使用してスクリプトの変数にアクセスします。

    mid.powershell.command.script.parameter_passing パラメーターを false に設定している場合は、変数名の先頭に $env:SNC_ を付けます。たとえば、入力変数の名前が message の場合は、$env:SNC_message を使用してスクリプトの変数にアクセスします。mid.powershell.command.script.parameter_passing パラメーターの詳細については、「MID サーバーパラメーター」を参照してください。

    予約済みの変数

    [リモート処理タイプ][MID サーバーで実行するか、スクリプトでリモートセッションを確立します] の場合、次の変数をスクリプトで使用できます。予約済みの変数をカスタムの入力変数名として使用することはできません。

    予約済み変数 説明
    $computer 接続エイリアス レコードで定義されているホスト IP アドレス。
    $cred 接続レコードで定義されている認証情報が含まれている認証情報オブジェクト。この変数は、認証情報パラメーターをサポートしている PowerShell コマンドレットで使用します。たとえば、New-PSSession -credential $cred などと使用します。
    $log_info mid.property.powershell.log_info プロパティを true に設定している場合、ログ情報を PowerShell スクリプトに追加します。

    次の変数名は内部処理用に予約されているため、入力変数として使用しないでください。

    • スクリプト
    • useCred
    • isMid
    • isDiscovery
    • debug
    • user
    • パスワード
    • executingScriptDirectory
    • midScriptDirectory
    • hresult