質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.23%

【GAS】共有設定されたフォルダ内のファイルに対して特定のユーザーを削除したい。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,349
退会済みユーザー

退会済みユーザー

Aフォルダ(a,b,c,dと共有)内のBファイルに対してa,bのみの共有設定としたい。

1. Aの共有設定はメールアドレスで設定されている
2. メールアドレスはGoogleAppsアカウントではない
3. ユーザーは全て編集者権限(Editor)

上記にてBファイルは親フォルダ(A)の共有設定が引き継がれるので、要求を満たすためにはc,dを共有から外す必要がある。
手動での上記設定は可能であることは確認済みで、これをGASにて実行したい。

var B = DriveApp.getFileById(__BファイルのID__);
B.removeEditor(__Email of c__);
B.removeEditor(__Email of d__);

上記はコードの極例ですが、実行後共有状態はa,b,c,dと共有のままで、c,dを外せません。
そもそもGASから要求を満たすことはできないということなのでしょうか。

A直下にBの他、C,D,E...とあり、Bのみ部分共有したいといった状況です。
ご助言、よろしくお願いいたします。


[追記]
1. 上記問題を確認するため、以下の様な簡単な検証を実施。
[検証用構成] Aフォルダ > Bファイル ※いずれも共有設定なし
[検証設定]
a. Aに対し編集者ユーザー(x、y、z)を追加(共有設定)
b. Aの編集者ユーザー(z)を削除
c. Aの編集者ユーザー(x、y)を削除(共有解除)
d. 一度共有設定を初期状態に戻し、Bに対し編集者ユーザー(x、y、z)を追加
e. Bの編集者ユーザー(z)を削除
f. の編集者ユーザー(x、y)を削除
※a実行後にb、b実行後にc、という流れで行いました。

[結果]
a. Bに継承
b. Bに継承
c. Bに継承(共有解除)
d. A(共有解除)、B(x、y、z)
e. A(共有解除)、B(x、y、z)
f. A(共有解除)、B(共有解除)

2. 上記よりGASによる共有設定処理、解除処理に問題がないことを確認。
その上で、GASの制限事項と考えられる問題について以下の設定にて追検証しました。
[検証用構成] Aフォルダ > Bファイル ※A(x、y)、B(x、y)
[追検証設定]
g. Bに対し編集者ユーザー(z)を追加
h. Aの編集者ユーザー(x)を削除
i. Aに対し編集者ユーザー(x)を追加
j. Bの編集者ユーザー(y)を削除
k. Bの編集者ユーザー(z)を削除
※新たにAフォルダと同階層にCフォルダを作成(zと共有)。
l. BをDとしてCへコピー
m. BをCへ移動

[結果]
g. A(x、y)、B(x、y、z) 共有設定反映
h. A(y)、B(y、z) Aの設定がBに影響
i. A(x、y)、B(x、y、z) Aの設定がBに影響
j. A(x、y)、B(x、y、z) 処理が反映されない(エラーなし)
k. A(x、y)、B(x、y) 共有設定反映
l. A(x、y)、B(x、y)、C(z)、D(z)コピー先の親フォルダの設定を継承
m. A(x、y)、B(z)、C(z) コピー先の親フォルダの設定を継承

3. 1.及び2.の結果より、以下のことが現状の結論として導かれます。

・親フォルダの共有解除状態(Private)を含む、共有グループ外のユーザー追加は可能。
・親フォルダが共有設定されている場合、共有グループに含まれるユーザーを削除できない。
・コピー及び移動(ムーブ)でも、元の共有設定は維持されない。

※GASの公式リファレンスやWEB上での情報など、時間をかけて探してみましたが
これら共有設定に関する内容や制限事項として明記されている情報に当たることができませんでした。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

有益な情報は見つからず、結局、納品用のスクリプトには親フォルダの共有設定を最低限にし、必要なユーザーを追加する、という解決になりました。

今回の質問に対する自己解決の結論としましては、検証結果3の通りということになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる