スクリプト化されたタスクのスクリプト
はじめに
このページでは、WEMエージェントで自動化または実行できるスクリプトを管理できます。スクリプトは次のカテゴリに分類されます。
-
一般的なVDA管理およびトラブルシューティングのニーズに対応する、すぐに使用できるスクリプト。
-
カスタムスクリプト環境固有の自動化および運用要件に対応する、管理者が作成したスクリプト。
注:
スクリプトから自動タスクを構成するには、構成セットのスクリプト化されたタスクに移動します。
カスタムスクリプトの追加
スクリプト化されたタスクページには、すべての組み込みスクリプトと、ユーザーまたは他の管理者が作成したカスタムスクリプトが一覧表示されます。要件に合わせて、必要に応じて追加のカスタムスクリプトを追加できます。
始める前に
WEM Webコンソールでカスタムスクリプトを作成する前に:
-
スクリプトコンテンツの作成要件に基づいてPowerShellスクリプトを作成します。
-
スクリプトコンテンツの検証Citrix Environment Tool Hub > Scripted Task Validatorツールを使用してスクリプトを実行し、実行結果を確認します。必要に応じて、後でWEM Webコンソールにインポートするためにスクリプトをエクスポートできます。詳しくは、「スクリプト化されたタスクの検証とエクスポート」を参照してください。
ワークフロー
カスタムスクリプトを追加するには、次の手順を実行します。
-
「スクリプトタスク」ページで、「カスタム」タブをクリックし、「カスタムスクリプトの追加」をクリックします。
-
「カスタムスクリプトの追加」ウィザードで、次の設定を構成し、「保存」をクリックします。
-
スクリプト名。スクリプトの名前を指定します。
-
説明。必要に応じて、スクリプトを識別するのに役立つ追加情報を指定します。
-
スコープ(オプション)。このスクリプトが属するスコープを指定します。そのスコープの権限を持つ管理者のみがこのスクリプトにアクセスできます。スコープを指定しない場合、完全なWEM管理者のみがこのスクリプトにアクセスできます。
-
タグ。既存のタグから選択するか、コンマで区切ってタグを入力します。タグは20文字以内である必要があります。タグはキーワードやラベルのようなものです。タグを使用すると、新しい方法でスクリプトを識別できます。また、フィルターとして機能し、重要な基準に応じてスクリプトの表示を再配置できます。タグはいくつでも使用できます。
-
ファイルの種類。スクリプトのファイルの種類を選択します。次の2種類のファイルがサポートされています。
-
PowerShell。個別のPowerShellスクリプトファイル。
-
ZIP。複数のファイルを1つのzipファイルにバンドルしたもの。10 MBを超えるzipファイルはサポートされていません。zipファイルをアップロードした後、スクリプトの開始時に実行するファイルを示すエントリポイントを指定します。エントリポイントファイルは、フォルダー構造内で3レベルより深くならないようにしてください。
-
-
ファイルのアップロード。「参照」をクリックし、ファイルに移動して選択し、「開く」をクリックします。「カスタムスクリプトの追加」ウィザードに戻ります。ヒント:スクリプトは次の2つの方法でアップロードできます。
-
Webコンソールマシンにすでに配置されている.zipファイルを選択します。
-
Scripted Task Validatorツールでスクリプトをエクスポートすると、コンテンツが自動的にクリップボードにコピーされます。「カスタムスクリプトの追加」ページで、クリップボードから直接コンテンツを貼り付けます(<Ctrl+V>)。この方法では、Webコンソールマシンに.zipファイルを保存する必要がありません。
-
-
権限の付与。スクリプトに付与するアクセスレベルを指定します。各オプションに関連付けられている権限を理解していることを確認してください。
-
フルアクセス。フルアクセスが割り当てられたスクリプトは、広範なローカルアクセス権を持ちます。選択した場合、スクリプトはローカルシステムアカウントで実行されているかのように権限が付与されます。
-
制限付きアクセス (ネットワークアクセスあり)。制限付きアクセス (ネットワークアクセスあり) が割り当てられたスクリプトは、広範なローカルアクセス権を持ちませんが、ネットワークリソースにアクセスできます。選択した場合、スクリプトはネットワークサービスアカウントで実行されているかのように権限が付与されます。
-
制限付きアクセス (ネットワークアクセスなし)。制限付きアクセス (ネットワークアクセスなし) が割り当てられたスクリプトは、広範なローカルアクセス権を持たず、ネットワークリソースにアクセスできません。選択した場合、スクリプトはローカルサービスアカウントで実行されているかのように権限が付与されます。
-
ログオンユーザーとして実行。選択した場合、スクリプトはログオンユーザーのセッションのコンテキストで実行され、ユーザーセッションがアクティブであるか切断されているかに関わらず、同じ権限が付与されます。
詳細については、Microsoftのドキュメント<https://docs.microsoft.com/ja-jp/windows/security/identity-protection/access-control/security-identifiers#well-known-sids>を参照してください。 -
-
作業フォルダー。オプションで、エンドユーザーのオペレーティングシステム上のローカルフォルダーの絶対パスを入力します。作業フォルダーは、ファイルが開始されるときの現在のフォルダーです。環境変数(例: %ProgramFiles%)を使用してパスを構築できます。指定しない場合、
PSScriptRootがデフォルトの作業フォルダーとして使用されます。PSScriptRootの詳細については、Microsoftのドキュメント<https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.1>を参照してください。 -
このタスクは出力ファイルを生成しますか。追加するスクリプトが出力ファイルを生成するかどうかを選択します。
-
出力パス。ファイルが存在するフォルダーに対する相対パスを入力します。パスにはファイル名とファイル名拡張子を含める必要があります。例:
output\report.txt。
-
スクリプトの管理
必要に応じてスクリプトを管理できます。利用可能なアクションは次のとおりです。
スクリプトを編集する
スクリプトを編集するには、次の手順を実行します。
-
Scripted Tasks ページで、スクリプトを見つけます。必要に応じて、検索ボックスまたはタグを使用してすばやく見つけます。
-
スクリプトの省略記号をクリックし、Edit script を選択します。Edit script ウィザードが表示されます。
-
Task info タブで、必要に応じて設定を構成します。
-
Script file タブで、スクリプトの内容を表示します。
-
「保存」をクリックします。
注:
組み込みスクリプトは編集できません。
スクリプトを削除する
スクリプトを削除するには、次の手順を実行します。
-
Scripted Tasks ページで、スクリプトを見つけます。必要に応じて、検索ボックスまたはタグを使用してすばやく見つけます。
-
スクリプトの省略記号をクリックし、Delete script を選択します。
重要:
組み込みスクリプトは削除できません。
スクリプトを複製する
スクリプトを複製するには、次の手順を実行します。
-
Scripted Tasks ページで、スクリプトを見つけます。必要に応じて、検索ボックスまたはタグを使用してすばやく見つけます。
-
スクリプトの省略記号をクリックし、「スクリプトの複製」を選択します。
注:
スクリプトを複製する際、重複する名前を避けるために名前の変更を求められます。
スクリプト化されたタスクの構成
スクリプト化されたタスクを構成および自動化するには、次の手順を実行します。
-
「スクリプト化されたタスク」ページでスクリプトを見つけます。必要に応じて、検索ボックスまたはタグを使用してすばやく見つけます。
-
スクリプトの省略記号をクリックし、「タスクの構成」を選択します。
-
「構成セットの選択」ウィザードで、タスクを作成する構成セットを選択します。
-
構成を完了するには、スクリプト化されたタスクの作成の手順に従います。
スクリプトから外部タスクを作成する
このアクションを使用して、既存のスクリプトから直接外部タスクを作成します。
ヒント:
スクリプト化されたタスクはマシンレベルで動作します。ユーザーセッションレベルでタスクを実行するには、代わりに外部タスクを作成します。
スクリプトから外部タスクを作成するには、次の手順を実行します。
-
「スクリプト化されたタスク」ページでスクリプトを見つけます。必要に応じて、検索ボックスまたはタグを使用してすばやく見つけます。
-
スクリプトの省略記号をクリックし、「外部タスクの作成」を選択します。
-
「構成セットの選択」ウィザードで、タスクを作成する構成セットを選択します。
-
「外部タスクの作成」(/ja-jp/workspace-environment-management/service/manage/configuration-sets/actions.html#create-an-external-task)の手順に従って、構成を完了します。
組み込みスクリプト
現在、以下の組み込みスクリプトをご利用いただけます。
クラウドヘルスチェック
仮想デリバリーエージェント (VDA) の健全性を測定するチェックを実行できます。VDAヘルスチェックは、一般的なVDA登録およびセッション起動の問題の考えられる原因を特定します。クラウドヘルスチェックは、エージェントホスト上のローカルシステムアカウントで実行されます。
Windowsサービス管理
Windowsサービス管理は、1つまたは複数のWindowsサービスの開始、停止、再起動、構成など、Windowsサービスに関する頻繁に使用される機能を提供します。
Windowsサービスの再起動
このスクリプトは、Windowsサービスのステータスを確認します。サービスが現在実行されておらず、
ForceStart パラメーターが指定されている場合、スクリプトはサービスを開始します。現在のステータスに関係なく、サービスが実行中で強制的な開始を必要としない場合、最新の構成で動作していることを確認するため、または停止状態から回復するために再起動されます。
パラメーター
| 名前 | タイプ | デフォルト | 必須 | 注 |
|---|---|---|---|---|
ServiceNames |
文字列 | BrokerAgent | いいえ | 管理するサービスの名前を指定します。指定しない場合、BrokerAgent がデフォルトになります。複数のサービスを入力する必要がある場合は、サービス名をコンマで区切ります。すべてのスペースはトリミングされます。例: ServiceA, ServiceB。 |
ForceStart |
ブール値 | 真 | いいえ | サービスが実行されていない場合に開始するかどうかを示します。実行中のサービスには影響しません。実行中のサービスは、メンテナンスまたは回復の目的で常に再起動されます。 |
Windowsサービスを停止する
このスクリプトは、指定されたWindowsサービスのリストを停止します。スクリプトは、各サービスがインストールされているかどうかを確認し、サービスを強制停止しようとします。その後、スクリプトはサービスが正常に停止したかどうかを検証し、ステータスを報告します。
パラメーター
| 名前 | タイプ | デフォルト | 必須 | 注 |
|---|---|---|---|---|
ServiceNames |
文字列 | BrokerAgent | いいえ | 管理するサービスの名前を指定します。指定しない場合、デフォルトはBrokerAgentです。複数のサービスを入力する必要がある場合は、サービス名をコンマで区切ります。すべてのスペースはトリミングされます。例: ServiceA, ServiceB。 |
Windowsサービスを構成する
このスクリプトは、スタートアップの種類や回復アクションなど、Windowsサービスの設定を調整します。
パラメーター
| 名前 | タイプ | デフォルト | 必須 | 注 |
|---|---|---|---|---|
ServiceNames |
文字列 | BrokerAgent | 偽 | 管理するサービスの名前を指定します。指定しない場合、BrokerAgentがデフォルトになります。複数のサービスを入力する必要がある場合は、サービス名をコンマで区切ります。すべてのスペースはトリミングされます。例: ServiceA, ServiceB。 |
StartupType |
文字列 | ヌル | 偽 | サービスの起動タイプを設定します。有効なオプションは、Automatic、Manual、またはDisabledです。 |
FirstFailureAction |
文字列 | ヌル | 偽 | 最初の障害に対するアクションを定義します。例: restart/none。 |
SecondFailureAction |
文字列 | ヌル | 偽 | 2回連続の障害に対するアクションを定義します。 |
SubsequentFailureAction |
文字列 | ヌル | いいえ | 2回目以降のすべての失敗に対するアクションを定義します。 |
サーバーの再起動
マシンの再起動
このスクリプトは、オプションの遅延と強制オプションを使用してローカルマシンを再起動します。
パラメーター
| 名前 | タイプ | デフォルト | 必須 | 注 |
|---|---|---|---|---|
Force |
ブール値 | 真 | いいえ | 指定した場合、未保存のデータやアクティブなユーザーセッションを無視して、即座に再起動を強制します。 |
Delay |
整数 | 10 | いいえ | コンピューターが再起動されるまでの遅延時間(秒単位)を指定します。3秒から30秒の間である必要があります。デフォルトは10秒です。 |
CDF トレース管理
CDF トレースの開始
このスクリプトは、単一のCTLファイルまたは事前定義されたCTLファイルカテゴリを入力として使用して、CDFトレースプロセスを開始します。選択したCTLファイルで定義されたモジュールをトレースし、
RunMinutes パラメーターで指定された期間が経過すると、cdfcontrol.exe 自動的に停止します。
パラメーター
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
traceOutputPath |
文字列 | C:\ProgramData\Citrix\WEM\CDFLogs |
偽 | CDFレポートの出力パスを指定します。 |
category |
文字列 | all |
偽 |
トレースを開始するための事前定義されたカテゴリを指定します。サポートされている値は次のとおりです:
|
ctlFilePath |
文字列 | ヌル | 偽 | トレースを開始するctlファイルを指定します。 |
RunMinutes |
整数 | 30 | 偽 | cdfcontrol.exeが自動的に停止して終了するまでに実行される期間を指定します。 |
CDFトレースの停止
このスクリプトは、CDFツールのトレースを停止します。
CDFログのクリーンアップ
CDFトレースログをクリーンアップしてストレージ消費を節約することは有用です。指定されたディレクトリ下のCDFファイルを削除する機能を提供する必要があります。
| 名前 | タイプ | デフォルト | 必須 | 注 |
|---|---|---|---|---|
FileAgeDays |
整数 | 3 | 偽 | 日数での経過時間しきい値を指定します。この値よりも古いファイルとフォルダーは削除されます。デフォルト値は3日であり、このパラメーターはオプションです。FileAgeDaysが1日未満の場合、すべてのファイルまたはディレクトリが削除されます。 |
Citrix AOT障害ログの収集
このスクリプトは、Citrix AOTログの収集と処理のために設計された包括的な自動化ツールです。Citrix CDFControlと統合して、トレース収集の構成、フィルタリングの適用(デフォルト:
Level=1, Class=Failure)、およびETL(イベントトレースログ)ファイルを分析用の読み取り可能なCSV形式への変換を行います。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
StartTime |
[DateTime] |
EndTime - 30 minutes |
偽 | ログフィルタリングの開始時刻を指定します。 |
EndTime |
[DateTime] |
現在の日時 | 偽 | ログフィルタリングの終了時刻を指定します |
DNS設定の確認
このスクリプトは、Citrix VDA環境向けに設計された包括的なDNSヘルスチェックツールです。DNS構成を検証し、Citrixサービスに影響を与える可能性のあるDNS関連の問題を特定するためのトラブルシューティングを実行します。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
DomainName |
[string] |
該当なし | 偽 | DNS解決をテストするドメイン名を指定します(DNS名前解決テストを有効にします) |
FlushDNS |
[switch] |
偽 | 偽 | DNSキャッシュを単独のアクションとしてフラッシュするかどうかを指定します |
RDSライセンスの確認
このスクリプトは、ローカルコンピューター上のRemote Desktop Services (RDS) ライセンス構成とステータスをチェックするために設計された、包括的なRDSライセンス検証ツールです。これは、適切な操作のためにRDSライセンスコンプライアンスが不可欠なCitrix VDA環境で特に役立ちます。このスクリプトを使用して、ライセンスコンプライアンスを確保し、中断のないマルチセッションユーザーアクセスを維持します。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
DomainName |
[string] |
該当なし | いいえ | DNS解決をテストするドメイン名を指定します(DNS名前解決テストを有効にします) |
FlushDNS |
[switch] |
いいえ | いいえ | DNSキャッシュをスタンドアロンアクションとしてフラッシュするかどうかを指定します |
VDA登録解除の診断
このスクリプトは、Citrix Virtual Delivery Agent (VDA) の登録解除の問題をトラブルシューティングするために設計された、包括的な診断ツールです。Citrix環境におけるVDA登録解除問題の潜在的な原因を特定するために、複数のヘルスチェックと診断手順を実行します。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
StartTime |
[DateTime] |
EndTime - 30 minutes |
いいえ | ログフィルタリングの開始時刻を指定します |
EndTime |
[DateTime] |
現在の日時 | いいえ | ログフィルタリングの終了時刻を指定します |
プロファイル管理のヘルスチェックを実行
このスクリプトは、Citrix Profile Managementの展開の包括的なヘルスチェックを実行します。構成をスキャンして潜在的な問題を特定し、ログを分析して一時プロファイルエラーやログオン時の大幅な時間差などの重大な問題を検出します。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
CtxSessionKey |
[string] | なし | いいえ | 特定のセッションログを検索するために使用されるCitrixセッションキーを指定します。指定しない場合、スクリプトは過去24時間のセッションを分析します。 |
LogonTime |
[string] | なし | いいえ | イベントログ検索をフィルタリングするログオン時間を指定します。さまざまな日付と時刻の形式を受け入れます。指定しない場合、スクリプトは過去24時間分のイベントログをフィルタリングします。 |
StructuredOutputOnly |
[switch] | はい | 偽 | コンソールログなしで構造化されたJSONデータを出力するかどうかを指定します。 |
Parallel |
[switch] | はい | 偽 | パフォーマンスを向上させるために、ログ分析操作に並列処理を使用するかどうかを指定します。 |
プロファイルリセットトリガーの設定
このスクリプトは、ユーザーのプロファイルをリセットするトリガーを設定します。ユーザーが次回ログオンするときに、既存のプロファイルがバックアップされ、新しいクリーンなプロファイルフォルダーが作成されます。
| 名前 | 種類 | 既定値 | 必須 | 注 |
|---|---|---|---|---|
CtxSessionKey |
[string] | なし | はい | ユーザーの次回のログオン時にプロファイルリセットをトリガーするために使用されるCitrixセッションキーを指定します。 |
FoldersToRestore |
[string] | なし | 偽 | プロファイルリセット後に復元するフォルダーを指定します。指定しない場合、ダウンロード、デスクトップ、ピクチャなどの既知のフォルダーが既定で復元されます。 |
BackupNameSuffix |
[string] | ヌル | フォールス | プロファイルのリセット中にバックアップフォルダー名に使用するサフィックスを指定します。指定しない場合、サフィックスはupm_%CurrentTimeStamp%にデフォルト設定されます。 |
Citrix AOTの問題を診断する
このスクリプトは、Citrix Always On Tracing (AOT) の構成を検証し、一般的な問題を診断し、トラブルシューティングをサポートするためのAOT診断レポートを生成します。
StructuredOutputOnlyパラメーターをtrueに設定すると、結果が構造化されたUIビューで表示され、レビューが容易になります。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
StructuredOutputOnly |
[boolean] | 無効 | フォールス | 指定した場合、スクリプトは人間が読める形式のテキストではなく、生のJSON診断レポートのみを出力します。 |
Citrix診断ログを収集する
このスクリプトは、VDAからCitrix Always On Tracing (AOT) ログとWindowsイベントログを収集し、タイムスタンプ付きのZIPファイルとして保存します。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
LogType |
[string] | 該当なし | 偽 | 収集するログを制御します。AOTLog は AOT ETL ファイルのみを収集し、EventLog は Windows イベントログのみを収集します。両方を収集するには空のままにします。 |
RestartTelemetryService |
[boolean] | 真 | 偽 | AOT ログを収集する前に CitrixTelemetryService を停止して再起動するかどうか。これにより、ETL ファイルのファイルロックが解除されます。true または false を受け入れます。デフォルトは true です。 |
StartTime |
[DateTime] | 24時間前 | 偽 | ログ収集の開始時刻を指定します。デフォルトは24時間前です。例: 2025-08-01 10:57:15 |
EndTime |
[DateTime] | 現在時刻 | 偽 | ログ収集の終了時刻を指定します。デフォルトは現在時刻です。StartTime より後である必要があります。例: 2025-08-14 11:57:15 |
OutputPath |
[string] | C:\ProgramData\Citrix\WEM\CitrixLogs |
偽 | 出力 zip ファイルを書き込むディレクトリ。デフォルトは C:\ProgramData\Citrix\WEM\CitrixLogs です。 |
Windows イベントログを収集する
このスクリプトは、Virtual Delivery Agent (VDA) から Windows イベントログを収集し、タイムスタンプ付きの ZIP ファイルとして保存します。
| 名前 | 種類 | 既定 | 必須 | 注 |
|---|---|---|---|---|
LogChannelPrefixes |
[string] | 該当なし | 偽 | ETWチャネル名と照合するコンマ区切りのプレフィックス。指定すると、既定の4ログ収集を上書きします。例: Citrix-HostCore,Microsoft-Windows-AppLocker。 |
ProviderPrefixes |
[string] | 該当なし | 偽 | イベントプロバイダー/ソース名と照合するコンマ区切りのプレフィックス。スクリプトは、各プロバイダーがLogLinksを介してどのログチャネルに書き込むかを自動的に検出するため、従来のログ (アプリケーション、システム) とカスタムETWチャネルの両方で機能します。指定すると、既定の4ログ収集を上書きします。例: WEM Agent Service,Norskale Agent Service。 |
StartTime |
[DateTime] | 24時間前 | 偽 | イベントログ収集の開始時刻を指定します。既定値は24時間前です。例: 2025-08-01 10:57:15 |
EndTime |
[DateTime] | 現在時刻 | 偽 | イベントログ収集の終了時刻を指定します。既定値は現在時刻です。StartTimeより後の時刻である必要があります。例: 2025-08-14 11:57:15 |
OutputPath |
[string] | C:\ProgramData\Citrix\WEM\CitrixEventLogs |
偽 | 出力zipファイルを書き込むディレクトリ。デフォルトは C:\ProgramData\Citrix\WEM\CitrixEventLogs です。 |
Citrix Scout診断を収集
このスクリプトはScoutCLI.exeを実行して、VDAからCitrix診断データを収集し、出力をタイムスタンプ付きのZIPファイルとして保存します。オプションで、MSIやlocaldataなどの特定のコレクターを除外できます。
| 名前 | 種類 | デフォルト | 必須 | 注 |
|---|---|---|---|---|
OutputPath |
[string] | C:\ProgramData\Citrix\WEM\CitrixScoutCliLogs |
偽 | Scout出力zipファイルを書き込むディレクトリ。デフォルトは C:\ProgramData\Citrix\WEM\CitrixScoutCliLogs です。 |
Exclude |
[string] | 該当なし | 偽 | Scoutコレクションから除外するコレクターのコンマ区切りリスト。サポートされている値: msi、localdata。すべてのコレクターを含めるには、空のままにします。 |
詳細情報
スクリプト化されたタスクの使用例については、以下を参照してください。