> 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/enterprise-management-commands/enterprise-team-commands.md).

# エンタープライズチームコマンド

エンタープライズチームの管理

#### 使い方 <a href="#usage-5" id="usage-5"></a>

```bash
enterprise-team command [--options] OR et command [--option]
```

**エイリアス:** `et`

#### コマンド一覧 <a href="#commands-3" id="commands-3"></a>

<table data-search="false"><thead><tr><th>コマンド</th><th>説明</th><th>エイリアス</th></tr></thead><tbody><tr><td><a href="#enterprise-team-view"><code>view</code></a></td><td>エンタープライズチームを参照します。</td><td><code>v</code></td></tr><tr><td><a href="#enterprise-info-tree"><code>add</code></a></td><td>エンタープライズチームを作成します。</td><td><code>a</code></td></tr><tr><td><a href="#enterprise-info-tree-1"><code>edit</code></a></td><td>エンタープライズチームを編集します。</td><td><code>e</code></td></tr><tr><td><a href="#enterprise-info-tree-2"><code>delete</code></a></td><td>エンタープライズチームを削除します。</td><td><code>d</code></td></tr><tr><td><a href="#enterprise-node-invite-email"><code>membership</code></a></td><td>エンタープライズチームのメンバーシップを管理します。</td><td><code>m</code></td></tr><tr><td><a href="#enterprise-team-user-update-command"><code>user-update</code></a></td><td>チーム内のユーザー情報を更新します。</td><td></td></tr><tr><td><a href="#enterprise-team-approve-command">team-approve</a></td><td>SCIMまたはActive Directory Bridgeによってプロビジョニングされた、キューに入っているチームとユーザーを承認します。</td><td>ta</td></tr></tbody></table>

### チームの参照 <a href="#enterprise-team-view" id="enterprise-team-view"></a>

チームとその権限を参照します。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `enterprise-team view <team_name> または et view <team_name>`

**パラメーター:**

`team_name` チーム名 (必須)

**オプション:**

* `-q, --queued` - 一覧/参照時にキュー済みのチーム/ユーザー情報を含める

**例:**

```
My Vault> enterprise-team view "POD Team"           
      Team Name:  POD Team                       
       Team UID:  qS9qkAme2vl6o5UJggaagA         
  Restrict Edit:  No                             
 Restrict Share:  No                             
  Restrict View:  No                             
          Users:  dhananjay.tayade@metronlabs.com
                  satish.gaddala@metronlabs.com  
   Queued Users:                                 
           Node:  Metron Security 
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `EnterpriseData.Teams`

**使い方:** `EnterpriseData` からチーム一覧を辞書として取得できます。

**例:**

```csharp
var enterpriseTeam = EnterpriseData.Teams.FirstOrDefault(x =>
                    string.Compare(x.Name, identifier, StringComparison.CurrentCultureIgnoreCase) == 0);
```

</details>

<details>

<summary>PowerCommander</summary>

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

**構文:**

```powershell
Get-KeeperEnterpriseTeam
```

**エイリアス:** `ket`

**パラメータ:**

* `-Name` - チーム名 (完全一致)
* `-Filter` - 検索用フィルター文字列
* `-Format` - 出力形式
* `-Output` - 出力先ファイル名

**例:**

```powershell
# すべてのチームを一覧
PS> Get-KeeperEnterpriseTeam

# 特定のチームを取得
PS> Get-KeeperEnterpriseTeam -Name T1

# チームを検索
PS> Get-KeeperEnterpriseTeam -Filter T1
```

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

**パラメーター:**

`-Team` : チームのユーザーを絞り込む名前またはUID。

**構文:**

```powershell
Get-KeeperEnterpriseTeamUser
```

**例:**

```powershell
# 特定のチームの全ユーザーを取得
PS> Get-KeeperEnterpriseTeamUser T

Id             DisplayName  Email                         UserStatus NodeName        
--             -----------  -----                         ---------- --------        
70411693850788 test sso     mimafe5220@docsfy.com         Active     SSO
70411693853106 Test1        mimafe5220@gmail.com          Active     Keeper Security 
```

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

**例:**

```powershell
PS > Get-KeeperAvailableTeam 

TeamUid                Name
-------                ----
eun1B5Cy89qO-sknhz59tg T3
7Xo__xOv62mUmqhXVPSZng Test Role Copy
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `enterprise-team view`

**フラグ:**

* `-v`, `--verbose` - 詳細情報を出力する
* `--format` - 出力形式: `json`
* `--output` - 出力ファイル名
* `team` - チーム名またはUID (必須)

</details>

<details>

<summary>Python SDK</summary>

**関数:**

```python
team_id = 'チーム名またはUID'
team = enterprise_data.teams.get_entity(team_id)
if not team:
    ts = [x for x in enterprise_data.teams.get_all_entities() if x.name.lower() == team_id.lower(
```

