PowerShell ステップ
MID サーバーを介して、ServiceNow インスタンスからのリモートマシン上で PowerShell スクリプトを実行します。
PowerShell は Windows .NET Framework 上にビルドされており、Windows マシンとアプリケーションの管理を制御および自動化するように設計されています。 ServiceNow は PowerShell 3.0 から 7.4 をサポートしています。PowerShell 3.0 では Windows 2003 Server がサポートされていません。
PowerShell バージョン
ロールと可用性
ワークフロースタジオ アクションステップとして利用可能です。action_designer ロールを持つユーザーは、1 つ以上のアクションステップを使用してカスタムアクションを作成できます。
フィールド
| フィールド | 説明 |
|---|---|
| 接続 | 使用する接続のタイプ。
接続と資格情報の詳細については、「資格情報、接続、およびエイリアスについて」を参照してください。 |
| 接続エイリアス | アクションステップを実行するために使用される接続および資格情報エイリアスレコード。flow_designer または admin ロールを持つユーザーは、関連する接続レコードを作成または選択できます。エイリアスを使用することで、複数の環境でアクションを使用する場合に、複数の認証情報と接続情報プロファイルを構成する必要がなくなります。また、接続情報が変更された場合に、カスタムアクションを更新する必要がありません。接続と資格情報の詳細については、「資格情報、接続、およびエイリアス」を参照してください。
認証情報の値は、データパネルにパスワード (双方向暗号化) データピルとして表示されます。
注: このフィールドは、接続リストから [接続エイリアスを使用] が選択されている場合に利用可能です。 |
| 認証情報エイリアス | アクションステップを実行するために使用される認証情報エイリアス。flow_designer または admin ロールを持つユーザーは、関連する接続レコードを作成または選択できます。エイリアスを使用することで、複数の環境でアクションを使用する場合に、複数の認証情報を構成する必要がなくなります。また、認証情報が変更された場合に、カスタムアクションを更新する必要がありません。接続と資格情報の詳細については、「資格情報、接続、およびエイリアス」を参照してください。
認証情報の値は、データパネルにパスワード (双方向暗号化) データピルとして表示されます。
注: このフィールドは、接続リストから [インラインで接続を定義] が選択されている場合に利用可能です。 |
| ホスト | アクションステップが実行されるターゲットホストの完全修飾ドメイン名を指定します。たとえば、host.domain.com です。
注: このフィールドは、[接続] が [インラインで接続を定義] である場合にのみ表示されます。 |
| ポート | ターゲットホストが接続をリッスンする通信ポートを指定します。たとえば、5985 です。デフォルトポートを使用する場合は空白のままにします。 注: このフィールドは、[接続] が [インラインで接続を定義] である場合にのみ表示されます。 |
| MID 選択 |
特定の MID サーバーまたは MID クラスターを選択するオプション。次のいずれかのオプションを選択します。
|
| 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 スクリプトが実行される場所。
注: 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 サーバー スクリプトの読み取り専用パス。 注: このフィールドは、[スクリプト タイプ] が [MID サーバースクリプトファイル] の場合にのみ表示されます。 |
| 入力変数 | PowerShell スクリプト変数の値を表すオプションの名前と値のペア。PowerShell スクリプトの中で、アクションの入力や他のステップからのデータを使用できます。各変数について次のフィールドを定義します。
|
| コマンド | ターゲット ホストで実行するインライン PowerShell スクリプト。 注: このフィールドは、[スクリプト タイプ] が [インライン スクリプト] の場合にのみ表示されます。 |
アクションエラー評価
- このステップが失敗した場合
- データタイプ:Choice
次のステップの実行を続行するか、エラー評価に進むオプション。カスタムアクションのエラー条件のステップのステータスコードやメッセージを使用するには、「Action error evaluation」を参照してください。
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