グループとコラボレーションの管理
グループとコラボレーションの管理
スクリプト構造
このスクリプトでは、Box CLIを使用して、グループの作成や更新、グループへのユーザーの追加、グループとフォルダの間のコラボレーションの作成を行います。このスクリプトは、2つのパートから構成されています (以下のセクションで詳しく説明します)。両方のパートを実行することも、オプションのフラグを使用して実行するパートを決めることもできます。
グループの作成または更新
-
このスクリプトでは、
UserGroupAdditionPath
パラメータに指定した.csv
ファイルを使用します。このファイルには、グループ名とユーザーのメールアドレスが記載されています。このファイルを作成する際には、複数のユーザーに同じグループ名を使用することも、1人のユーザーを複数のグループに割り当てることもできます。以下に例を示します。GroupName
UserEmail
Group1 ManagedUser1@test.com
Group1 ManagedUser2@test.com
Group2 ManagedUser3@test.com
Group3 ManagedUser1@test.com
-
グループが存在しない場合は、スクリプトによってそのグループが作成されます。グループが存在する場合は、指定したデータに基づいてエントリが更新されます。
コラボレーションの作成または更新
-
このスクリプトでは、
CollaborationsCreationPath
パラメータに指定した.csv
ファイルを使用します。このファイルには、グループ名、フォルダID、コラボレーションロールが記載されています。 -
スクリプトでは、行ごとに、グループが存在するかどうか、そのグループがすでに対応するフォルダにコラボレータとして追加されていないかどうかを確認します。以下に例を示します。
GroupName
FolderId
CollaborationRole
Group1 1111111 editor Group2 1111111 viewer_uploader Group2 2222222 viewer Group3 1111111 viewer_uploader -
両方の条件を満たしている場合、
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>
Box CLI
スクリプトを使用するには、Box CLIをインストールし、構成する必要があります。これは、クイックスタートガイドの手順を実行することで行うことができます。ログインに使用するユーザーは、Boxのメイン管理者または共同管理者である必要があります。
スクリプトの構成
boxcli
GitHubリポジトリを複製してこの例のフォルダにcdコマンドで移動するか、examples
ディレクトリからファイルをダウンロードします。
git clone https://github.com/box/boxcli.git boxcli
cd boxcli/examples/Mass\ Groups\ \&\ Collaborations\ Update/
- グループとユーザーのメールアドレスのリストが含まれる
.csv
ファイルのパスを設定します。
$UserGroupAdditionPath = "./User_Group_Addition.csv"
* `UserEmail` is the primary email address for the user in Box.
* `GroupName` is the name of the group.
- グループとユーザーのメールアドレスのリストが含まれる
.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")
スクリプトの実行
- PowerShellコマンドを実行します。
pwsh
- スクリプトを実行します。
./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
: エラーのみが含まれています。