</details>

<details>

<summary>JavaScript SDK</summary>

**関数:** `listTeams`

```python
export async function listTeams(auth: Auth, options: ListTeamsOptions = {}): Promise<ListTeamRow[]> {
    const columns = resolveColumns(options.columns)
    const includes = includesForColumns(columns)
    const wantsDisplayNames = columns.includes(TeamColumn.Node) || columns.includes(TeamColumn.Roles)
    const enterpriseData = new EnterpriseDataManager(auth)
    const emptyDisplayNames: EnterpriseDisplayNames = {
        nodes: new Map(),
        roles: new Map(),
    }
```

</details>

### チームの追加 <a href="#enterprise-info-tree" id="enterprise-info-tree"></a>

エンタープライズチームを作成します。

<details>

<summary>DotNet CLI</summary>

**使い方**

```bash
enterprise-team  add [team] [--options] OR et add [team] [--options]
```

**パラメーター:**

`team` チーム名

**オプション:**

* `--node <node>` - ノード名またはID (追加/更新時)
* `--restrict-edit <ON|OFF>` - レコードの編集を無効にする
* `--restrict-share <ON|OFF>` - レコードの再共有を無効にする
* `--restrict-view <ON|OFF>` - パスワードの表示/コピーを無効にする

**例:**

```bash
# Add team
enterprise-team add "Frontend Team" --node "Engineering"
OR 
et add "Backend Team" --node 12345 --restrict-edit OFF --restrict-share ON
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `CreateTeam`

```csharp
public async Task<EnterpriseTeam> CreateTeam(EnterpriseTeam team)
```

**例:**

```csharp
team = await enterprise.CreateTeam(new EnterpriseTeam
                            {
                                Name = "Google",
                                RestrictEdit = false,
                                RestrictSharing = true,
                                RestrictView = false,
                            });
```

</details>

<details>

<summary>PowerCommander</summary>

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

**構文:**

```powershell
New-KeeperEnterpriseTeam [-TeamName] <string> [[-ParentNode] <long>] [[-RestrictEdit] <bool>] 
    [[-RestrictShare] <bool>] [[-RestrictView] <bool>] [<CommonParameters>]
```

**パラメーター:**

* `-TeamName` - チーム名 (必須)
* `-ParentNode` - 親ノード名またはノードID
* `-RestrictEdit` - 編集を制限する
* `-RestrictShare` - 共有を制限する
* `-RestrictView` - パスワード表示を制限する

**例:**

<pre class="language-powershell"><code class="lang-powershell"><strong>New-KeeperEnterpriseTeam -TeamName "Backend Team"
</strong>New-KeeperEnterpriseTeam -TeamName "Support" -ParentNode 12345 -RestrictView $true
</code></pre>

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `enterprise-team add`

**パラメーター:**

`team` - チーム名またはキュー済みチームUID。繰り返し指定可 (必須)

**チーム作成フラグ:**

* `-f`, `--force` - 確認プロンプトを表示しない
* `--parent` - 親ノード名またはID。省略時はルートノードになります
* `--restrict-edit` - レコード編集を無効にする: `on` または `off`
* `--restrict-share` - レコード再共有を無効にする: `on` または `off`
* `--restrict-view` - パスワードの表示/コピーを無効にする: `on` または `off`

**ユーザー操作フラグ:**

* `-au`, `--add-user` - メールアドレスでチームにユーザーを追加。繰り返し指定可
* `-ru`, `--remove-user` - メールアドレスでチームからユーザーを削除。繰り返し指定可
* `-hsf`, `--hide-shared-folders` - ユーザーに共有フォルダを表示しない: `on` または `off`。`--add-user` と併用する場合のみ有効

ユーザー識別子: エンタープライズユーザーのメールアドレス (例: `user@company.com`)。

**ユーザー操作に関する備考:**

* `-hsf on` を指定すると、共有フォルダを非表示にした状態でユーザーを追加します
* `-hsf off` を指定すると、共有フォルダを表示した状態でユーザーを追加します
* ユーザーが既にチームに所属しており `-hsf` を省略した場合、警告が表示され、そのユーザーはスキップされます
* 追加時に `-ru @all` は使用できません。`-ru @all` を使う場合は `enterprise-team membership` を使用してください

**ロール操作フラグ:**

* `-ar`, `--add-role` - 名前またはIDでチームにロールを追加。繰り返し指定可
* `-rr`, `--remove-role` - 名前またはIDでチームからロールを削除。繰り返し指定可

ロール識別子: ロール名またはロールID。

**ロール操作に関する備考:**

* 管理者ロールはチームに割り当てられません。警告を表示してスキップされます
* ロールが既にチームに割り当てられている場合、警告なしでスキップされます
* 追加時に `-rr @all` は使用できません。`-rr @all` を使う場合は `enterprise-team membership` を使用してください

**例:**

```sh
# チームのみ作成
My Vault> enterprise-team add 'Dev Team' --parent 'Engineering'

