> 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/record-commands.md).

# レコードコマンド

### 概要

本セクションでは、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ボルトに従来型レコードを追加するために使います。すべてのレコードタイプ、カスタムタイプ、標準フィールド、カスタムフィールドを指定できます。階層型共有サブフォルダ (NSF) のレコードを追加する場合は、[階層型共有サブフォルダのレコード追加コマンド](/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/nested-shared-folder-commands.md#add-record-command)をご利用ください。

<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分後にレコードが消える                                                                                                                                                                       |
| `-GeneratePassphrase`                                                                                 | <p>ランダムなパスフレーズを生成し、<code>password</code> フィールドに保存。<code>-GeneratePassword</code> とは同時指定不可。<br>単独指定時の既定値: 5語、"-" 区切り、useCaps=true、useDigits=true</p>                                                                            |
| `-PassphraseRuleValues`                                                                               | <p>パスフレーズのオプション設定 (指定時はパスフレーズも生成): <code>WordCount, Separator, UseCaps, UseDigits</code>。<br>例: <code>-GeneratePassphrase -PassphraseRuleValues 5,-,true,true</code> (WordCount: 5〜9。区切り: <code>- . \_ ! ?</code> またはスペース)</p> |

**例:**

```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`              | 実行前に確認プロンプトを表示する                                                                                                                                                                                                               |
| `-GeneratePassphrase`   | <p>ランダムなパスフレーズを生成し、<code>password</code> フィールドに保存。<code>-GeneratePassword</code> とは同時指定不可。<br>単独指定時の既定値: 5語、"-" 区切り、useCaps=true、useDigits=true</p>                                                                            |
| `-PassphraseRuleValues` | <p>パスフレーズのオプション設定 (指定時はパスフレーズも生成): <code>WordCount, Separator, UseCaps, UseDigits</code>。<br>例: <code>-GeneratePassphrase -PassphraseRuleValues 5,-,true,true</code> (WordCount: 5〜9。区切り: <code>- . \_ ! ?</code> またはスペース)</p> |

**要件**:

このコマンドは現在のフォルダー内のレコードを更新します。先に、対象フォルダーへカレントを移してください。`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>

PowerCommanderでは、このコマンドに以下の2つの実装があります。

1. フィールドとデータをクリップボードへコピー

**コマンド** : `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
```

2. Keeper添付ファイルをストリームへコピー

**コマンド**: `Copy-KeeperFileAttachmentToStream`

Keeperレコードから1件のファイル添付をダウンロードします。出力モードは以下の2種類です。

* **`-Path`**: 添付をファイルへ書き込み。親ディレクトリがなければ自動作成。ディスクへの保存向け
* **`-Stream`**: 添付データを既存の `System.IO.Stream` オブジェクトへ書き込み。メモリ上での処理、パイプ、カスタム処理向け

レコードは **レコードUID** または **レコードタイトル** で指定できます。複数の添付がある場合は `-Name` でファイル名または添付IDを指定します。添付が1件のみの場合は `-Name` を省略できます。

***

**パラメータ**

<table><thead><tr><th width="111.15625">パラメータ</th><th width="159.1640625">型</th><th width="101.6123046875">必須</th><th>説明</th></tr></thead><tbody><tr><td><strong>Record</strong></td><td><code>string</code></td><td>はい</td><td>KeeperレコードUIDまたはレコードタイトル</td></tr><tr><td><strong>Name</strong></td><td><code>string</code></td><td>いいえ</td><td>添付ファイル名または添付ID (添付が1件のみの場合は省略可)</td></tr><tr><td><strong>Path</strong></td><td><code>string</code></td><td>はい*</td><td>添付の保存先パス (`-Stream` 未使用時は必須。必要に応じてディレクトリを作成)</td></tr><tr><td><strong>Stream</strong></td><td><code>System.IO.Stream</code></td><td>はい*</td><td>添付データを受け取る書き込み可能なストリーム (`-Path` 未使用時は必須)</td></tr></tbody></table>

**`-Path`** と **`-Stream`** は同時指定不可。いずれか一方が必須。

**例**

**ファイルへ添付をダウンロード**

指定パスへ添付を保存する例。対象ディレクトリが存在しない場合は自動作成されます。

```powershell
Copy-KeeperFileAttachmentToStream -Record "ABxzAJFeEd_pRAFbcqGCJA" -Name "download.png" -Path "C:\Downloads\file.png"
```

レコードタイトルと添付名で指定する例

```powershell
Copy-KeeperFileAttachmentToStream -Record "My Server Config" -Name "config.json" -Path ".\config.json"
```

添付が1件のみの場合は `-Name` を省略

```powershell
Copy-KeeperFileAttachmentToStream -Record "ABxzAJFeEd_pRAFbcqGCJA" -Path "C:\Downloads\attachment.bin"
```

**ストリームへ添付をダウンロード (メモリ上)**

`MemoryStream` へ添付を書き込み、データを読み取りまたは処理する例

```powershell
$ms = [System.IO.MemoryStream]::new()
Copy-KeeperFileAttachmentToStream -Record "ABxzAJFeEd_pRAFbcqGCJA" -Name "data.txt" -Stream $ms
$ms.Position = 0
$reader = [System.IO.StreamReader]::new($ms)
$content = $reader.ReadToEnd()
$reader.Dispose()
$ms.Dispose()
```

別のリーダー (バイナリなど) でストリームを使う例

```powershell
$ms = [System.IO.MemoryStream]::new()
Copy-KeeperFileAttachmentToStream -Record "My Record" -Stream $ms
$ms.Position = 0
# Process $ms as needed (e.g. [System.IO.BinaryReader])
$ms.Dispose()
```

</details>

<details>

<summary>Python CLI</summary>

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

**パラメータ**:\
`record` レコードパスまたはUID\
`--username` ログイン名で照合 (任意)\
`--output` {clipboard, stdout, stdouthidden, variable} パスワードの出力先\
`--name` 出力が variable の場合の変数名\
`-cu, --copy-uid` パスワードの代わりにUIDを出力\
`-l, --login` ログイン名を出力\
`-t, --totp` TOTPコードを出力\
`--field` カスタムフィールドを出力\
`-r, --revision` 特定のレコードリビジョンを使用

**例**:

```shellscript
My Vault> cc <record_uid>
Password copied to clipboard
```

</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>

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

パラメータ:

`--format` {table, csv, json} 出力形式\
`--output` 結果の出力ファイルパス (table 形式では無視)\
`--title` タイトルで重複を照合\
`--login` ログインで重複を照合\
`--password` パスワードで重複を照合\
`--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` 指定時のみ有効)

</details>

<details>

<summary>Python SDK</summary>

**関数:**

```python
    vault.sync_down()

    print("Finding Duplicate Records")
    print("-" * 50)
    
    print("\nDuplicate detection options:")
    print("1. By title")
    print("2. By title and username")
    print("3. By title and URL")
    print("4. By all fields (title, username, URL)")
    
    choice = input("\nSelect option (1-4, default=1): ").strip() or "1"
    
    match_title = True
    match_login = choice in ["2", "4"]
    match_url = choice in ["3", "4"]
    
    print(f"\nSearching for duplicates...")
    print(f"Matching by: Title={match_title}, Username={match_login}, URL={match_url}")
    print("-" * 50)
    
    duplicates_map: Dict[str, List[vault_record.KeeperRecordInfo]] = {}
    
    for record_info in vault.vault_data.records():
        try:
            record = vault.vault_data.load_record(record_info.record_uid)
            
            key_parts = []
            
            if match_title:
                title = record.title.lower().strip() if record.title else ""
                key_parts.append(f"title:{title}")
            
            if match_login and isinstance(record, vault_record.PasswordRecord):
                login = record.login.lower().strip() if record.login else ""
                key_parts.append(f"login:{login}")
            
            if match_url:
                url = ""
                if isinstance(record, vault_record.PasswordRecord):
                    url = record.link.lower().strip() if record.link else ""
                key_parts.append(f"url:{url}")
            
            if key_parts:
                key = "|".join(key_parts)
                
                if key not in duplicates_map:
                    duplicates_map[key] = []
                duplicates_map[key].append(record_info)
        
        except Exception as e:
            print(f"Warning: Error processing record {record_info.record_uid}: {str(e)}")
            continue
    
    duplicate_groups = {k: v for k, v in duplicates_map.items() if len(v) > 1}
    
    if duplicate_groups:
        print(f"\nFound {len(duplicate_groups)} duplicate group(s):")
        print("=" * 50)
        
        total_duplicates = 0
        for i, (key, records) in enumerate(duplicate_groups.items(), 1):
            total_duplicates += len(records)
            print(f"\nDuplicate Group {i} ({len(records)} records):")
            print("-" * 50)
            
            first_record = vault.vault_data.load_record(records[0].record_uid)
            print(f"Common attributes:")
            if match_title:
                print(f"  Title: {first_record.title}")
            if match_login and isinstance(first_record, vault_record.PasswordRecord):
                print(f"  Username: {first_record.login or '(empty)'}")
            if match_url and isinstance(first_record, vault_record.PasswordRecord):
                print(f"  URL: {first_record.link or '(empty)'}")
            
            print(f"\nDuplicate records:")
            for record_info in records:
                record = vault.vault_data.load_record(record_info.record_uid)
                print(f"  - {record.title}")
                print(f"    UID: {record_info.record_uid}")
                print(f"    Type: {record_info.record_type}")
                if isinstance(record, vault_record.PasswordRecord):
                    print(f"    Username: {record.login or '(empty)'}")
                    print(f"    URL: {record.link or '(empty)'}")
                print()
        
        print("=" * 50)
        print(f"\nSummary:")
        print(f"  Total duplicate groups: {len(duplicate_groups)}")
        print(f"  Total duplicate records: {total_duplicates}")
        print(f"  Potential records to remove: {total_duplicates - len(duplicate_groups)}")
        print("\nNote: Review duplicates carefully before deletion.")
        print("Use delete_record.py to remove unwanted duplicates.")
    else:
        print("\nNo duplicate records found!")
        print("Your vault is clean.")
    
    print("-" * 50)
    
```

</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 dynamically by asking a question.

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

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
