PowerShell ステップ

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む10読むのに数分
  • PowerShell は Windows .NET Framework をベースとして開発されたもので、Windows マシンとアプリケーションの管理の制御および自動化を目的としています。ServiceNow は PowerShell 3.0 ~ 5.1 をサポートしています。PowerShell 3.0 では Windows 2003 Server はサポートされていません。

    注:

    ロールと使用可用性

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

    フィールド

    フィールド 説明
    接続 使用する接続のタイプ。
    • [インラインで接続を定義]
    • [接続エイリアスを使用]

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

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

    アクションエラー評価のフィールド

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

    PowerShell スクリプト変数

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

    入力変数の構文

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

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

    予約済みの変数

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

    予約済み変数 説明
    $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