# チームを作成してユーザーを追加
My Vault> enterprise-team add 'Dev Team' -au user1@company.com -au user2@company.com -f

# チームを作成して共有フォルダを非表示にしたユーザーを追加
My Vault> enterprise-team add 'Contractors' -au contractor@company.com -hsf on -f

# チームを作成してロールを割り当て
My Vault> enterprise-team add 'Dev Team' -ar 'Developers' -ar 'QA Team' -f

# 制限を設定してチームを作成し、ユーザーとロールを追加
My Vault> enterprise-team add 'Secure Team' --restrict-edit on --restrict-share on \
 -au admin@company.com -ar 'Ops Role' -f

# キュー済みチームを昇格してユーザーを追加
My Vault> enterprise-team add IQ_queuedTeamUid -au user@company.com -f
```

</details>

<details>

<summary>Python SDK</summary>

**関数:**

```python
from keepersdk.enterprise import batch_management,  enterprise_management

team_names = ['追加するチーム名']
batch = batch_management.BatchManagement(loader=enterprise_loader, logger=enterprise_manager_logger)
teams_to_add = [enterprise_management.TeamEdit(
    team_uid=utils.generate_uid(), name=x, node_id=parent_id,
    restrict_edit=restrict_edit, restrict_share=restrict_share, restrict_view=restrict_view)
    for x in team_names]
