グループとコラボレーションの管理

ガイド CLI CLIサンプルスクリプト グループとコラボレーションの管理

グループとコラボレーションの管理

スクリプト構造

このスクリプトでは、Box CLIを使用して、グループの作成や更新、グループへのユーザーの追加、グループとフォルダの間のコラボレーションの作成を行います。このスクリプトは、2つのパートから構成されています (以下のセクションで詳しく説明します)。両方のパートを実行することも、オプションのフラグを使用して実行するパートを決めることもできます。

グループの作成または更新

  1. このスクリプトでは、UserGroupAdditionPathパラメータに指定した.csvファイルを使用します。このファイルには、グループ名とユーザーのメールアドレスが記載されています。このファイルを作成する際には、複数のユーザーに同じグループ名を使用することも、1人のユーザーを複数のグループに割り当てることもできます。以下に例を示します。

  2. グループが存在しない場合は、スクリプトによってそのグループが作成されます。グループが存在する場合は、指定したデータに基づいてエントリが更新されます。

コラボレーションの作成または更新

  1. このスクリプトでは、CollaborationsCreationPathパラメータに指定した.csvファイルを使用します。このファイルには、グループ名、フォルダID、コラボレーションロールが記載されています。
  2. スクリプトでは、行ごとに、グループが存在するかどうか、そのグループがすでに対応するフォルダにコラボレータとして追加されていないかどうかを確認します。以下に例を示します。

    GroupNameFolderIdCollaborationRole
    Group11111111editor
    Group21111111viewer_uploader
    Group22222222viewer
    Group31111111viewer_uploader
  3. 両方の条件を満たしている場合、CollaborationRole列で定義されたロールを使用してグループがフォルダに割り当てられます。また、グループはすでに存在していても、CollaborationRoleを変更した場合、スクリプトの実行時に-UpdateExistingCollabsフラグを渡すと、コラボレーションロールが更新されます。

前提条件

Windows

.NET Coreの最新バージョンのインストール

MacOSおよびLinux

PowerShellをインストールします。pwshコマンドを実行して、インストール結果をテストします。

pwsh 

どのディレクトリでこのコマンドを実行するかに応じて、出力が異なる場合があります。以下に例を示します。

PowerShell 7.2.5
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.
    
PS /Users/user/repos/boxcli/examples> 

問題が発生する場合は、.NET CorePowerShellの両方をインストールしたかどうか確認してください。

Boxアプリケーション

スクリプトを使用するには、OAuth 2.0認証を使用するBoxアプリケーションが必要です。該当するアプリケーションがない場合は、開発者コンソールに移動して、OAuth 2.0を使用した設定ガイドに従ってください。

スクリプトの構成

  1. boxcli GitHubリポジトリを複製するか、examplesディレクトリからファイルをダウンロードします。

    git clone https://github.com/box/boxcli.git
    
2. Set the path to the `.csv` file with the list of groups and user emails.

    ```bash
    $UserGroupAdditionPath = "./User_Group_Addition.csv"
    ```

    * `UserEmail` is the primary email address for the user in Box. 
    * `GroupName` is the name of the group.

3. Set your own path to the `.csv` file with the list groups and user emails.

    ```bash
    $CollaborationsCreationPath = "./Collaborations_Creation.csv"
    ```

    * `GroupName` is name of the group the script will add as a collaborator to the folder. 
    * `FolderId` is the folder ID the collaborator will be added to.
    * `CollaborationRole` is the name of the role used when creating a collaboration.

     You can configure the available roles by setting the `AvailableCollaborationRoles` parameter:

     ```bash
     $AvailableCollaborationRoles = @("editor", "viewer", "previewer", "uploader", "previewer_uploader", "viewer_uploader", "co-owner")
     ```

## Run the script

1. Change the directory to the folder containing the script. 
   In this example, it is the `Mass Groups & Collaborations Update` folder.

   ```bash
rvb@lab:~/box-cli/examples/Mass Groups & Collaborations Update$ pwsh PowerShell 7.2.4
Copyright (c) Microsoft Corporation.
https://aka.ms/powershell
Type 'help' to get help.
PS /home/rvb/box-cli/examples/Mass Groups & Collaborations Update>
  1. スクリプトを実行します。

    ./Mass_Groups_Collabs_Update.ps1
    
### Optional flags

You can use flags to run run or skip specific parts of the script.

* If a group already is set as a collaborator for a
   specific folder but with a role other than defined in the .`csv` file, the script will inform you about it. It will not make any changes to an existing collaboration. 
   If you want to update an existing collaboration with role defined in `.csv` file, set an additional `-UpdateExistingCollabs` flag when running the script.
         
   ```bash
   Mass_Groups_Collabs_Update.ps1 -UpdateExistingCollabs
  • コラボレーションを作成せずにグループを更新するには、スクリプトの実行時に-SkipCollabsCreationブール値フラグを追加します。

    Mass_Groups_Collabs_Update.ps1 -SkipCollabsCreation
    
  • グループを更新せずにコラボレーションを作成するには、スクリプトの実行時に-SkipGroupsUpdateブール値フラグを追加します。

    Mass_Groups_Collabs_Update.ps1 -SkipGroupsUpdate
    

ログ

ログは、メインフォルダ内のlogsフォルダに格納されます。以下のログファイルにアクセスできます。

  • Mass_Groups_Collabs_Update_all.txt: すべてのログエントリが含まれています。
  • Mass_Groups_Collabs_Update_errors.txt: エラーのみが含まれています。