PDQ Connect では、対象デバイス上でパッケージや個々のステップを実行するかどうかを制御するために、実行条件を設定できます。
実行条件を利用することで、実行前に満たす必要のある条件を柔軟に定義できます。
条件を満たしていない場合、対象のステップまたはパッケージはスキップされます。
概要
実行条件は、特別な処理が必要なシナリオや構成に対応するために設計されています。たとえば、ソフトウェアがインストールされていない場合はアンインストールステップをスキップしたり、ユーザーがログオン中の場合はデバイスの再起動を防止したりできます。この仕組みにより、シナリオごとに個別のパッケージやグループを作成する必要がなくなります。
特に記載がない限り、条件はパッケージ実行時に評価されます。直近で変更が行われた場合でも、パッケージ実行中に条件が確認されるため、事前にマシンをスキャンしておく必要はありません。
条件の適用レベル
条件は、以下の 2 つのレベルで設定できます。
パッケージレベル
パッケージ全体を実行するかどうかを判定します。
- パッケージレベルの条件は最初に評価されます。
パッケージレベルの条件が false の場合、パッケージは実行されません。条件が true の場合、またはパッケージレベルの条件が設定されていない場合は、ステップレベル条件の評価へ進みます。 - パッケージレベルの条件は、パッケージの「Properties」タブで設定できます。
- パッケージレベルの条件を満たさない場合、デプロイは停止し、ステータスは「Canceled」と表示されます。
ステータス列には、どの条件に失敗したかを示す詳細情報が表示されます。これらの詳細は「Package condition not met」で始まります。
ステップレベル
パッケージ内の個々のステップを実行するかどうかを判定します。
- ステップレベルの条件は、各ステップごとに個別に評価されます。
デフォルトでは、ステップ条件が false の場合、そのステップはスキップされ、パッケージは次のステップへ進みます。
- 条件を満たさない場合に後続ステップへ進まずパッケージ実行を停止したい場合は、「Stop running package if conditions are not met」のチェックボックスを有効にしてください。
- ステップレベルの条件を満たさなかった場合、その詳細は出力ログに記録されます。
- パッケージレベル条件とは異なり、この場合はキャンセル扱いにはなりません。
- また、条件を満たさなかったためにどのステップも実行されなかった場合でも、ステップ自体に失敗が発生していなければ、パッケージ全体のステータスは「Complete」と表示されます。
複数条件の追加
パッケージレベルおよびステップレベルの両方で、複数の条件を設定できます。
「Add condition」をクリックして演算子を選択し、さらに条件を追加する場合は同じ操作を繰り返します。
- 使用できる論理演算子は AND と OR です。
- 条件ではフィルターグループはサポートされていないため、同じパッケージまたはステップ内で演算子を混在させることはできません。
- AND を選択した場合、追加したすべての条件に AND が使用されます。
- OR を選択した場合、すべての条件に OR が使用されます。
- 同じパッケージまたはステップ内で AND 条件と OR 条件を組み合わせることはできません。
利用可能な条件
- Group membership:デバイスが特定の PDQ Connect グループに属しているか確認します。
- OS Version:パッケージまたはステップ実行前に OS バージョンを確認します。
- Logged-on user:実行前にユーザーがログオンしているか確認します。
- Files & folders:ファイルの有無を確認します。
- Registry:特定のレジストリキーまたは値を確認します。
- Service:サービスが実行中かどうかを確認します。
- Process :プロセスが実行中かどうかを確認します。
Group Membership
デバイスが PDQ Connect グループに所属しているかどうかに基づいて、パッケージまたはステップを実行するか制御できます。
グループはドロップダウンリストから選択でき、パッケージが作成された組織またはテナント内で設定されているすべてのグループが表示されます。
グループメンバーシップは、デプロイ作成時点の状態が使用されます。
OS Version
デバイスのオペレーティングシステムに基づいてデプロイ対象を制御できます。
OS の一覧はあらかじめ定義されており、Microsoft および PDQ Connect が現在サポートしている OS が含まれます。Windows 7 や Server 2012 など、サポート終了済みの Windows エディションは選択できません。
選択可能な例:
- All servers
- All workstations
- 特定のサーバー/ワークステーションバージョン
- Windows 10(すべてのバージョン)または Windows 11(すべてのバージョン)
Logged-on User
ユーザーが対象マシンに現在ログオンしているかどうかに基づいて、パッケージまたはステップを実行するか制御できます。
この条件は Remote Desktop 接続には適用されません。
ユーザーが RDP でデバイスに接続している場合、この条件では「ユーザーはログオンしていない」として処理されます。
Files & Folders
ファイルの存在をデプロイ条件として使用できます。利用時には以下の点にご注意ください。
ファイル拡張子を必ず指定する必要があります。拡張子を省略した場合、ファイルが存在していても検出されません。
- この条件はファイルのみを対象とします。現在、フォルダーの存在を条件として使用することはできません。
- この条件を使用するために、Files & Folders スキャナーを事前に作成する必要はありません。デプロイ実行時に対象マシン上で直接ファイルを確認します。
- 「Search sub-folders」オプションを有効にすると、指定したパス配下のすべてのサブフォルダーから対象ファイルを検索できます。
Registry
レジストリキーの存在をデプロイ条件として使用できます。
Registry 条件で使用できるのはレジストリキーのみです。レジストリ値や値データには対応していません。
- レジストリキーはレジストリパスの一部として扱われます。一方、レジストリ値は DWORD や String などのオブジェクトを指します。

- 「Search sub-keys」オプションを有効にすると、指定したキー配下の子レジストリキーも検索対象にできます。

Service
指定したサービスの実行状態に基づいて、パッケージまたはステップを実行するか制御できます。
サービスが「実行中」または「停止中」のどちらの場合に実行するかを設定できます。使用可能な演算子は以下のとおりです。
- Contains
- Equals
- Starts With
Service 条件では、サービスの内部サービス名ではなく「表示名」を使用します。表示名は PowerShell の Get-Service コマンドで確認できます。
Process
指定したプロセスの状態に基づいて、パッケージまたはステップを実行するか制御できます。
Service 条件と同様に、使用可能な演算子は以下のとおりです。
- Contains
- Equals
- Starts With
Process 条件では、表示名や説明ではなく「プロセス名」を使用します。プロセス名は PowerShell の Get-Process コマンドで確認できます。
また、この条件ではプロセスが「実行中」か「停止中」かだけでなく、プロセスが「中断状態(Suspended)」または「応答なし(Not Responding)」かどうかも判定できます。
まとめ
実行条件を設定することで、特定の条件を満たした場合のみ処理を実行できるようになり、デプロイワークフローを柔軟に制御できます。
OS バージョン、ログオンユーザー状態、ファイルの存在、レジストリキー、サービス、プロセスなどを条件として利用できるため、複雑なパッケージ構成を作成する必要を減らし、より効率的なデプロイ運用を実現できます。