batch.modify_teams(to_add=teams_to_add)
batch.apply()
```

</details>

<details>

<summary>JavaScript SDK</summary>

**関数:** `addTeams`

```python
export async function addTeams(auth: Auth, input: AddTeamInput): Promise<AddTeamResult> {
    const requestedNames = (input.teams || [])
        .map((value) => (typeof value === 'string' ? value.trim() : ''))
        .filter((value) => value.length > 0)
    if (requestedNames.length === 0) {
        throw new KeeperSdkError('No teams to add.', ResultCodes.NO_TEAMS_TO_ADD)
    }
    for (const name of requestedNames) {
        validateTeamName(name)
    }
```

</details>

### チームの編集 <a href="#enterprise-info-tree-1" id="enterprise-info-tree-1"></a>

エンタープライズチームを編集します。

<details>

<summary>DotNet CLI</summary>

**コマンド:**

`enterprise-team update [team] [--options] または et update [team] [--options]`

**パラメーター:**

`team` チーム名

**オプション:**

* `--node <node>` - ノード名またはID (追加/更新時)
* `--restrict-edit <ON|OFF>` - レコード編集を無効/有効にする
* `--restrict-share <ON|OFF>` - レコード再共有を無効/有効にする
* `--restrict-view <ON|OFF>` - パスワードの表示/コピーを無効/有効にする

**例:**

```bash
# Update team
enterprise-team update "Developers" --restrict-edit ON
et update TeamUID123 --restrict-share OFF --restrict-view ON
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `UpdateTeam`

```csharp
public async Task<EnterpriseTeam> UpdateTeam(EnterpriseTeam team)
```

**例:**

```csharp
await context.EnterpriseData.UpdateTeam(team);
```

</details>

<details>

<summary>PowerCommander</summary>

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

**構文:**

```csharp
Update-KeeperEnterpriseTeam [-Team] <string> [[-TeamName] <string>] [[-ParentNode] <string>]
    [[-RestrictView] <ON|OFF>] [[-RestrictEdit] <ON|OFF>] [[-RestrictShare] <ON|OFF>] [<CommonParameters>]
```

**エイリアス:** `kete`

**パラメーター:**

* `-Team` - チームUIDまたはチーム名 (必須)
* `-TeamName` - 新しいチーム表示名
* `-ParentNode` - 親ノード名またはID
* `-RestrictView` - パスワードの表示/コピーを無効または有効にする: `ON` または `OFF`
* `-RestrictEdit` - レコード編集を無効または有効にする: `ON` または `OFF`
* `-RestrictShare` - レコード再共有を無効または有効にする: `ON` または `OFF`

**例:**

```csharp
Update-KeeperEnterpriseTeam -Team "Developers" -RestrictEdit ON
Update-KeeperEnterpriseTeam -Team "1P7A8XZ9K3J9H" -RestrictShare OFF -RestrictView ON
Update-KeeperEnterpriseTeam -Team "Developers" -TeamName "Engineering" -ParentNode "IT" -RestrictShare OFF
kete "Developers" -RestrictEdit ON

```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `enterprise-team edit`

**パラメーター:**

`team` - チーム名またはUID。繰り返し指定可 (必須)

**チーム属性フラグ:**

* `-f`, `--force` - 確認プロンプトを表示しない
* `--name` - チーム表示名を設定する。単一チームのみ対応。複数のチームを指定した場合はエラーになります
* `--parent` - 親ノード名またはID。省略時は最初のチームの現在の親ノードを維持します
* `--restrict-edit` - レコード編集を無効にする: `on` または `off`
* `--restrict-share` - レコード再共有を無効にする: `on` または `off`
* `--restrict-view` - パスワードの表示/コピーを無効にする: `on` または `off`

制限に関する備考: `--restrict-edit`、`--restrict-share`、`--restrict-view` を省略した場合、編集の適用時に `off` として扱われます。

**ユーザー操作フラグ:**

* `-au`, `--add-user` - メールアドレスでチームにユーザーを追加。繰り返し指定可
* `-ru`, `--remove-user` - メールアドレスでチームからユーザーを削除。繰り返し指定可
* `-hsf`, `--hide-shared-folders` - ユーザーに共有フォルダを表示しない: `on` または `off`。`--add-user` と併用する場合のみ有効

ユーザー識別子: エンタープライズユーザーのメールアドレス (例: `user@company.com`)。

**共有フォルダの非表示設定の値:**

| 値     | 効果                   |
| ----- | -------------------- |
| `on`  | 共有フォルダを非表示にしてユーザーを追加 |
| `off` | 共有フォルダを表示してユーザーを追加   |
| 省略時   | チームのデフォルトのユーザータイプ    |

**ユーザー操作に関する備考:**

* ユーザーが既にチームに所属している場合、`-hsf` でユーザータイプを変更しない限り警告が表示され、そのユーザーはスキップされます
* 編集時に `-ru @all` は使用できません。`-ru @all` を使う場合は `enterprise-team membership` を使用してください

**ロール操作フラグ:**

* `-ar`, `--add-role` - 名前またはIDでチームにロールを追加。繰り返し指定可
* `-rr`, `--remove-role` - 名前またはIDでチームからロールを削除。繰り返し指定可

ロール識別子: ロール名またはロールID。

**ロール操作に関する備考:**

* 管理者ロールはチームに割り当てられません。警告を表示してスキップされます
* ロールが既にチームに割り当てられている場合、警告なしでスキップされます
* 編集時に `-rr @all` は使用できません。`-rr @all` を使う場合は `enterprise-team membership` を使用してください

**例:**

```sh
# チーム名を変更
My Vault> enterprise-team edit 'Old Team Name' --name 'New Team Name'

# チームを別の親ノードへ移動
My Vault> enterprise-team edit 'Dev Team' --parent 'Engineering'

# 制限を更新
My Vault> enterprise-team edit 'Dev Team' --restrict-edit on --restrict-share on --restrict-view off

# ユーザーを追加
My Vault> enterprise-team edit 'Dev Team' -au user@company.com

# ユーザーを削除
My Vault> enterprise-team edit 'Dev Team' -ru user@company.com

# 共有フォルダを非表示にしてユーザーを追加
My Vault> enterprise-team edit 'Contractors' -au contractor@company.com -hsf on

# ロールを追加
My Vault> enterprise-team edit 'Dev Team' -ar 'Developers'

# ロールを削除
My Vault> enterprise-team edit 'Dev Team' -rr 'Developers'

# 名前変更、移動、制限、ユーザー、ロールを一括更新
My Vault> enterprise-team edit 'Dev Team' --name 'Platform Team' --parent 'Engineering' \
 --restrict-edit on -au newuser@company.com -ru olduser@company.com \
 -ar 'Platform Role' -rr 'Legacy Role' -f

# 同じユーザーを複数チームに適用
My Vault> enterprise-team edit 'Team A' 'Team B' -au user@company.com

# 一括削除する場合はmembershipコマンドを使用
My Vault> enterprise-team membership 'Dev Team' -ru @all -rr @all
```

</details>

<details>

<summary>Python SDK</summary>

**関数:**

```python
from keepersdk.enterprise import batch_management,  enterprise_management

team_names = ['編集対象のチーム名']
batch = batch_management.BatchManagement(loader=enterprise_loader, logger=enterprise_manager_logger)

team_names_to_edit = {}
team_lookup: Dict[str, Union[enterprise_types.Team, List[enterprise_types.Team]]] = {}
for team in enterprise_data.teams.get_all_entities():
    team_lookup[team.team_uid] = team
    team_name = team.name.lower()
    t = team_lookup.get(team_name)
    if t is None:
        team_lookup[team_name] = team
    elif isinstance(t, list):
        t.append(team)
    elif isinstance(t, enterprise_types.Team):
        team_lookup[team_name] = [t, team]

found_teams: Dict[str, enterprise_types.Team] = {}
t: Optional[enterprise_types.Team]
for team_name in team_names_to_edit:
    t = None
    if isinstance(team_name, str):
        t = enterprise_data.teams.get_entity(team_name)
        if t is None:
            tt = team_lookup.get(team_name.lower())
            if isinstance(tt, list):
                if len(tt) == 1:
                    t = tt[0]
                elif len(tt) >= 2:
                    continue
            elif isinstance(tt, enterprise_types.Team):
                t = tt
    if t is None:
        continue
    found_teams[t.team_uid] = t
team_list = list(found_teams.values())

teams_to_edit = [enterprise_management.TeamEdit(
    team_uid=x.team_uid, name=team_name, node_id=parent_id,
    restrict_edit=restrict_edit, restrict_share=restrict_share, restrict_view=restrict_view)
    for x in team_list]
batch.modify_teams(to_update=teams_to_edit)
batch.apply()
```

</details>

<details>

<summary>JavaScript SDK</summary>

**関数:** `updateTeams`

```python
export async function updateTeams(auth: Auth, input: UpdateTeamInput): Promise<UpdateTeamResult> {
    const requestedIdentifiers = (input.teams || [])
        .map((value) => (typeof value === 'string' ? value.trim() : ''))
        .filter((value) => value.length > 0)
    if (requestedIdentifiers.length === 0) {
        throw new KeeperSdkError('No teams to update.', ResultCodes.NO_TEAMS_TO_UPDATE)
    }

```

</details>

### チームの削除 <a href="#enterprise-info-tree-2" id="enterprise-info-tree-2"></a>

エンタープライズチームを削除します。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `enterprise-team delete teamID`

```bash
enterprise-team delete [team] OR et delete [team]
```

**パラメーター:**

`team` チーム名またはチームID

**例:**

```bash
# Delete team
enterprise-team delete "Old Team"
et delete TeamUID123
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:** `DeleteTeam`

```csharp
 public async Task DeleteTeam(string teamUid)
```

**例:**

```csharp
await context.EnterpriseData.DeleteTeam(team.Uid);
```

</details>

<details>

<summary>PowerCommander</summary>

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

**構文:**

```csharp
Remove-KeeperEnterpriseTeam [-Team] <string> [-Force] [<CommonParameters>]
```

**エイリアス:** `ketdel`

**パラメーター:**

* `-Team` - チームUIDまたはチーム名 (必須)
* `-Force` - 削除前の確認プロンプトを省略

**例:**

```csharp
Remove-KeeperEnterpriseTeam -Team "Old Team"
Remove-KeeperEnterpriseTeam -Team "1P7A8XZ9K3J9H" -Force
ketdel "Old Team" -Force
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `enterprise-team delete`

**パラメーター:**

* `team` - チーム名またはUID。繰り返し指定可 (必須)

</details>

<details>

<summary>Python SDK</summary>

**関数:**

```python
from keepersdk.enterprise import batch_management,  enterprise_management

team_names = ['削除するチーム名']
batch = batch_management.BatchManagement(loader=enterprise_loader, logger=enterprise_manager_logger)

team_names_to_remove = {}
team_lookup: Dict[str, Union[enterprise_types.Team, List[enterprise_types.Team]]] = {}
for team in enterprise_data.teams.get_all_entities():
    team_lookup[team.team_uid] = team
    team_name = team.name.lower()
    t = team_lookup.get(team_name)
    if t is None:
        team_lookup[team_name] = team
    elif isinstance(t, list):
        t.append(team)
    elif isinstance(t, enterprise_types.Team):
        team_lookup[team_name] = [t, team]

found_teams: Dict[str, enterprise_types.Team] = {}
t: Optional[enterprise_types.Team]
for team_name in team_names_to_remove:
    t = None
    if isinstance(team_name, str):
        t = enterprise_data.teams.get_entity(team_name)
        if t is None:
            tt = team_lookup.get(team_name.lower())
            if isinstance(tt, list):
                if len(tt) == 1:
                    t = tt[0]
                elif len(tt) >= 2:
                    continue
            elif isinstance(tt, enterprise_types.Team):
                t = tt
    if t is None:
        continue
    found_teams[t.team_uid] = t
team_list = list(found_teams.values())
batch.modify_teams(to_remove=(enterprise_management.TeamEdit(team_uid=x.team_uid) for x in team_list))
batch.apply()
```

</details>

<details>

<summary>JavaScript SDK</summary>

**関数:** `deleteTeams`

```python
export async function deleteTeams(auth: Auth, input: DeleteTeamInput): Promise<DeleteTeamResult> {
    const requestedIdentifiers = (input.teams || [])
        .map((value) => (typeof value === 'string' ? value.trim() : ''))
        .filter((value) => value.length > 0)
    if (requestedIdentifiers.length === 0) {
        throw new KeeperSdkError('No teams to delete.', ResultCodes.NO_TEAMS_TO_DELETE)
    }
```

</details>

### メンバーシップの管理 <a href="#enterprise-node-invite-email" id="enterprise-node-invite-email"></a>

エンタープライズチームのメンバーシップを管理します。

<details>

<summary>DotNet CLI</summary>

未実装

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:**

`AddUsersToTeams` - 指定したチームにユーザーを追加する。

`RemoveUsersFromTeams` - チームからユーザーを削除する。

**例:**

```csharp
public async Task AddUsersToTeams(string[] emails, string[] teams, Action<string> warnings = null)
public async Task RemoveUsersFromTeams(string[] emails, string[] teamUids, Action<string> warnings = null)
```

```csharp
await enterprise.AddUsersToTeams(
                            new[] { "username@company.com", "username1@company.com" },
                            new[] { team.Uid }
                            );
 
```

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:**

`Add-KeeperEnterpriseTeamMember` - 指定したチームにユーザーを追加する。

`Remove-KeeperEnterpriseTeamMember` - チームからユーザーを削除する。

**構文:**

```powershell
PS> Add-KeeperEnterpriseTeamMember [-Team] <string> [-Emails] <string[]> [<CommonParameters>]
PS> Remove-KeeperEnterpriseTeamMember [-Team] <string> [-Emails] <string[]> [<CommonParameters>]
```

**エイリアス:** `keta`, `ketu`

**パラメーター:**

* `-Team` - チームUIDまたは名前
* `-Emails` - ユーザーのメールアドレス

**例:**

```powershell
# チームにユーザーを追加
PS> Add-KeeperEnterpriseTeamMember -Team "Developers" -Emails"user1@example.com", "user2@example.com"
PS> keta "TeamUID" "user@example.com"

# チームからユーザーを削除
PS> Remove-KeeperEnterpriseTeamMember -Team "Developers" -Emails"user@example.com"
PS> ketu "TeamUID" "user1@example.com", "user2@example.com"
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `enterprise-team membership`

**パラメーター:**

`team` - チーム名またはUID。繰り返し指定可 (必須)

**フラグ:**

* `-au`, `--add-user` - チームにユーザーを追加する。繰り返し指定可。
* `-ru`, `--remove-user` - チームからユーザーを削除する。@all。繰り返し指定可。
* `-ar`, `--add-role` - チームにロールを追加する。繰り返し指定可。
* `-rr`, `--remove-role` - チームからロールを削除する。@all。繰り返し指定可。

</details>

<details>

<summary>Python SDK</summary>

**関数:**

```python
from keepersdk.enterprise import batch_management,  enterprise_management

team_names = ['チームのUIDまたは名前']
batch = batch_management.BatchManagement(loader=enterprise_loader, logger=enterprise_manager_logger)

team_names_to_remove = {}
team_lookup: Dict[str, Union[enterprise_types.Team, List[enterprise_types.Team]]] = {}
for team in enterprise_data.teams.get_all_entities():
    team_lookup[team.team_uid] = team
    team_name = team.name.lower()
    t = team_lookup.get(team_name)
    if t is None:
        team_lookup[team_name] = team
    elif isinstance(t, list):
        t.append(team)
    elif isinstance(t, enterprise_types.Team):
        team_lookup[team_name] = [t, team]

found_teams: Dict[str, enterprise_types.Team] = {}
t: Optional[enterprise_types.Team]
for team_name in team_names_to_remove:
    t = None
    if isinstance(team_name, str):
        t = enterprise_data.teams.get_entity(team_name)
        if t is None:
            tt = team_lookup.get(team_name.lower())
            if isinstance(tt, list):
                if len(tt) == 1:
                    t = tt[0]
                elif len(tt) >= 2:
                    continue
            elif isinstance(tt, enterprise_types.Team):
                t = tt
    if t is None:
        continue
    found_teams[t.team_uid] = t
team_list = list(found_teams.values())

users_to_add: Optional[List[enterprise_types.User]] = None
roles_to_add: Optional[List[enterprise_types.Role]] = None
users_to_remove: Optional[List[enterprise_types.User]] = None
roles_to_remove: Optional[List[enterprise_types.Role]] = None
has_remove_all_users: bool = False
has_remove_all_roles: bool = False

add_users = ['追加するユーザー名のリスト']
if isinstance(add_users, list):
    for add_user in add_users:
        user = [user for user in enterprise_data.users.get_all_entities() if user.username.lower() == add_user.lower()]
        users_to_add.append(user)

add_roles = ['追加するロールのリスト']
if isinstance(add_roles, list):
    for role_name in add_roles:
        if isinstance(role_name, int):
            role = enterprise_data.roles.get_entity(role_name)
        elif isinstance(role_name, str):
            if role_name.isnumeric():
                role = enterprise_data.roles.get_entity(int(role_name))
            if not role:
                role = [x for x in enterprise_data.roles.get_all_entities() if x.name.lower() == role_name.lower()]
    roles_to_add.append(role)

remove_users = ['削除するユーザー名のリスト']
if isinstance(remove_users, list):
    has_remove_all_users = any((True for x in remove_users if x == '@all'))
    if not has_remove_all_users:
        for remove_user in remove_users:
            user = [user for user in enterprise_data.users.get_all_entities() if user.username.lower() == remove_user.lower()]
            users_to_remove.append(user)

remove_roles = ['削除するロールのリスト']
if isinstance(remove_roles, list):
    has_remove_all_roles = any((True for x in remove_roles if x == '@all'))
    if not has_remove_all_roles:
        for role_name in remove_roles:
            if isinstance(role_name, int):
                role = enterprise_data.roles.get_entity(role_name)
            elif isinstance(role_name, str):
                if role_name.isnumeric():
                    role = enterprise_data.roles.get_entity(int(role_name))
                if not role:
                    role = [x for x in enterprise_data.roles.get_all_entities() if x.name.lower() == role_name.lower()]
        roles_to_remove.append(role)

for team in team_list:
    existing_users = {x.enterprise_user_id for x in enterprise_data.team_users.get_links_by_subject(team.team_uid)}
    existing_roles = {x.role_id for x in enterprise_data.role_teams.get_links_by_object(team.team_uid)}
    if users_to_add:
        users_to_add = [x for x in users_to_add if x.enterprise_user_id not in existing_users]
        if users_to_add:
            batch.modify_team_users(to_add=[enterprise_management.TeamUserEdit(
                team_uid=team.team_uid, enterprise_user_id=x.enterprise_user_id) for x in users_to_add])
    if roles_to_add:
        roles_to_add = [x for x in roles_to_add if x.role_id not in existing_roles]
        if roles_to_add:
            batch.modify_role_teams(to_add=[enterprise_management.RoleTeamEdit(
                role_id=x.role_id, team_uid=team.team_uid) for x in roles_to_add])
    if has_remove_all_users:
        batch.modify_team_users(to_remove=[enterprise_management.TeamUserEdit(
            team_uid=team.team_uid, enterprise_user_id=x) for x in existing_users])
    elif users_to_remove:
        batch.modify_team_users(to_remove=[enterprise_management.TeamUserEdit(
            team_uid=team.team_uid, enterprise_user_id=x.enterprise_user_id) for x in users_to_remove])
    if has_remove_all_roles:
        batch.modify_role_teams(to_remove=[enterprise_management.RoleTeamEdit(
            role_id=x, team_uid=team.team_uid) for x in existing_roles])
    elif roles_to_remove:
        batch.modify_role_teams(to_remove=[enterprise_management.RoleTeamEdit(
            role_id=x.role_id, team_uid=team.team_uid) for x in roles_to_remove])

batch.apply()
```

</details>

<details>

<summary>JavaScript SDK</summary>

**関数:** 近日公開

```python
```

</details>

### エンタープライズチームユーザー更新コマンド <a href="#enterprise-team-user-update-command" id="enterprise-team-user-update-command"></a>

チーム内におけるユーザーの種類 (ユーザータイプ) を更新します。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `enterprise-user <action> username --team=<team_name> --user-type=<user_type>`

**パラメータ:**

`email` - ユーザーのメールアドレスまたはID。

`team` - チーム名またはID

`user-type` - 0=user、1=admin、2=admin\_only (共有フォルダは非表示だがチームへのユーザー追加は可)

**例:**

```sh
My Vault> eu team-user-update "nelelex252@hudisk.com" --team="T2" --user-type=0
```

</details>

<details>

<summary>DotNet SDK</summary>

**エンタープライズチームユーザーの更新:**

**メソッド:** `TeamEnterpriseUserUpdate`

**使い方:**

```csharp
 public async Task TeamEnterpriseUserUpdate(EnterpriseTeam enterpriseTeam, EnterpriseUser enterpriseUser, int userType)
```

**パラメータ:**

<table><thead><tr><th width="227.4921875"></th><th>説明</th></tr></thead><tbody><tr><td><code>enterpriseTeam</code></td><td>チームを表す EnterpriseTeam オブジェクト</td></tr><tr><td><code>enterpriseUser</code></td><td>ユーザーを表す EnterpriseUser オブジェクト</td></tr><tr><td><code>userType</code></td><td>0=user、1=admin、2=admin_only (共有フォルダは非表示だがチームへのユーザー追加は可)</td></tr></tbody></table>

**例:**

{% code overflow="wrap" %}

```csharp
await EnterpriseManagementExamples.EnterpriseUserExamples.UserExamples.TeamEnterpriseUserUpdateExample("jTiPyIP4NmPiyAVv2oKFpw", "nebilem641@nctime.com", 0);
```

{% endcode %}

</details>

<details>

<summary>PowerCommander</summary>

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

**フラグ:**

<table><thead><tr><th width="150.9345703125">パラメータ</th><th>説明</th></tr></thead><tbody><tr><td><code>User</code></td><td>更新対象のエンタープライズユーザー</td></tr><tr><td><code>Team</code></td><td>チーム名またはUID</td></tr><tr><td><code>UserType</code></td><td>ユーザータイプ (0 / 1 / 2)<br>0 - 通常ユーザー<br>1 - 管理者<br>2 - 管理者のみ (共有フォルダ非表示)</td></tr></tbody></table>

**例:**

```powershell
PS > Update-KeeperEnterpriseTeamUser -Team PCTTeam -User tofam63308@ixospace.com -UserType 1                     
Team user tofam63308@ixospace.com updated
```

</details>

<details>

<summary>Python CLI</summary>

近日公開

</details>

<details>

<summary>Python SDK</summary>

近日公開

</details>

### エンタープライズチーム承認コマンド <a href="#enterprise-team-approve-command" id="enterprise-team-approve-command"></a>

<details>

<summary>DotNet CLI</summary>

**コマンド:** `team-approve` または `ta`

**パラメータ:**

`--team` キューに入っているチームのみを承認します。

`--email` キューに入っているチームユーザーのみを承認します。

`--restrict-edit <on|off>` 承認したチームのレコード編集を制限または許可します。

`--restrict-share <on|off>` 承認したチームのレコード共有を制限または許可します。

`--restrict-view <on|off>` 承認したチームのパスワードの表示またはコピーを制限または許可します。

`--dry-run` 実行せずに、承認予定の内容を表示します。

`--format <table|csv|json>` ドライラン結果の出力形式

`--output <file_name>` CSVまたはJSONのドライラン結果の出力ファイル

`--force` 承認前に、エンタープライズおよびキュー内チームのデータを再読み込みします。

デフォルトでは、キューに入っているチームとユーザーの両方が承認されます。

**例:**

```sh
team-approve
team-approve --team
team-approve --email
```

</details>

<details>

<summary>DotNet SDK</summary>

**関数:** `ApproveQueuedTeams`

**使用法:**

```csharp
public async Task<TeamApproveResult> ApproveQueuedTeams( IQueuedTeamData queuedTeamData,TeamApproveOptions options = null)
```

**パラメータ:**

<table><thead><tr><th width="227.4921875"></th><th>説明</th></tr></thead><tbody><tr><td><code>ApproveTeams</code></td><td>キューに入っているチームを承認します。</td></tr><tr><td><code>ApproveUsers</code></td><td>キューに入っているチームユーザーを承認します。</td></tr><tr><td><code>RestrictEdit</code></td><td>承認したチームのレコード編集を制限します。</td></tr><tr><td><code>RestrictShare</code></td><td>承認したチームのレコード共有を制限します。</td></tr><tr><td><code>RestrictView</code></td><td>承認したチームのパスワードの表示またはコピーを制限します。</td></tr><tr><td><code>DryRun</code></td><td>実行せずに、承認予定の内容を返します。</td></tr></tbody></table>

**例:**

{% code overflow="wrap" %}

```csharp
var result = await enterpriseData.ApproveQueuedTeams(
    queuedTeamData,
    new TeamApproveOptions
    {
        ApproveTeams = true,
        ApproveUsers = true,
        RestrictEdit = true
    });
```

{% endcode %}

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Invoke-KeeperTeamApprove`

**エイリアス:** `kta`

**フラグ:**

<table data-search="false"><thead><tr><th width="150.9345703125">パラメータ</th><th>説明</th></tr></thead><tbody><tr><td><code>-TeamsOnly</code></td><td>キューに入っているチームのみを承認します。</td></tr><tr><td><code>-UsersOnly</code></td><td>キューに入っているチームユーザーのみを承認します。</td></tr><tr><td><code>-RestrictEdit</code></td><td>承認したチームのレコード編集を制限します。</td></tr><tr><td><code>-RestrictShare</code></td><td>承認したチームのレコード共有を制限します。</td></tr><tr><td><code>-RestrictView</code></td><td>承認したチームのパスワードの表示またはコピーを制限します。</td></tr><tr><td><code>-Force</code></td><td>承認前に、エンタープライズおよびキュー内チームのデータを再読み込みします。</td></tr><tr><td><code>-DryRun</code></td><td>実行せずに、承認予定の内容を表示します。</td></tr></tbody></table>

**例:**

```powershell
# キューに入っているチームとユーザーを承認
PS> Invoke-KeeperTeamApprove

# キューに入っているチームのみを承認
PS> kta -TeamsOnly

# キューに入っているユーザーのみを承認
PS> kta -UsersOnly
```

</details>

<details>

<summary>JavaScript SDK</summary>

**関数:** 近日公開

```python
```

</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/enterprise-management-commands/enterprise-team-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.
