Box Developerドキュメント

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

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

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

スクリプト構造

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

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

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

    GroupNameUserEmail
    Group1ManagedUser1@test.com
    Group1ManagedUser2@test.com
    Group2ManagedUser3@test.com
    Group3ManagedUser1@test.com
  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 CLI

スクリプトを使用するには、Box CLIをインストールし、構成する必要があります。これは、クイックスタートガイドの手順を実行することで行うことができます。ログインに使用するユーザーは、Boxのメイン管理者または共同管理者である必要があります。

スクリプトの構成

  1. boxcli GitHubリポジトリを複製してこの例のフォルダにcdコマンドで移動するか、examplesディレクトリからファイルをダウンロードします。
    git clone https://github.com/box/boxcli.git boxcli
    cd boxcli/examples/Mass\ Groups\ \&\ Collaborations\ Update/

  1. グループとユーザーのメールアドレスのリストが含まれる.csvファイルのパスを設定します。
    $UserGroupAdditionPath = "./User_Group_Addition.csv"

* `UserEmail` is the primary email address for the user in Box.
* `GroupName` is the name of the group.
  1. グループとユーザーのメールアドレスのリストが含まれる.csvファイルに独自のパスを設定します。
    $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:
    $AvailableCollaborationRoles = @("editor", "viewer", "previewer", "uploader", "previewer_uploader", "viewer_uploader", "co-owner")

スクリプトの実行

  1. PowerShellコマンドを実行します。
    pwsh

  1. スクリプトを実行します。
    ./Mass_Groups_Collabs_Update.ps1

オプションのフラグ

フラグを使用すると、スクリプトの特定の部分を実行またはスキップできます。

  • グループがすでに特定のフォルダのコラボレータとして設定されているものの、その役割が.csvファイルで定義されたものとは異なる場合は、スクリプトによってそのことが通知されます。スクリプトによって既存のコラボレーションが変更されることはありません。.csvファイルで定義された役割で既存のコラボレーションを更新するには、スクリプトを実行する際に追加の-UpdateExistingCollabsフラグを設定します。
    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: エラーのみが含まれています。