# レコードコマンド

### 概要

本セクションでは、Keeperコマンダー (CLI) でボルト内の**レコード**を操作するコマンドを列挙します。この文脈での「レコードコマンド」は、レコードの追加・編集・取得などを指します。レコードや関連する添付ファイルの作成・参照・編集・整理・管理を扱います。

現在、次のコマンドをSDKで利用できます。

* [レコード追加コマンド](#record-add-command)
* [レコード更新コマンド](#record-update-command)
* [レコード削除コマンド](#record-delete-command)
* [レコード検索・一覧コマンド](#list-command)
* [レコード取得コマンド](#get-record-command)
* [レコード履歴コマンド](#record-history-command-pending)
* [クリップボード出力コマンド](#clipboard-copy-command)
* [重複レコード検出コマンド](#find-duplicates-command)

レコード専用コマンドに加え、SDKではレコード添付の機能も利用できます。詳細は[こちら](/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/record-commands/attachment-commands.md)をご参照ください。次を含みます。

* [添付ファイルのアップロードコマンド](/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/record-commands/attachment-commands.md#upload-attachments-command)
* [添付ファイルの削除コマンド](/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/record-commands/attachment-commands.md#remove-attachment-command)
* [添付ファイルのダウンロードコマンド](/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/record-commands/attachment-commands.md#download-attachment-command)

### レコード追加コマンド <a href="#record-add-command" id="record-add-command"></a>

このコマンドはKeeperボルトにレコードを追加するために使います。すべてのレコードタイプ、カスタムタイプ、標準フィールド、カスタムフィールドを指定できます。

<details>

<summary>DotNet CLI</summary>

**コマンド :** `add-record`

**パラメータ:**

| パラメータ        | 説明                                     |
| ------------ | -------------------------------------- |
| `-t, --type` | レコードタイプ (login、bankAccount、address など) |
| `--title`    | レコードのタイトル                              |

**オプション:**

| オプション             | 説明                       |
| ----------------- | ------------------------ |
| `--folder`        | レコードを作成するフォルダー名またはUID    |
| `-g, --generate`  | ランダムパスワードを生成する           |
| `--self-destruct` | 一定時間後に自動削除 (5m、2h、1d など) |

**レコードフィールド:**

`fieldname=value` 形式でフィールドを追加する。

```bash
login=username              # Username/login field
password=secret123          # Password field  
url=https://example.com     # URL field
notes="Additional info"     # Notes field
```

**例**:

```bash
My Vault> add-record --folder="Example Folder"  --type=login --title="Login Credentials" --generate login=test_user
Record created: record_uid
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:**

```csharp
Task<KeeperRecord> CreateRecord(KeeperRecord record, string folderUid = null);
```

**引数:**

| 引数          | 型            | 必須  | 説明                                       |
| ----------- | ------------ | --- | ---------------------------------------- |
| `record`    | KeeperRecord | はい  | レコード情報を含むKeeperRecord型のデータ               |
| `folderUid` | string       | いいえ | レコードを作成するフォルダーのUID (既定: null = ルートフォルダー) |

**戻り値:**

`Task<KeeperRecord>` — 付与されたUIDを持つ作成済みKeeperRecordを返すタスク

**使用例**: [こちら](https://github.com/Keeper-Security/keeper-sdk-dotnet/blob/d207b52b758c6e282653d63e71fbae0ebe931750/Sample/Program.cs#L88)をご参照ください

</details>

<details>

<summary>PowerCommander</summary>

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

**別名:** `kadd`

**パラメータ**:

| オプション         | 説明                       |
| ------------- | ------------------------ |
| `-RecordType` | レコードタイプを指定する (既定: login) |
| `-Title`      | レコードのタイトル                |

**フラグ:**

| オプション                                                                                                 | 説明                                                                              |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `-Folder`                                                                                             | レコードを作成するフォルダーのUID                                                              |
| `-GeneratePassword`                                                                                   | ランダムパスワードを生成する。単独指定時は既定ルール (Length=20、Upper=4、Lower=4、Digit=2、Special=2) を使用する。 |
| `-PasswordRules`                                                                                      | カスタム生成ルール: Length、Upper、Lower、Digit、Special。                                    |
| <p><br>例: <code>-PasswordRules 20,5,5,5,5</code></p><p>値は5つ必須: Length、Upper、Lower、Digit、Special。</p>  |                                                                                 |
| `-SpecialChars`                                                                                       | 生成パスワードに記号を含める。                                                                 |
| <p><br>形式: Charset (charsetは任意)</p>                                                                   |                                                                                 |
| <p><br>例: <code>-SpecialChars "!@#$"</code>。</p><p>既定のcharsetは <code>!@#$%()+;<>=?\[]{}^.,</code></p> |                                                                                 |
| `-Notes`                                                                                              | レコードにメモを追加する                                                                    |
| `-SelfDestruct`                                                                                       | 共有レコードURLの有効期限 (形式: m、h、d。最大: 180日/6ヶ月)。閲覧から5分後にレコードが消える                        |

**例:**

```powershell
PS > Add-KeeperRecord -RecordType login -Folder folder_uid -Title "Login Crendentials PowerShell" -GeneratePassword login=<username>
Record created: record_uid

PS > kadd -RecordType login -Folder folder_uid -Title "Login Crendentials PowerShell" -GeneratePassword login=<username>
Record created: record_uid
```

使用例のサンプルは[こちら](https://github.com/Keeper-Security/keeper-sdk-dotnet/blob/d207b52b758c6e282653d63e71fbae0ebe931750/PowerCommander/RecordCommands.ps1#L526)をご参照ください

</details>

<details>

<summary>Python CLI</summary>

**コマンド**: `record-add`

**パラメータ**:

`-t` `--title` レコードのタイトル (必須)

`-n` `--notes` レコードのメモ

`-rt` `--record-type` レコードタイプ (必須)

`--folder` レコードを追加するフォルダー

`--self-destruct` 共有レコードURLの有効期限。m、h、dで指定。最大180日 (6ヶ月)。閲覧から5分後にレコードが消える

`-f` `--force` 警告を無視しプロンプトをスキップする

`fields` \<field\_type>=\<value> フィールドと値の一覧

**例:**

```sh
My vault> record-add --title='New Record' --notes='Create self destructing record' --record-type='Login' --folder='Record folder UID' --self-destruct=180d login=<username> password=<password> url=https://keepersecurity.com/vault/login

Record self-destructs on 01/07/2025 00:00:00 or after being viewed once. Once the link is opened the recipient will have 5 minutes to view the record.
https://keepersecurity.com/vault/share#XX1X1XXXX_00_00x00X0xxx00Xx_X0xXXX-x0X0X0xx
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `add_record_to_folder`

```python
vault = keepersdk.vault.vault_online.VaultOnline #initialize upon login

#Create record object based on record type
if record_type in ('legacy', 'general'):
    record = vault_record.PasswordRecord
else:
    record = vault_record.TypedRecord

#Assign field values based on fields and record type
set_fields(record, fields)

record.title = title
record.notes = notes

if attachments:
    keepersdk.vault.attachment.upload_attachments(vault, record, attachments)

record_uid = keepersdk.vault.record_management.add_record_to_folder(vault, record, folder_uid)
```

</details>

### レコード更新コマンド <a href="#record-update-command" id="record-update-command"></a>

このコマンドはKeeperボルトの既存レコードを更新するために使います。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `update-record`

**パラメータ:**

| パラメータ    | 説明                |
| -------- | ----------------- |
| `record` | 更新するレコードのパスまたはUID |

**オプション:**

| オプション            | 説明                                           |
| ---------------- | -------------------------------------------- |
| `--title`        | レコードのタイトルを更新する                               |
| `-t, --type`     | レコードタイプ (型付きレコードのみ)                          |
| `-g, --generate` | ランダムパスワードを生成し、既存のパスワードフィールドを更新する (既定: false) |
| `--help`         | ヘルプ画面を表示する                                   |
| `--version`      | バージョン情報を表示する                                 |
| `fields`         | `fieldname=value` 形式で追加/更新するレコードフィールド        |

**例:**

```sh
My Vault> update-record record_uid --type=login --title="Login Credentials" --generate login
=test_users
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:**

```csharp
Task<KeeperRecord> UpdateRecord(KeeperRecord record, bool skipExtra = true);
```

**引数:**

| 引数          | 型            | 必須  | 説明                             |
| ----------- | ------------ | --- | ------------------------------ |
| `record`    | KeeperRecord | はい  | 更新データを含むレコードオブジェクト (有効なUIDが必要) |
| `skipExtra` | bool         | いいえ | ファイル添付情報の更新をスキップする (既定: true)  |

**戻り値:**

`Task<KeeperRecord>` — 更新後のKeeperRecordを返すタスク

**例:**

```csharp
// Load existing record
var record = await vault.LoadRecord("ABC123XYZ456");

// Update as PasswordRecord
if (record is PasswordRecord passwordRecord)
{
    passwordRecord.Password = "NewSecurePassword123!";
    passwordRecord.Notes = "Password updated on " + DateTime.Now.ToString();
    
    // Update the record
    var updatedRecord = await vault.UpdateRecord(passwordRecord);
    Console.WriteLine($"Record updated: {updatedRecord.Title}");
}
```

**アプローチ2:**

複数レコードを一度に更新する場合、まとめて更新できる。

**関数:**

```csharp
Task<IList<RecordUpdateStatus>> UpdateRecords(IEnumerable<KeeperRecord> records);
```

**戻り値:**

`Task<IList<RecordUpdateStatus>>` — 各レコードの更新ステータス一覧を返すタスク

**RecordUpdateStatus のプロパティ:**

| プロパティ       | 型      | 説明                             |
| ----------- | ------ | ------------------------------ |
| `RecordUid` | string | レコードのUID                       |
| `Status`    | string | 更新ステータス: "success" またはエラーメッセージ |
| `Message`   | string | 追加のステータスメッセージまたはエラー詳細          |

**例:**

```csharp
// Update multiple records at once
var recordsToUpdate = new List<KeeperRecord>();

var record1 = await vault.LoadRecord("ABC123") as PasswordRecord;
record1.Password = "NewPassword1!";
recordsToUpdate.Add(record1);

var record2 = await vault.LoadRecord("DEF456") as PasswordRecord;
record2.Password = "NewPassword2!";
recordsToUpdate.Add(record2);

var record3 = await vault.LoadRecord("GHI789") as PasswordRecord;
record3.Password = "NewPassword3!";
recordsToUpdate.Add(record3);

var statuses = await vault.UpdateRecords(recordsToUpdate);

foreach (var status in statuses)
{
    if (status.Status == "success")
    {
        Console.WriteLine($"✓ Record {status.RecordUid} updated successfully");
    }
    else
    {
        Console.WriteLine($"✗ Record {status.RecordUid} failed: {status.Message}");
    }
}
```

</details>

<details>

<summary>PowerCommander</summary>

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

**別名:** `kadd`

**パラメータ:**

* `-Uid` : 更新対象レコードのレコードUid

**フラグ**:

| オプション               | 説明                                                |
| ------------------- | ------------------------------------------------- |
| `-GeneratePassword` | レコード用の新しいパスワードを生成して更新する                           |
| `-Title`            | 更新後のタイトル                                          |
| `-Notes`            | レコードのメモを更新する                                      |
| `-Verbose`          | 詳細な操作情報を表示する                                      |
| `-Debug`            | 実行中のデバッグ情報を表示する                                   |
| `-ErrorAction`      | エラーへの応答方法 (Continue、Stop、SilentlyContinue、Ignore) |
| `-WhatIf`           | コマンドレットを実際には実行せず、実行時の動作を表示する                      |
| `-Confirm`          | 実行前に確認プロンプトを表示する                                  |

**要件**:

このコマンドは現在のフォルダー内のレコードを更新します。先に、対象フォルダーへカレントを移してください。`Set-KeeperFolder` コマンドで行えます ([参考](https://github.com/Keeper-Security/keeper-sdk-dotnet/blob/d207b52b758c6e282653d63e71fbae0ebe931750/PowerCommander/VaultCommands.ps1#L34))。

**例:**

<pre class="language-powershell"><code class="lang-powershell"><strong>PS > Add-KeeperRecord -Uid "record_uid" -Title "Updated Title" login=newuser@example.com
</strong><strong>Record updated: record_uid
</strong>UID                    Type    Title           Info
---                    ----    -----           ----
record_uid             login   Updated Title   newuser@example.com

PS > kadd -Uid "record_uid" -Title "Updated Title" login=newuser@example.com
Record updated: record_uid
UID                    Type    Title           Info
---                    ----    -----           ----
record_uid             login   Updated Title   newuser@example.com
</code></pre>

</details>

<details>

<summary>Python CLI</summary>

**コマンド**: `record-update`

**パラメータ**:

`-t` `--title` レコードタイトルを変更する (必須)

`-rt` `--record-type` レコードタイプを変更する (必須)

`-n` `--notes` メモを追記/変更する

`-r` `--record` 変更対象のUIDまたはパス (必須)

`fields` \<field type>=\<value> フィールドと値の一覧

**オプション:**

`-f` `--force` 警告を無視する

**例:**

```sh
My Vault> record-update --record='record_uid' --title='New Record2' -f -rt='general' -n='Updated record through CLI' login='user123' passwords='new_password' url=https://keepersecurity.com
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `update_record`

**例:**

```python
from keepersdk.vault import record_management, vault_record

vault = keepersdk.vault.vault_online.VaultOnline #initialize upon login

record = vault.vault_data.load_record(record_uid=uid)

if not isinstance(record, vault_record.PasswordRecord | vault_record.TypedRecord):
    raise ValueError('Record cannot be updated')
    
#Assign field values based on fields and record type
set_fields(record, fields)

if title:
    record.title = title
if notes:
    record.notes = notes

if attachments:
    keepersdk.vault.attachment.upload_attachments(vault, record, attachments)

record_management.update_record(vault, record)
```

</details>

### レコード削除コマンド <a href="#record-delete-command" id="record-delete-command"></a>

個人用ボルトフォルダーから複数のレコードを削除するために使います。削除したレコードはオーナーのボルトに残り、すべてのインスタンスが削除されるとオーナーのゴミ箱に残ります。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `rm`

**フラグ:**

* `--help` : このヘルプ画面を表示する。
* `--version` : バージョン情報を表示する。
* `record title, uid, or pattern` : 削除するレコードのUID/タイトル。

**例:**

```sh
My Vault> rm record_uid
1 Record(s) will be removed from shared folders.  Access to these records will no longer be available to members of these shared folders.
Note: If the last reference to a record is removed, the record can be found in the owner's trash can. If the trash can is then emptied, the record is no longer recoverable.
Type "yes" to confirm, <Enter> to cancel
> yes
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `DeleteRecords`

```csharp
Task DeleteRecords(RecordPath[] records);
```

**引数:**

`records` - レコードパスの配列。

**例外:**

```csharp
Authentication.KeeperApiException
```

</details>

<details>

<summary>PowerCommander</summary>

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

**別名:** `kdel`

**パラメータ:**

* `Name` - 削除するレコード名

**例:**

```powershell
PS > Remove-KeeperRecord -Name "abc123xyz"
PS > kdel "RecordUID1", "RecordUID2"
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド**: `rm`

**パラメータ**:

* `records` 削除するレコードのUid (必須)

**オプション**:

* `-f` `--force` 確認なしで削除する

**例:**

```sh
My Vault> rm record_uid
1 Record(s) will be removed from your personal folder.
Note: If the last reference to a folder is removed, it can be found in the owners trash can. If the trash can is then emptied, the record is no longer recoverable. (y/n): y

```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `delete_vault_objects`

**例:**

```python
record_management.delete_vault_objects(
            vault=context.vault,
            vault_objects=record_uids, #str
            confirm=confirm_fn #Optional - send a callable function for confirm deletion
        )
```

</details>

### レコード検索・一覧コマンド <a href="#list-command" id="list-command"></a>

このコマンドはKeeperボルト内のすべてのレコードを表形式で一覧表示します。各行にレコードUID、タイトル、タイプ、説明、他ユーザーとの共有の有無が含まれます。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `search`

**パラメータ:**

* `argument 1` : 検索で照合するパターン (必須)。

**フラグ**:

* `--verbose` : すべてのデータを表示する
* `--limit` : 表示するレコード数

**例:**

```shell
My Vault> search demo
  #  Record UID              Title                      Type   Info                                         
---  ----------------------  -------------------------  -----  ---------------------------------------------
  1  record_uid              Demo Record 1              login  demo@email.com (at) https://demo.acmecorp.com
  2  record_uid              DemoRecordForWeakPassword  login  qsaSF@ASFD.CA                                

First 2 found records are shown.
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `vault.KeeperRecords`

同様の動作には、ボルトコンテキストのKeeperレコード一覧から取得する。

```csharp
vault.KeeperRecords
                .Where(x => options.Verbose || x.Version == 2 || x.Version == 3)
```

</details>

<details>

<summary>Power Commander</summary>

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

**別名:** `kr`

**オプション:**

`-Uid` - レコードuidで絞り込む。

`-Filter` - UID、タイトル、タイプ、説明で絞り込む。

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `list`

**別名:**`l`

**オプション:**

`-t` `--type` 特定タイプのレコードのみ一覧する。繰り返し指定可

`-v` `--verbose` 長いタイトルを表示する

`--format` Table、csv、json

`--output` 出力先ファイルのパス

`search_text` 一覧の条件

**例:**

```shell
My Vault> list

  #  Record UID              Type     Title                            Description                                Shared
---  ----------------------  -------  -------------------------------  -----------------------------------------  --------
  1  record_uid              login    abc                              abc@email.com                              True
```

</details>

<details>

<summary>Python SDK</summary>

**関数**: `find_records`

**例:**

```python
records = [x for x in vault.vault_data.find_records(criteria=Optional[str], record_type=Optional[Union[str, Iterable[str]]], record_version=Optional[Union[int, Iterable[int]]])]
```

**注:**

* `criteria` : レコードに含まれるテキスト
* `record_types` : 指定タイプのレコードを返す
* `record_version` : 指定バージョンのレコードを返す

</details>

### レコード取得コマンド <a href="#get-record-command" id="get-record-command"></a>

このコマンドはレコードの取得専用です。DotNetおよびPython SDKのgetはその他コマンドに分類され、レコード・チーム・フォルダー・共有フォルダーを取得します。

<details>

<summary>DotNet CLI</summary>

**コマンド**: `get`

**パラメータ:**

* `uid` : レコード、共有フォルダー、またはフォルダーのUid

**例:**

```bash
My Vault> get record_uid                       

                    Record UID:  record_uid                
                          Type:  login                                 
                         Title:  Login Record                          
                         Notes:                                        
                      $passkey:                                        
                        $login:  example@example.com                   
                     $password:  random_password                  
                          $url:                                        
                      $fileRef:                                        
                 Last Modified:  Wednesday, August 13, 2025 12:04:28 PM
                                                                       
                   User Shares:                                        
       user@example.com  Can Edit                              
       user@example.com  Owner                                 
                                                                       
                Shared Folders:                                        
                New Test Folder  Read Only                             
```

</details>

<details>

<summary>DotNet SDK</summary>

現在のdotnet CLIでの実装は、与えられたUIDを複数カテゴリから検索する流れに従います。

```csharp
vault.TryGetKeeperRecord(uid, out var record)
```

UIDがレコードにない場合は、共有フォルダー側でUIDを検索します。

```csharp
vault.TryGetSharedFolder(uid, out var sf)
```

共有フォルダーにない場合は、フォルダーを確認します。

```csharp
vault.TryGetFolder(uid, out var f
```

</details>

<details>

<summary>Power Commander</summary>

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

**別名:** `kr`

**パラメータ:**

* `Uid` : 一致するUidのレコードを返す

**フラグ**:

* `Filter` : レコード内容を指定値と照合し、一致するものを返す

**例:**

<pre class="language-powershell"><code class="lang-powershell"># Get specific record
<strong>PS > Get-KeeperRecord -Uid "abc123xyz"
</strong>PS > kr -Uid "abc123xyz"

# Get all records
PS > Get-KeeperRecord
PS > kr

# Search records
PS > Get-KeeperRecord -Filter "gmail"
PS > kr -Filter "password"
</code></pre>

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `get <UID>`

**パラメータ:**

* `uid` 検索するUIDまたはタイトル (-f、-t、-r 使用時は任意)
* `-f`, `--folder` 検索するフォルダーUIDまたはタイトル
* `-t`, `--team` 検索するチームUIDまたはタイトル
* `-r`, `--record` 検索するレコードUIDまたはタイトル

**オプション:**

`--format` 対応する表示形式 - json、details、fields、password

`--unmask` パスワードなど機密データを出力に含める

`--legacy` 型付きレコードをレガシーとして表示する

**例:**

```sh
My Vault> get record_uid

                 UID: record_uid
                Type: login               
               Title: test
               login: 134234           
            password: ********            
                 url: https://email.com   

User Permissions:

User: user@email.com
Shareable: Yes
Read-Only: No


Shared Folder Permissions:

Shared Folder UID: shared_folder_uid


Share Admins:
users@email.com
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `load_record`

**例:**

```python
record = vault.vault_data.load_record(record_uid=uid)
```

`load_record`はレコードの詳細を返します。レコードには次の4種類があります。

* `PasswordRecord` - レガシーまたは一般
* `TypedRecord`
* `FileRecord`
* `ApplicationRecord`

これらのクラスは`keepersdk.vault.vault_record`で定義されています。

</details>

### レコード履歴コマンド <a href="#record-history-command-pending" id="record-history-command-pending"></a>

このコマンドは、(既定アクションで) レコードのリビジョンや変更の一覧表示、特定リビジョンの表示、リビジョン間の差分表示、旧リビジョンの復元に使います。ここでのリビジョンは、特定レコードの変更バージョンに相当します。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `record-history`

**パラメータ:**

* `recordUid` **:** 履歴を参照するレコードのUID。

**例:**

```sh
My Vault> record-history UTgy0U90whWp78sFAcsav
Version  Modification Date       Username                       Changed        
-------  ----------------------  -----------------------------  ---------------
V.2      9/30/2025 1:00:20 PM     user@email.com                  Login, Password
V.1      12/19/2024 12:23:45 PM   user@email.com               
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `GetRecordHistory`

```csharp
public async Task<RecordHistory[]> GetRecordHistory(string recordUid)
```

**引数**:

`recordUid` : 履歴を表示するレコードのUID

</details>

<details>

<summary>Power Commander</summary>

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

**パラメータ**:

`-Format` Table、csv、Json

`-Output` 出力先ファイルのパス。

`-a` `-Action` 対応アクション: list、diff、view、restore

`-r`, `-Revision` 表示または復元対象のリビジョン

`-Record` レコードUIDまたはパス (必須)

**例:**

```
PS > Get-KeeperRecordHistory -Record "<recordUidOrName_here>"

Record History: Test1
UID: <recordUid_here>

Version ModifiedBy                    TimeModified
------- ----------                    ------------
Current test@gmail.com                2026-02-16 08:50:30
V.6     test@gmail.com                2026-02-16 08:48:37
V.5     test@gmail.com                2026-02-16 08:40:48
V.4     test@gmail.com                2026-02-16 08:39:27
V.3     test@gmail.com                2026-02-16 08:38:32
V.2     test@gmail.com                2026-02-06 17:39:52
V.1     test@gmail.com                2026-02-05 10:42:05

Total versions: 7
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド**: `record-history`

**パラメータ**:

`--format` Table、csv、Json

`--output` 出力先ファイルのパス ("table" 形式では無視)

`-a` `--action` 対応アクション: list、diff、view、restore

`-r`, `--revision` 表示または復元対象のリビジョン

`record` レコードUIDまたはパス (必須)

**オプション**:

* `-v`, `--verbose` 詳細出力を表示する

**例:**

```sh
My Vault> record-history -a='list' record_uid
Version    Modified By                      Time Modified
---------  -------------------------------  -------------------
Current    username@keepersecurity.com      2025-09-30 18:36:58
V.5        username@keepersecurity.com      2025-09-26 18:00:27
V.4        username@keepersecurity.com      2025-09-24 11:51:50
V.3        username@keepersecurity.com      2024-12-30 12:21:59
V.2        username@keepersecurity.com      2024-12-02 12:39:20
V.1        username@keepersecurity.com      2024-12-02 12:16:15
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** 非対応

</details>

### クリップボード出力コマンド <a href="#clipboard-copy-command" id="clipboard-copy-command"></a>

このコマンドはレコードからデータ (パスワード、ログイン、TOTP、カスタムフィールド) を取得し、クリップボード、標準出力、環境変数などへ出力します。

{% hint style="info" %}
このコマンドの別名は `find-password` です。
{% endhint %}

<details>

<summary>DotNet CLI</summary>

**コマンド:** `clipboard-copy`

**別名:** `cc`, `find-password`

**フラグ:**

* `record`: データ取得元のレコードパスまたはUID
* `--username` : 同名レコードが複数あるときログイン名で一致させる
* `--output` : 出力先 - 値: `clipboard` (既定)、`stdout`、`stdouthidden`、`variable`
* `--name` : 出力が `variable` のときの変数名
* `--copy-uid` : パスワードの代わりにUIDを出力する
* `-l`, `--login` : パスワードの代わりにログイン名を出力する
* `-t`, `--totp` : パスワードの代わりにTOTPコードを出力する
* `--field` : 特定のカスタムフィールドを出力する (ネストは `field:property`)
* `-r`, `--revision` : 指定したレコードリビジョンを使う

**例:**

```
MyVault> clipboard-copy myrecord

MyVault> cc myrecord --output stdout

MyVault> find-password myrecord --login

MyVault> clipboard-copy myrecord --totp

MyVault> clipboard-copy myrecord --field notes

MyVault> clipboard-copy myrecord --field phone:number

MyVault> clipboard-copy myrecord --output variable --name MY_PASSWORD

MyVault> clipboard-copy myrecord --username john@example.com
```

</details>

<details>

<summary>Power Commander</summary>

**コマンド** : `Copy-KeeperToClipboard [-Record] [-Field] [-Output] [-Username] [-Login] [-Totp] [-CopyUid] [-Name] [-Revision]`

**パラメータ**

| パラメータ    | 説明                                                    |
| -------- | ----------------------------------------------------- |
| Record   | レコードUID、タイトル、またはUidプロパティを持つオブジェクト。                    |
| Field    | コピーするフィールド。Login、Password、URL、Notes、または任意のカスタムフィールド名。 |
| Output   | 出力先: Clipboard、Stdout、StdoutHidden、Variable。          |
| Username | 同一タイトルが複数あるとき、正しいレコードを選ぶためのログイン名。                     |
| Login    | パスワードの代わりにログインフィールドをコピーする。別名: `-l`                    |
| Totp     | パスワードの代わりにTOTPコードをコピーする。別名: `-t`                      |
| CopyUid  | パスワードの代わりにレコードUIDをコピーする。                              |
| Name     | Output が Variable のときの変数名。                            |
| Revision | 履歴の特定リビジョンを使用する (1 = 1つ前、2 = 2つ前 など)。別名: `-r`         |

**例**

```powershell
# Copy password to clipboard (default behavior)
Copy-KeeperToClipboard "Test"   
Copied to clipboard: Password for Test

# Copy login instead of password
Copy-KeeperToClipboard "Test" -Login   
Copied to clipboard: Login for Test

# Copy TOTP code
Copy-KeeperToClipboard "Test" -Totp   
Copied to clipboard: TOTP for Test

# Copy a custom field
Copy-KeeperToClipboard "Test" -Field "API Key"   
Record Test12 has no API Key

# Output to console
Copy-KeeperToClipboard "Test" -Output Stdout   
123456

# Store in variable
Copy-KeeperToClipboard "Test" -Output Variable -Name "myPassword"   
Password is set to variable "myPassword"

# Print the password which you stored in variable
$env:myPassword
123456

# Copy previous version from history
Copy-KeeperToClipboard "Test" -Revision 1   
Copied to clipboard: Password for Test

Copy-KeeperToClipboard "Test" -Revision 2
Copied to clipboard: Password for Test

# Copy UID itself
copy-KeeperToClipboard "Test" -CopyUid
Copied to clipboard: UID for Test

# Select by username when multiple records have same title
Copy-KeeperToClipboard "Test" -Username "abc@example.com"
Copied to clipboard: Password for Test
```

</details>

<details>

<summary>Python CLI</summary>

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

</details>

<details>

<summary>Python SDK</summary>

**関数:** 非対応

</details>

### 重複レコード検出コマンド <a href="#find-duplicates-command" id="find-duplicates-command"></a>

このコマンドは、さまざまな照合条件に基づきボルト内の重複レコードを検索します。重複の表示、または自動マージ/削除が行えます。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `find-duplicates`

**フラグ:**

* `--title` : タイトルで重複を照合する
* `--login` : ログインで重複を照合する
* `--password` : パスワードで重複を照合する
* `--url` : URLで重複を照合する (結果にもURLを表示)
* `--shares` : 共有権限で重複を照合する
* `--full` : カスタムフィールドを含むすべてのフィールドで照合する
* `-m`, `--merge` : 重複レコードを統合する (各グループで先頭以外を削除)
* `--ignore-shares-on-merge` : マージ用のグループ化で共有権限を無視する
* `-f`, `--force` : 確認なしで削除する (`--merge` 指定時のみ有効)
* `-n`, `--dry-run` : 実際には削除せずシミュレーションする (`--merge` 指定時のみ有効)
* `-q`, `--quiet` : 画面出力を抑止する (`--force` 指定時のみ有効)
* `-s`, `--scope` : 検索範囲 - 値: `vault` (既定)、`enterprise`
* `-r`, `--refresh-data` : 最新データでローカルキャッシュを更新する (`--scope=enterprise` 指定時のみ有効)

**例:**

```
MyVault> find-duplicates --title --login

MyVault> find-duplicates --password --url

MyVault> find-duplicates --full

MyVault> find-duplicates --title --login --merge

MyVault> find-duplicates --title --login --merge --force

MyVault> find-duplicates --title --login --merge --dry-run

MyVault> find-duplicates --shares --scope vault
```

</details>

<details>

<summary>Power Commander</summary>

**コマンド** : `Find-KeeperDuplicateRecords [-Title] [-Login] [-Password] [-Url] [-Shares] [-Full] [-Merge] [-Force] [-DryRun] [-Quiet] [-IgnoreSharesOnMerge] [-Scope ] [-RefreshData] [-Format ] [-Output ]`

**パラメータ**

| パラメータ               | 説明                                             |
| ------------------- | ---------------------------------------------- |
| Title               | タイトルフィールドで重複を照合する。                             |
| Login               | ログインフィールドで重複を照合する。                             |
| Password            | パスワードフィールドで重複を照合する。                            |
| Url                 | URLフィールドで重複を照合する。                              |
| Shares              | 共有権限で重複を照合する。                                  |
| Full                | すべてのフィールド (タイトル、ログイン、パスワード、url、カスタム、共有) で照合する。 |
| Merge               | 重複を削除する (各グループの先頭レコードを残す)。                     |
| Force               | 確認なしで削除する (-Merge が必要)。                        |
| DryRun              | 削除せずシミュレーションする (-Merge が必要)。                   |
| Quiet               | 出力を抑止する (-Force が必要)。                          |
| IgnoreSharesOnMerge | マージ照合で共有権限を無視する。                               |
| Scope               | 検索範囲: vault または enterprise。                    |
| RefreshData         | キャッシュを更新する (-Scope enterprise が必要)。            |
| Format              | 出力形式: table、csv、json。                          |
| Output              | 結果をファイルにエクスポートする。                              |

**例**

```powershell
# Find all records with duplicate titles
Find-KeeperDuplicateRecords -Title
Find duplicated records by: Title

Duplicates Found:
Group Title Login       UID                    RecordOwner                   SharedTo
----- ----- -----       ---                    -----------                   --------
    1 Test1 a@gmail.com a3sADrCdf-E_nmO5M_wGNg test@gmail.com                test2@gmail.com                     
      Test1 a@gmail.com lyzT2qwFYJdvuuOJlwKNjw test@gmail.com                test2@gmail.com                     
      Test1 a@gmail.com nZHx5lJnft4nC3dM32IWxQ test@gmail.com                test2@gmail.com                     

Total: 1 duplicate groups, 3 records


# Find duplicates by specific fields (title, login, password, url, shares)
Find-KeeperDuplicateRecords -Title -Login -Password -Url -Shares
Find duplicated records by: Title, Login, Password, URL, Shares

Duplicates Found:
Group Title Login       Url               UID                    RecordOwner                   SharedTo      
----- ----- -----       ---               ---                    -----------                   --------      
    1 Test1 a@gmail.com https://agoda.com a3sADrC1R-E_nmO5M_wGNg test@gmail.com                test2@gmail.com                 
      Test1 a@gmail.com https://agoda.com lyzT2gZFYJdvuuOJlwKNjw test@gmail.com                test2@gmail.com                 

Total: 1 duplicate groups, 2 records


# Find duplicates by all fields and export to file (supports table, csv, json formats)
Find-KeeperDuplicateRecords -Full -Format csv -Output duplicates.csv
Find duplicated records by: All Fields

Duplicates Found:
Results exported to: duplicates.csv

Group       : 1
Title       : Test1
Login       : a@gmail.com
UID         : a3sADrC1R-E_nmO5M_wGNg
RecordOwner : test@gmail.com                
SharedTo    : test2@gmail.com                

Group       : 
Title       : Test1
Login       : a@gmail.com
UID         : lyzT2gZFYJqwvuuOJlwKNjw
RecordOwner : test@gmail.com                
SharedTo    : test2@gmail.com 


# Simulate merging duplicates with dry run, then merge with force and quiet
Find-KeeperDuplicateRecords -Full -Merge -DryRun
Find duplicated records by: All Fields

DRY RUN MODE: No records will be removed
The following 1 duplicate record(s) will be removed:

Title UID                    Login
----- ---                    -----
Test1 lyzT2gZFYJdqwuOJlwKNjw a@gmail.com

DRY RUN: No records were removed.


# Merge duplicates ignoring share permissions (useful when records have different shares)
Find-KeeperDuplicateRecords -Merge -IgnoreSharesOnMerge
Find duplicated records by: All Fields (ignoring shares for merge)

The following 2 duplicate record(s) will be removed:

Title UID                    Login
----- ---                    -----
Test1 a3sADrC1R-E_nmO5M_wGNg a@gmail.com
Test1 h4wCKmKj1euJALxPBGTxAw a@gmail.com

Removing duplicate records...
Successfully removed 2 duplicate record(s).
Syncing vault...
Vault synced.

```

</details>

<details>

<summary>Python CLI</summary>

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

</details>

<details>

<summary>Python SDK</summary>

**関数:** 非対応

</details>


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

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

The question should be specific, self-contained, and written in natural language.
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.
