> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/keeperpam-commands/pam-workflow-commands.md).

# PAM Workflowコマンド

PAMリソース向けのジャストインタイム (JIT) 特権アクセスワークフローを管理します。ワークフローは承認ベースのアクセス制御を適用し、 必要に応じて貸出/返却、MFA認証、時間帯によるアクセス制限を設定できます。

**サブコマンド**

* 構成
  * [作成](#pam-workflow-create)
  * [参照](#pam-workflow-read)
  * [更新](#pam-workflow-update)
  * [削除](#pam-workflow-delete)
  * [承認者の追加](#pam-workflow-add-approver)
  * [承認者の削除](#pam-workflow-remove-approver)
* 承認者による操作
  * [保留中リクエスト一覧](#pam-workflow-pending)
  * [承認](#pam-workflow-approve)
  * [拒否](#pam-workflow-deny)
* リクエスト側の操作
  * [リクエスト](#pam-workflow-request)
  * [開始 (貸出)](#pam-workflow-start)
  * [終了 (返却)](#pam-workflow-end)
* 状態確認
  * [状態](#pam-workflow-state)
  * [自分のアクセス状況](#pam-workflow-my-access)

## PAM Workflow createコマンド <a href="#pam-workflow-create" id="pam-workflow-create"></a>

PAMレコードのワークフロー設定を作成します。承認が必要な場合は、少なくとも1人の承認者を追加する必要があります。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow create`

**別名**: `pam-wf c`

**パラメーター**:

<table data-search="false"><thead><tr><th width="290">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>&#x3C;record></code></td><td>レコードのUIDまたはレコード名/タイトル。必須。</td></tr><tr><td><code>-n, --approvals-needed &#x3C;int></code></td><td>アクセスが許可されるまでに必要な承認数。デフォルト: <code>1</code>。<code>0</code>以上を指定 (<code>0</code>の場合は承認不要)。</td></tr><tr><td><code>--checkout</code></td><td>フラグ。貸出/返却を必須にします (セッションを明示的に貸出し、後で返却する必要があります)。</td></tr><tr><td><code>--start-on-approval</code></td><td>フラグ。ユーザーが貸出を行うタイミングではなく、リクエストが承認されたタイミングでアクセスタイマーを開始します。</td></tr><tr><td><code>--require-reason</code></td><td>フラグ。アクセスをリクエストする際に、リクエスト者へ理由の入力を必須にします。</td></tr><tr><td><code>--require-ticket</code></td><td>フラグ。リクエスト者に外部チケット/参照番号の入力を必須にします。</td></tr><tr><td><code>--require-mfa</code></td><td>フラグ。アクセスが許可される前にMFA認証を必須にします。</td></tr><tr><td><code>-d, --duration &#x3C;string></code></td><td>アクセス期間。例: <code>"2h"</code>、<code>"30m"</code>、<code>"1d"</code>。単位のない数値は分として扱われます。デフォルト: <code>"1d"</code>。</td></tr><tr><td><code>--allowed-days &#x3C;string></code></td><td>アクセスを許可する曜日をコンマ区切りで指定します。例: <code>"mon,tue,wed,thu,fri"</code>。アクセス可能な曜日を制限します。</td></tr><tr><td><code>--time-range &#x3C;string></code></td><td>同日内で許可する時間帯を<code>HH:MM-HH:MM</code>形式で指定します。例: <code>"09:00-17:00"</code>。終了時刻は開始時刻より後である必要があります。</td></tr><tr><td><code>-u, --user &#x3C;email></code></td><td>承認者のメールアドレス。複数の承認者を指定する場合は複数回指定できます。</td></tr><tr><td><code>--approver &#x3C;email></code></td><td>承認者メールアドレス用の<code>--user</code>の別名 (<code>-u</code>/<code>--user</code>と同様に使用可能)。複数回指定できます。</td></tr><tr><td><code>--format &#x3C;table|json></code></td><td>出力形式。デフォルト: <code>table</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-workflow create 0bEtV6M9nah78at9UicRzH2gSS7A --checkout --approvals-needed 1 --approver demo@example.com

Workflow created successfully

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6M9nah78at9UicRzH2gSS7A )
Approvals needed: 1
Check-in/out: Yes
Duration: 1 day
Approvers: demo@example.com
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task CreateWorkflowConfigAsync(IAuthentication auth, WorkflowParameters parameters)
    {
      if (parameters == null)
      {
        throw new ArgumentNullException(nameof(parameters));
      }

      await PostToRouterAsync(auth, CreateWorkflowConfigPath, parameters);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `New-KeeperPamWorkflow`

**別名**: `pam-workflow-new`

**パラメーター**:

<table data-search="false"><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル</td></tr><tr><td><code>-ApprovalsNeeded, -n</code></td><td>必要な承認数。承認者が不要な場合は<code>0</code>を指定します。デフォルトは<code>1</code>です。</td></tr><tr><td><code>-Checkout, -co</code></td><td>シングルユーザーの貸出/返却モードを有効にします。</td></tr><tr><td><code>-StartOnApproval, -sa</code></td><td>リソースが貸出されたタイミングではなく、承認が完了したタイミングでアクセスタイマーを開始します。</td></tr><tr><td><code>-RequireReason, -rr</code></td><td>リクエスト者に理由の入力を必須にします。</td></tr><tr><td><code>-RequireTicket, -rt</code></td><td>リクエスト者にチケット番号の入力を必須にします。</td></tr><tr><td><code>-RequireMfa, -rm</code></td><td>MFA認証を必須にします。</td></tr><tr><td><code>-Duration, -d</code></td><td>アクセス期間。例: <code>30m</code>、<code>2h</code>、<code>1d</code>。デフォルトは<code>1d</code>です。</td></tr><tr><td><code>-AllowedDays</code></td><td>曜日をコンマ区切りで指定: <code>mon,tue,wed,thu,fri,sat,sun</code>。</td></tr><tr><td><code>-TimeRange</code></td><td>同日内の時間帯を<code>HH:MM-HH:MM</code>形式で指定。</td></tr><tr><td><code>-User, -u</code></td><td>承認者として追加するユーザーのメールアドレス。</td></tr><tr><td><code>-Approver</code></td><td>承認者メールアドレス用の互換オプション。繰り返し指定できます。</td></tr><tr><td><code>-Team, -t</code></td><td>承認者として追加するチームのUIDまたは一意のチーム名。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr><tr><td><code>-Help, -h</code></td><td>コマンドのヘルプを表示します。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > New-KeeperPamWorkflow `
    -Record "OZiyGTEO_KrBxG8mvMJNWw" `
    -Approver "approver@mail.com" `
    -ApprovalsNeeded 1 `
    -Checkout `
    -StartOnApproval `
    -RequireReason `
    -RequireTicket `
    -RequireMfa `
    -Duration "1d" `
    -AllowedDays "mon,tue,wed,thu,fri" `
    -TimeRange "09:00-17:00"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow updateコマンド <a href="#pam-workflow-update" id="pam-workflow-update"></a>

指定した項目のみワークフロー設定を更新し、指定しなかった項目は既存の値のまま保持します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow update`

**別名**: `pam-wf u`

**パラメーター**:

<table data-search="false"><thead><tr><th>パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>&#x3C;record></code></td><td>レコードのUIDまたはレコード名/タイトル。必須。対象のワークフローが既に存在している必要があります。</td></tr><tr><td><code>-n, --approvals-needed &#x3C;int></code></td><td>新しい必要承認数。<code>0</code>以上を指定してください。</td></tr><tr><td><code>--checkout &#x3C;true|false></code></td><td>貸出/返却の要否を有効/無効にします。</td></tr><tr><td><code>--start-on-approval &#x3C;true|false></code></td><td>アクセスタイマーを承認時点で開始するか、貸出時点で開始するかを切り替えます。</td></tr><tr><td><code>--require-reason &#x3C;true|false></code></td><td>アクセスリクエスト時の理由入力の要否を切り替えます。</td></tr><tr><td><code>--require-ticket &#x3C;true|false></code></td><td>アクセスリクエスト時のチケット番号入力の要否を切り替えます。</td></tr><tr><td><code>--require-mfa &#x3C;true|false></code></td><td>MFA認証の要否を切り替えます。</td></tr><tr><td><code>-d, --duration &#x3C;string></code></td><td>新しいアクセス期間。例: <code>"2h"</code>、<code>"30m"</code>、<code>"1d"</code>。</td></tr><tr><td><code>--allowed-days &#x3C;string></code></td><td>新しい許可曜日 (コンマ区切り)。</td></tr><tr><td><code>--time-range &#x3C;string></code></td><td>新しい許可時間帯 (<code>HH:MM-HH:MM</code>)。</td></tr><tr><td><code>--format &#x3C;table|json></code></td><td>出力形式。デフォルト: <code>table</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-workflow update 0bEtV6nah65142M9t9UicRzH2gSS7A --checkout --approvals-needed 2                                            

Workflow updated successfully

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6nah65142M9t9UicRzH2gSS7A )
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
public static async Task UpdateWorkflowConfigAsync(IAuthentication auth, WorkflowParameters parameters)
    {
      if (parameters == null)
      {
        throw new ArgumentNullException(nameof(parameters));
      }

      await PostToRouterAsync(auth, UpdateWorkflowConfigPath, parameters);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Update-KeeperPamWorkflow`

**別名**: `pam-workflow-edit`

**パラメーター**:

<table data-search="false"><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル。</td></tr><tr><td><code>-ApprovalsNeeded, -n</code></td><td>必要な承認数。承認者が不要な場合は<code>0</code>を指定します。</td></tr><tr><td><code>-Checkout, -co</code></td><td>貸出/返却モードを有効または無効にします。</td></tr><tr><td><code>-StartOnApproval, -sa</code></td><td>タイマーを承認時点で開始するかどうかを制御します。</td></tr><tr><td><code>-RequireReason, -rr</code></td><td>理由入力の要否を切り替えます。</td></tr><tr><td><code>-RequireTicket, -rt</code></td><td>チケット番号入力の要否を切り替えます。</td></tr><tr><td><code>-RequireMfa, -rm</code></td><td>MFA認証の要否を切り替えます。</td></tr><tr><td><code>-Duration, -d</code></td><td>アクセス期間。例: <code>30m</code>、<code>2h</code>、<code>1d</code>。</td></tr><tr><td><code>-AllowedDays</code></td><td>許可曜日 (コンマ区切り)。</td></tr><tr><td><code>-TimeRange</code></td><td>同日内の時間帯 (<code>HH:MM-HH:MM</code>形式)。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Update-KeeperPamWorkflow `
    -Record "OZiyGTrf_KrBxG8mvMJNWw" `
    -ApprovalsNeeded 2 `
    -Checkout $true `
    -StartOnApproval $true `
    -RequireReason $true `
    -RequireTicket $true `
    -RequireMfa $true `
    -Duration "2h"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow readコマンド <a href="#pam-workflow-read" id="pam-workflow-read"></a>

PAMリソースレコードのワークフロー設定を参照します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow read`

**別名:** `pam-wf r`

**パラメーター**:

| パラメーター                   | 説明                        |
| ------------------------ | ------------------------- |
| `<record>`               | レコードのUIDまたはレコード名/タイトル。必須。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。      |

**例**:

{% code expandable="true" %}

```
My Vault> pam-workflow read 0bEtV6M9t9nahyt6a7wUicRzH2gSS7A--format json
{
 "record_uid": "0bEtV6M9t9nahyt6a7wUicRzH2gSS7A",
 "record_name": "Dotnet-Gateway-14thJuly - VNC Machine",
 "parameters": {
   "approvals_needed": 2,
   "checkout_needed": true,
   "start_access_on_approval": false,
   "require_reason": false,
   "require_ticket": false,
   "require_mfa": false,
   "access_duration": "1 day",
   "allowed_times": null
  },
 "approvers": [
   {
    "escalation": false,
    "type": "user",
    "email": "demo@example.com"
   }
  ]
}
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task<WorkflowConfig> ReadWorkflowConfigAsync(
      IAuthentication auth,
      string recordUid,
      string recordName = null)
    {
      var refMsg = CreateRecordRef(recordUid, recordName);
      var config = await auth.ExecuteRouter<WorkflowConfig>(ReadWorkflowConfigPath, refMsg);

      if (config == null
          || (config.Parameters == null && config.Approvers.Count == 0 && config.CreatedOn == 0))
      {
        return null;
      }

      return config;
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Get-KeeperPamWorkflow`

**別名**: `pam-workflow-read`

**パラメーター**:

<table><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Get-KeeperPamWorkflow `
    -Record "OZirfTEO_KrBxG8mvMJNWw"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow deleteコマンド <a href="#pam-workflow-delete" id="pam-workflow-delete"></a>

PAMリソースレコードからワークフロー設定を削除します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow delete`

**別名:** `pam-wf d`

**パラメーター**:

| パラメーター                   | 説明                        |
| ------------------------ | ------------------------- |
| `<record>`               | レコードのUIDまたはレコード名/タイトル。必須。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。      |

**例:**

{% code expandable="true" %}

```cs
My Vault> pam-wf d 0bEtV6M9nahu78791t9UicRzH2gSS7A

Workflow deleted successfully

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6M9nahu78791t9UicRzH2gSS7A)

```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task DeleteWorkflowConfigAsync(
      IAuthentication auth,
      string recordUid,
      string recordName = null)
    {
      var refMsg = CreateRecordRef(recordUid, recordName);
      await PostToRouterAsync(auth, DeleteWorkflowConfigPath, refMsg);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Remove-KeeperPamWorkflow`

**別名**: `pam-workflow-delete`

**パラメーター**:

<table><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr><tr><td><code>-Confirm</code></td><td>対話式の確認プロンプトを表示せずに削除を確定します。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Remove-KeeperPamWorkflow `
    -Record "OZfgGTEO_KrBxG8mvMJNWw" `
    -Confirm:$false
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow add-approverコマンド <a href="#pam-workflow-add-approver" id="pam-workflow-add-approver"></a>

ユーザーまたはチームをワークフローの承認者として追加します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow add-approver`

**別名:** `pam-wf aa`

**パラメーター**:

<table data-search="false"><thead><tr><th>パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>&#x3C;record></code></td><td>レコードのUIDまたはレコード名/タイトル。必須。</td></tr><tr><td><code>-u, --user &#x3C;email></code></td><td>承認者として追加するユーザーのメールアドレス。繰り返し指定可能。</td></tr><tr><td><code>--approver &#x3C;email></code></td><td><code>--user</code>の別名。繰り返し指定可能。</td></tr><tr><td><code>-t, --team &#x3C;name|uid></code></td><td>承認者として追加するチーム名またはチームUID。繰り返し指定可能。</td></tr><tr><td><code>-e, --escalation</code></td><td>フラグ。追加する承認者をエスカレーション承認者として設定します (主承認フローがエスカレーションされた場合のみ呼び出されます)。</td></tr><tr><td><code>--escalation-after &#x3C;string></code></td><td>この承認者へのエスカレーションが発生するまでの時間。例: <code>"30m"</code>、<code>"1h"</code>。<strong>要</strong> <code>--escalation</code>。</td></tr><tr><td><code>--format &#x3C;table|json></code></td><td>出力形式。デフォルト: <code>table</code>。</td></tr></tbody></table>

*(`--user`*`/`\_`--approver` \_または`_`--team\`*のいずれかが必須です。)*

**例:**

{% code expandable="true" %}

```csharp
My Vault> pam-wf aa 0bEtV6M9tanhqy679UicRzH2gSS7A --approver demo@example.com                                           

Approvers added successfully

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6M9tanhqy679UicRzH2gSS7A )
Added 1 approver(s)c#
```

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task AddWorkflowApproversAsync(
      IAuthentication auth,
      string recordUid,
      string recordName,
      IEnumerable<string> users = null,
      IEnumerable<string> teamUids = null,
      bool isEscalation = false,
      long escalationAfterMs = 0)
    {
      var config = BuildApproverConfig(recordUid, recordName, users, teamUids, isEscalation, escalationAfterMs);
      if (config.Approvers.Count == 0)
      {
        return;
      }

      await PostToRouterAsync(auth, AddWorkflowApproversPath, config);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Add-KeeperPamWorkflowApprover`

**別名**: `pam-workflow-add-approver`

**パラメーター**:

<table data-search="false"><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル。</td></tr><tr><td><code>-User, -u</code></td><td>承認者として追加するユーザーのメールアドレス。繰り返し指定可能。</td></tr><tr><td><code>-Approver</code></td><td>承認者メールアドレス用の互換オプション。</td></tr><tr><td><code>-Team, -t</code></td><td>チームUIDまたは一意のチーム名。繰り返し指定可能。</td></tr><tr><td><code>-Escalation, -e</code></td><td>指定した承認者をエスカレーション承認者として設定します。</td></tr><tr><td><code>-EscalationAfter</code></td><td>エスカレーションまでの遅延時間。例: <code>30m</code>、<code>2h</code>、<code>1d</code>。<code>-Escalation</code>の指定が必要です。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Add-KeeperPamWorkflowApprover `
    -Record "OZiyGTEO_KffgG8mvMJNWw" `
    -User "approver@mail.com" `
    -Team "TestTeam"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow remove-approverコマンド <a href="#pam-workflow-remove-approver" id="pam-workflow-remove-approver"></a>

ワークフローの承認者リストからユーザーまたはチームを削除します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow remove-approver`

**別名:** `pam-wf ra`

**パラメーター**:

| パラメーター                   | 説明                               |
| ------------------------ | -------------------------------- |
| `<record>`               | レコードのUIDまたはレコード名/タイトル。必須。        |
| `-u, --user <email>`     | 承認者から削除するユーザーのメールアドレス。繰り返し指定可能。  |
| `--approver <email>`     | `--user` の別名。繰り返し指定可能。           |
| `-t, --team <name\|uid>` | 承認者から削除するチーム名またはチームUID。繰り返し指定可能。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。             |

*(`--user`*`/`\_`--approver` \_または`_`--team\`*のいずれかが必須です。)*

**例***:*

{% code expandable="true" %}

```csharp
My Vault> pam-wf ra 0bEtV6M9t9Unah87icRzH2gSS7A --approver demo@example.com

Approvers removed successfully

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6M9t9Unah87icRzH2gSS7A )
Removed 1 approver(s)
```

</details>

<details>

<summary>DotNet SDK</summary>

**関数:**

{% code expandable="true" %}

```csharp
public static async Task DeleteWorkflowApproversAsync(
      IAuthentication auth,
      string recordUid,
      string recordName,
      IEnumerable<string> users = null,
      IEnumerable<string> teamUids = null)
    {
      var config = BuildApproverConfig(recordUid, recordName, users, teamUids);
      if (config.Approvers.Count == 0)
      {
        return; 
      }

      await PostToRouterAsync(auth, DeleteWorkflowApproversPath, config);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Remove-KeeperPamWorkflowApprover`

**別名**: `pam-workflow-remove-approver`

**パラメーター**:

<table><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル。</td></tr><tr><td><code>-User, -u</code></td><td>削除するユーザーのメールアドレス。繰り返し指定可能。</td></tr><tr><td><code>-Approver</code></td><td>承認者メールアドレス用の互換オプション。</td></tr><tr><td><code>-Team, -t</code></td><td>削除するチームUIDまたは一意のチーム名。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Remove-KeeperPamWorkflowApprover `
    -Record "OZiyGrfO_KrBxG8mvMJNWw" `
    -User "approver@mail.com"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow pendingコマンド <a href="#pam-workflow-pending" id="pam-workflow-pending"></a>

現在のユーザーに割り当てられている、承認待ちのワークフローリクエストを一覧表示します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow pending`

**別名:** `pam-wf p`

**パラメーター**:

| パラメーター                   | 説明                   |
| ------------------------ | -------------------- |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。 |

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-wf p  0bEtV6M9tnajaut9UicRzH2gSS7A                                            

Record Name                            Record UID              Flow UID                Requested By                            Reason  Ticket  Started  Expires  Duration
-------------------------------------  ----------------------  ----------------------  --------------------------------------  ------  ------  -------  -------  --------
Dotnet-Gateway-14thJuly - RDP Machine  0nahay67wd7s9NnujjRMyGA  v2UD_gpdAW_HJvEN57SH2g  demo1@example.com                                            

```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task<ApprovalRequests> GetApprovalRequestsAsync(IAuthentication auth)
    {
      return await auth.ExecuteRouter<ApprovalRequests>(GetApprovalRequestsPath);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Get-KeeperPamWorkflowPending`

**別名:** `pam-workflow-pending`

**例:**

{% code expandable="true" %}

```powershell
PS > Get-KeeperPamWorkflowPending
PS > pam-workflow-pending
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow approveコマンド <a href="#pam-workflow-approve" id="pam-workflow-approve"></a>

`pending` コマンドで取得したフローUIDを使用して、保留中のワークフローアクセスリクエストを承認します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow approve`

**別名:** `pam-wf a`

**パラメーター**:

| パラメーター                   | 説明                                      |
| ------------------------ | --------------------------------------- |
| `<flow_uid>`             | 保留中リクエストのフローUID (`pending` コマンドで取得)。必須。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。                    |

**例**:

{% code expandable="true" %}

```c#
My Vault> pam-wf a v2UD_gpdAW_HJvEN5nahudyr7SH2g

Access request approved

Flow UID: v2UD_gpdAW_HJvEN5nahudyr7SH2g

```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
   public static async Task ApproveWorkflowAccessAsync(IAuthentication auth, byte[] flowUidBytes)
    {
      await ApproveOrDenyWorkflowAccessAsync(auth, flowUidBytes, deny: false, denialReasonEncrypted: null);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Approve-KeeperPamWorkflowAccess`

**別名:** `pam-workflow-approve`

**パラメーター:**

| パラメーター              | 説明                                                                |
| ------------------- | ----------------------------------------------------------------- |
| `-FlowUid <string>` | 保留中リクエストのフローUID (`Get-KeeperPamWorkflowPending` で取得)。必須、位置引数 (0)。 |

**例:**

{% code expandable="true" %}

```ps
PS > Approve-KeeperPamWorkflowAccess -FlowUid "<flow-uid>"
PS > pam-workflow-approve "<flow-uid>"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow denyコマンド <a href="#pam-workflow-deny" id="pam-workflow-deny"></a>

保留中のワークフローアクセスリクエストを拒否します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow deny`

**別名:** `pam-wf dn`

**パラメーター**:

| パラメーター                   | 説明                                                                |
| ------------------------ | ----------------------------------------------------------------- |
| `<flow_uid>`             | 保留中リクエストのフローUID。必須。                                               |
| `-r, --reason <string>`  | 拒否理由 (任意)。暗号化に成功した場合はリクエスト者に表示されます。暗号化に失敗した場合は、理由を表示せずに拒否が実行されます。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。                                              |

**例**:

{% code expandable="true" %}

```
My Vault> pam-wf dn <flow_UID>
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task DenyWorkflowAccessAsync(
      IAuthentication auth,
      byte[] flowUidBytes,
      ByteString denialReasonEncrypted = null)
    {
      await ApproveOrDenyWorkflowAccessAsync(auth, flowUidBytes, deny: true, denialReasonEncrypted);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Deny-KeeperPamWorkflowAccess`

**別名:** `pam-workflow-deny`

**パラメーター:**

| パラメーター              | 説明                                                                        |
| ------------------- | ------------------------------------------------------------------------- |
| `-FlowUid <string>` | 保留中リクエストのフローUID。必須、位置引数 (0)。                                              |
| `-Reason <string>`  | リクエスト者に表示する理由 (任意)。リクエスト者向けに暗号化されます。暗号化に失敗した場合は警告が表示され、理由を表示せずに拒否が実行されます。 |

**例:**

{% code expandable="true" %}

```powershell
PS > Deny-KeeperPamWorkflowAccess -FlowUid "<flow-uid>" -Reason "Not authorized"
PS > pam-workflow-deny "<flow-uid>" -r "Not authorized"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow requestコマンド <a href="#pam-workflow-request" id="pam-workflow-request"></a>

ワークフローで保護されたPAMリソースへのアクセスをリクエストします。保留中リクエストのエスカレーションや、実行中リクエストの取り消しにも対応しています。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow request`

**別名:** `pam-wf rq`

**パラメーター**:

| パラメーター                   | 説明                                                                                                       |
| ------------------------ | -------------------------------------------------------------------------------------------------------- |
| `<record>`               | レコードのUIDまたはレコード名/タイトル。必須。                                                                                |
| `-r, --reason <string>`  | アクセスリクエストの理由。`--cancel` とは併用できません。                                                                       |
| `--ticket <string>`      | リクエストに関連付ける外部チケット/参照番号。`--cancel` とは併用できません。                                                             |
| `--escalate`             | フラグ。新しいリクエストを送信する代わりに、既存の保留中リクエストをエスカレーション承認者にエスカレーションします。`--cancel` とは同時に指定できません。                       |
| `-c, --cancel`           | フラグ。リクエストを送信する代わりに、そのレコードに対する実行中/保留中のワークフローリクエストを取り消します。`--escalate`、`--reason`、`--ticket` とは同時に指定できません。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。                                                                                     |

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-workflow request 0bEtV6M9t9UnahticRzH2gSS7A

Access request sent

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6M9najaytt9UicRzH2gSS7A)

Approvers have been notified.
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task RequestWorkflowAccessAsync(
      IAuthentication auth,
      string recordUid,
      string recordName,
      byte[] recordKey,
      string reason = null,
      string ticket = null)
    {
      var needsEncrypted = !string.IsNullOrEmpty(reason) || !string.IsNullOrEmpty(ticket);
      if (needsEncrypted && (recordKey == null || recordKey.Length == 0))
      {
        throw new InvalidOperationException(
          "Record key not available — cannot encrypt reason/ticket. " +
          "You do not have sufficient access to this record to send encrypted parameters.");
      }

      var accessRequest = new WorkflowAccessRequest
      {
        Resource = CreateRecordRef(recordUid, recordName),
      };
      if (!string.IsNullOrEmpty(reason))
      {
        accessRequest.Reason = ByteString.CopyFrom(
          CryptoUtils.EncryptAesV2(System.Text.Encoding.UTF8.GetBytes(reason), recordKey));
      }

      if (!string.IsNullOrEmpty(ticket))
      {
        accessRequest.Ticket = ByteString.CopyFrom(
          CryptoUtils.EncryptAesV2(System.Text.Encoding.UTF8.GetBytes(ticket), recordKey));
      }

      await PostToRouterAsync(auth, RequestWorkflowAccessPath, accessRequest);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Request-KeeperPamWorkflowAccess`

**別名:** `pam-workflow-request`

**パラメーター:**

| パラメーター             | 説明                                                                                        |
| ------------------ | ----------------------------------------------------------------------------------------- |
| `-Record <string>` | PAMリソースレコードのUIDまたはタイトル。必須、位置引数 (0)。                                                       |
| `-Reason <string>` | アクセスリクエストの理由。`-Cancel` とは併用できません。                                                         |
| `-Ticket <string>` | 外部チケット/参照番号。`-Cancel` とは併用できません。                                                          |
| `-Escalate`        | スイッチ。新しいリクエストを送信する代わりに、既存の保留中リクエストをエスカレーション承認者にエスカレーションします。`-Cancel` とは併用できません。           |
| `-Cancel`          | スイッチ。そのレコードに対する自分自身の保留中/実行中のワークフローリクエストを取り消します。`-Escalate`、`-Reason`、`-Ticket` とは併用できません。 |

**注:** レコードの所有者および承認者はワークフローの制限が適用されないため、リクエストを送信する代わりに「対象外」というメッセージが表示されます。

**例:**

{% code expandable="true" %}

```ps
PS > Request-KeeperPamWorkflowAccess -Record "<uid>" -Reason "Need access to investigate an incident"
PS > Request-KeeperPamWorkflowAccess -Record "<uid>" -Escalate
PS > Request-KeeperPamWorkflowAccess -Record "<uid>" -Cancel
PS > pam-workflow-request "<uid>" -re "reason text"

```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow startコマンド <a href="#pam-workflow-start" id="pam-workflow-start"></a>

ワークフローセッションを開始します (貸出)。貸出/返却が有効な場合、リソースに接続する前にこの操作が必要です。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow start`

**別名:** `pam-wf s`

**パラメーター**:

| パラメーター                   | 説明                                        |
| ------------------------ | ----------------------------------------- |
| `<record_or_flow_uid>`   | レコードのUID/名前。ローカルでレコードを解決できない場合はフローUID。必須。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。                      |

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-wf start 0bEtV6M9t9UicRzH2gSS7A

Workflow started (checked out)

Record: Dotnet-Gateway-14thJuly - VNC Machine (0bEtV6M9t9UicRzH2gSS7A)
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
   public static async Task StartWorkflowAsync(IAuthentication auth, WorkflowState state)
    {
      if (state == null)
      {
        throw new ArgumentNullException(nameof(state));
      }

      await PostToRouterAsync(auth, StartWorkflowPath, state);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Start-KeeperPamWorkflow`

**別名:** `pam-workflow-start`

**パラメーター:**

| パラメーター          | 説明                                                                      |
| --------------- | ----------------------------------------------------------------------- |
| `-Uid <string>` | レコードのUID、レコードタイトル、またはフローUID。必須、位置引数 (0)。レコードとして解決できない場合はフローUIDとして扱われます。 |

**例**:

{% code expandable="true" %}

```ps
PS > Start-KeeperPamWorkflow -Uid "<record-or-flow-uid>"
PS > pam-workflow-start "<uid>"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow endコマンド <a href="#pam-workflow-end" id="pam-workflow-end"></a>

ワークフローセッションを終了します (返却)。返却後に認証情報がローテーションされる場合があります。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow end`

**別名:** `pam-wf e`

**パラメーター**:

| パラメーター                   | 説明                                                      |
| ------------------------ | ------------------------------------------------------- |
| `<record_or_flow_uid>`   | レコードのUID/名前、またはフローUID。必須。                               |
| `-f, --force`            | フラグ。このレコード/フローで他のユーザーが使用中のセッションを強制的に返却します (管理者による強制操作)。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。                                    |

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-wf end 0bEtV6M9t9UicRzH2gSS7A  
```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
   public static async Task EndWorkflowAsync(IAuthentication auth, GraphSyncRef flowOrResourceRef)
    {
      if (flowOrResourceRef == null)
      {
        throw new ArgumentNullException(nameof(flowOrResourceRef));
      }

      await PostToRouterAsync(auth, EndWorkflowPath, flowOrResourceRef);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Stop-KeeperPamWorkflow`

**別名:** `pam-workflow-end`

**パラメーター:**

| パラメーター          | 説明                                                                     |
| --------------- | ---------------------------------------------------------------------- |
| `-Uid <string>` | レコードのUID、レコードタイトル、またはフローUID。必須、位置引数 (0)。                               |
| `-Force`        | スイッチ。シングルユーザーの貸出が有効な場合に、他のユーザーが使用中のセッションを代わりに強制返却します (承認者または管理者権限が必要)。 |

**例**:

{% code expandable="true" %}

```ps
PS > Stop-KeeperPamWorkflow -Uid "<record-or-flow-uid>"
PS > Stop-KeeperPamWorkflow -Uid "<uid>" -Force
PS > pam-workflow-end "<uid>"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow stateコマンド <a href="#pam-workflow-state" id="pam-workflow-state"></a>

PAMリソースレコードの現在のワークフロー状態を取得します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow state`

**別名:** `pam-wf st`

**パラメーター**:

| パラメーター                   | 説明                        |
| ------------------------ | ------------------------- |
| `<record>`               | レコードのUIDまたはレコード名/タイトル。必須。 |
| `--format <table\|json>` | 出力形式。デフォルト: `table`。      |

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-wf state 0bEtV6M9t9UicRzH2gSS7A 

You are exempt from workflow restrictions on this record.
As a record owner or approver, you can access this resource directly.

```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数**:

{% code expandable="true" %}

```csharp
    public static async Task<WorkflowState> GetWorkflowStateByRecordAsync(
      IAuthentication auth,
      string recordUid,
      string recordName = null)
    {
      var request = new WorkflowState
      {
        Resource = CreateRecordRef(recordUid, recordName),
      };
      return await auth.ExecuteRouter<WorkflowState>(GetWorkflowStatePath, request);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Get-KeeperPamWorkflowState`

**別名**: `pam-workflow-state`

**パラメーター**:

<table><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Record, -r</code></td><td>PAMリソースレコードのUIDまたはタイトル。</td></tr><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Get-KeeperPamWorkflowState `
    -Record "OZiyGTrf_KrBxG8mvMJNWw"
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>

## PAM Workflow my-accessコマンド <a href="#pam-workflow-my-access" id="pam-workflow-my-access"></a>

現在のユーザーが持つ、有効なワークフローアクセス状態を一覧表示します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `pam-workflow my-access`

**別名:** `pam-wf ma`

**パラメーター**:

| パラメーター                   | 説明                  |
| ------------------------ | ------------------- |
| `--format <table\|json>` | 出力形式。デフォルト: `table` |

**例**:

{% code expandable="true" %}

```csharp
My Vault> pam-wf my-access                   

No active workflows

```

{% endcode %}

</details>

<details>

<summary>DotNet SDK</summary>

**関数:**

{% code expandable="true" %}

```csharp
    public static async Task<UserAccessState> GetUserAccessStateAsync(IAuthentication auth)
    {
      return await auth.ExecuteRouter<UserAccessState>(GetUserAccessStatePath);
    }
```

{% endcode %}

</details>

<details>

<summary>Power Commander</summary>

**コマンド**: `Get-KeeperPamWorkflowMyAccess`

**別名**: `pam-workflow-my-access`

**パラメーター**:

<table><thead><tr><th width="287">パラメーター</th><th>説明</th></tr></thead><tbody><tr><td><code>-Format</code></td><td>出力形式: <code>table</code>または<code>json</code>。</td></tr></tbody></table>

**例**:

{% code expandable="true" %}

```powershell
PS > Get-KeeperPamWorkflowMyAccess
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド: 近日公開**

</details>

<details>

<summary>Python SDK</summary>

**コマンド: 近日公開**

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.keeper.io/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/keeperpam-commands/pam-workflow-commands.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
