---
sourceDocument: Xanadu の Now Platform 機能
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/servicenow-platform

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu の Now Platform 機能

ft:clusterId :

    - platcap

bundleId :

    - platcap

workflow :

    - Platform


---

# PowerShell アクティビティ

# PowerShell アクティビティ {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：5分

PowerShell は Windows .NET Framework をベースとして開発されたもので、Windows マシンとアプリケーションの管理のコントロールおよび自動化を目的としています。

PowerShell は、これらのアクティビティを使用する任意の MID サーバーにインストールする必要があります。PowerShell を使用する MID サーバーは、サポートされる Windows オペレーティングシステムにインストールする必要があります。 ServiceNow は PowerShell 3.0 ～ 5.1 をサポートしています。{#c_OrchestrPowerShellActivities__ph_Supported_PowerShell_Versions}

ServiceNow [オーケストレーションプ](https://www.servicenow.com/docs/Lmah01asGwaoOCN~8hNIxQ "Workflow で オーケストレーション アクティビティを使用して、サードパーティシステムと統合できます。")ラグインはこれらの基本的な PowerShell アクティビティをワークフローに追加します。PowerShell アクティビティパックのアクティビティの使用方法については、次を参照してください。 [PowerShell アクティビティパック](https://www.servicenow.com/docs/tV8pgjWIMGuikgoRHgt6dg "PowerShell は Windows .NET Framework をベースとして開発されたもので、Windows マシンとアプリケーションの管理のコントロールおよび自動化を目的としています。")

## レガシーの \[PowerShell の実行\] アクティビティ {#ariaid-title2}

\[PowerShell の実行\] アクティビティは、MID サーバーで Windows PowerShell コマンドを実行します。
重要:  
このアクティビティは不使用になり、新しいワークフローでは使用できません。このアクティビティの機能を置き換えるには、[PowerShell アクティビティテンプレート](https://www.servicenow.com/docs/AzkOoPJHGJpOsbJ9NCb4Nw#t_CreateAPowershellActivity "Microsoft PowerShell を使用してホストからワークフローにデータを返すために、カスタム PowerShell アクティビティを作成します。")を使用してカスタムアクティビティを作成します。\[PowerShell の実行\] アクティビティを使用する以前のリリースからのワークフローは引き続き実行できます。

### 結果の値

ワークフローデザイナーは、アクティビティのスクリプトフィールド内から activity.result を使用して、結果値を割り当てることができます。デフォルトでは、使用される PowerShell コマンドの成功または失敗によって、\[PowerShell の実行\] アクティビティの結果の値が決まります。可能な結果値：

* 成功
* 失敗
{#r_RunPowershellActivity__ul_oqc_yxs_hp}

### スクラッチパッドエントリー

実行中のスクリプトによって <var class="keyword varname">stdout</var> に書き込まれる情報は、<var class="keyword varname">activity.output</var> 変数で取得され、アクティビティに返されます。この情報は、アクティビティのセンサースクリプトでの将来の処理のために解析、処理、または (たとえばスクラッチパッド変数に) 保存できます。  
たとえば、get-date コマンドを実行して、MID サーバーの現在時刻を取得します。このセンサースクリプトは受信した出力全体を保存しますが、時刻だけを返して保存するように処理できます。図 : 1. PowerShell アクティビティ  
注:  
これは非常に単純化した例です。ほとんどの場合、スクリプトは数台のリモート Windows コンピューターに対して操作を実行します。しかし原則は同じです。`stdout` に書き込まれた内容はすべて `activity.output` で返され、処理できます。

### 入力変数

{#r_RunPowershellActivity__table_kh2_mys_hp__entry__2}

| フィールド | 説明 |
|-|-|
| ホスト名 | ターゲット Windows マシンの IP アドレス。この値は、コマンドで使用するために <var class="keyword varname">$computer</var> 変数にマップされます (\[コマンド\] フィールドの例を参照)。ServiceNow 認証情報テーブル内の情報に基づく PowerShell 認証情報 <var class="keyword varname">$cred</var> は、\[ホスト名\] で指定されるコンピューターで認証されます。 |
| コマンド | 実行する PowerShell コマンドを入力します。たとえば、<var class="keyword varname">[ホスト名]</var> 変数で指定されたリモート マシンに対して単純な WMI クエリーを実行する場合、コマンドは次のようになります。 get-wmiobject <class> -computer $computer -credential $cred コンピューターで認証情報が認証されていない場合、コマンドは MID サーバーユーザーのコンテキストで実行されます。 コマンドとスクリプトファイルの両方を実行することはできません。コマンドを指定すると、<var class="keyword varname">[スクリプトファイル]</var> 変数が非表示になります。 |
| センサースクリプト | プローブの結果を使用して実行するスクリプト。プローブからの出力は、<var class="keyword varname">output</var> という名前の変数に含まれます。プローブからのエラーは、<var class="keyword varname">error</var> という名前の変数に含まれます。 |
| スクリプトファイル | - [のスクリプトファイルの同期を有効にする Windows セキュリティの強化](https://www.servicenow.com/docs/0rjS7GJixc3YOevpfNma0g#c_EnableScriptFileSyncWinESecure "Windows Internet Explorer 拡張セキュリティは、潜在的に危険であると判断したダウンロード ファイルをブロックします。"). スクリプトファイルとコマンドの両方を実行することはできません。スクリプトファイルを選択すると、<var class="keyword varname">[コマンド]</var> 変数が非表示になります。 |
| PowerShell スクリプト変数 | 指定されたスクリプトファイルで使用される JSON 形式の追加パラメーター。 |
[表 : 1. 入力変数]

{#r_RunPowershellActivity__table_kh2_mys_hp}

### 状況

アクティビティ状況は、ワークフロー エンジンがアクティビティを処理する方法を指示します。{#r_RunPowershellActivity__table_zvx_mzs_hp__entry__2}

| 状態 | 説明 |
|-|-|
| 実行中 | ワークフロー エンジンは、アクティビティの onExecute 機能を起動させることができます。 |
| 完了 | アクティビティの実行が終了しました。アクティビティの結果については結果値を確認してください。 |
| キャンセル | このアクティビティ、またはこのアクティビティを含むワークフローがキャンセルされました。 |
[表 : 2. 状況]

{#r_RunPowershellActivity__table_zvx_mzs_hp}  
通常のワークフロー変数構文を使用して、コマンド ラインのワークフロー変数を追加します。上記の例では、\<class\> がワークフロー入力変数 <var class="keyword varname">myclass</var> にあった場合、コマンドは次のようになります。

    get-wmiobject $ {workflow. inputs. myclass } -computer $computer --credential $cred
    Similarly  if the variable  is a scratchpad variable named myclass , the command would look like :
    get -wmiobject $ {workflow. scratchpad. myclass } -computer $computer --credential $cred

## HResult コード {#ariaid-title3}

PowerShell スクリプトでエラーが発生すると、Windows マシンはエラーメッセージの一部として HResult コードを返します。

PowerShell アクティビティは、このコードを読み取り、解釈できます。すべての PowerShell エラーに HResult コードが含まれているわけではありません。PowerShell スクリプトに失敗した場合は、HResult コードを使用して、特定の条件に沿ってワークフローを移動できます。

たとえば、Active Directory パスワードを最小長や複雑さなどのポリシー要件を満たしていないパスワードへリセットすると、PowerShell スクリプトは HResult コード -2146022651 を返します。このコードを使用するには、\[条件\] 値が <var class="keyword varname">activity.hresult = -2146022651</var> であるアクティビティ条件を作成します。アクティビティの実行時に PowerShell スクリプトがこのコードを返すと、ワークフローはこの新しい条件に移行します。

