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

#### 使い方 <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>

| コマンド                                                  | 説明                         | エイリアス |
| ----------------------------------------------------- | -------------------------- | ----- |
| [`view`](#enterprise-team-view)                       | エンタープライズチームを参照します。         | `v`   |
| [`add`](#enterprise-info-tree)                        | エンタープライズチームを作成します。         | `a`   |
| [`edit`](#enterprise-info-tree-1)                     | エンタープライズチームを編集します。         | `e`   |
| [`delete`](#enterprise-info-tree-2)                   | エンタープライズチームを削除します。         | `d`   |
| [`membership`](#enterprise-node-invite-email)         | エンタープライズチームのメンバーシップを管理します。 | `m`   |
| [`user-update`](#enterprise-team-user-update-command) | チーム内のユーザー情報を更新する           |       |

### チームの参照 <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>

### チームの追加 <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`

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

### チームの編集 <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>

未実装

</details>

<details>

<summary>Python CLI</summary>

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

**パラメーター:**

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

**フラグ:**

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

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

### チームの削除 <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>

未実装

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

### メンバーシップの管理 <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>

### エンタープライズチームユーザー更新コマンド <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>


---

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