I was trying to unshare Files and Folders which are in the Google Drive using scripts mentioned in these links Google Drive Link Unshare https://github.com/HR/google-drive-unshare/blob/unshare-all/Code.gs
Execution Logs shows
11:16:53 AM Notice Execution started 11:16:53 AM Notice Execution completed
But still able to see the Folders and Files are still showing shared.
What exactly I am missing here?
Please help.
regards, Deepak
// create a Google Document
// Tools / Script Editor
// paste this in
// update line 13 and save
// hit play to run. you may have to run several times as the script will die after 5 or 6 minutes.
function findSharedFolders() {
// https://developers.google.com/apps-script/reference/drive/drive-app
// https://developers.google.com/drive/web/search-parameters
// http://stackoverflow.com/questions/21227771/how-do-i-script-google-drive-to-unshare-all-subfolders-and-files-given-a-folder
// https://productforums.google.com/forum/#!topic/drive/p3LZQnRNB24
var email = "[email protected]"; // <<<<< INSERT THE UNDESIRED EMAIL ADDRESS HERE
var body = DocumentApp.getActiveDocument().getBody();
body.appendParagraph(email).setHeading(DocumentApp.ParagraphHeading.HEADING1);
var folders = DriveApp.searchFolders("'"+email+"' in writers"); while (folders.hasNext()) unshare_(folders.next(), body, email);
var files = DriveApp.searchFiles( "'"+email+"' in writers"); while ( files.hasNext()) unshare_( files.next(), body, email);
}
function unshare_(file, body, email) {
// Logger.log(file.getName());
var para = body.appendParagraph(file.getName());
try { file.removeEditor(email); }
catch (e) { para.setLinkUrl(file.getUrl()); para.appendText(" (" + e + ")"); }
}
/**
* Google Apps Script to completely unshare files/folders with someone and make
* a copy of them
*/
// Enter the email of the user to remove
// Leave blank if you want to remove all sharees
var userEmail = '[email protected]'
// Leave blank if you want to unshare all folders/files
var folderId
// Whether to make a copy of the folder/files not owned
var copyNotOwned = false
function main () {
var folder
if (folderId) {
// Unshare just the folder (incl. subfolders/files)
folder = DriveApp.getFolderById(folderId)
unshareItems(folder, userEmail)
} else {
// Unshare all files/folders
folder = DriveApp.getRootFolder()
unshareItems(folder, userEmail)
}
if (copyNotOwned && userEmail) {
copyUnownedItems(folder, userEmail)
}
}
function unshareItems (folder, email) {
unshare(folder, email)
var query = `'${email}' in writers or '${email}' in readers`
// Unshare all the files in the folder
var files = email ? folder.searchFiles(query) : folder.getFiles()
while (files.hasNext()) {
unshare(files.next(), email)
}
// Unshare all the subfolders
var folders = email ? folder.searchFolders(query) : folder.getFolders()
while (folders.hasNext()) {
unshare(folders.next(), email)
}
}
function unshare (item, email) {
try {
if (email) {
// Unshare with email
item.removeEditor(email)
Logger.log('Unshared ' + item.getName())
return
}
// Unshare with all
var sharees = [...item.getEditors(), ...item.getViewers()]
sharees.forEach(function (sharee, index) {
item.removeEditor(sharee.getEmail())
Logger.log(`Unshared ${item.getName()} with ${sharee.getEmail()}`)
})
} catch (e) {
Logger.log('Unsharing error: ' + e)
}
}
function copyUnownedItems (folder, email) {
// Copy unowned files
var files = folder.searchFiles("'" + email + "' in owners")
while (files.hasNext()) {
let file = files.next()
// Make a copy of the file
let parent = file.getParent().next()
file.makeCopy(file.getName(), parent)
Logger.log('Copied unowned file ' + file.getName())
parent.removeFile(file)
Logger.log('Removed unowned file ' + file.getName())
}
// Copy unowned folders (incl. the files therein)
var folders = folder.searchFolders("'" + email + "' in owners")
while (folders.hasNext()) {
let unownedFolder = folders.next()
let parent = unownedFolder.getParent().next()
let ownedFolder = parent.createFolder(unownedFolder.getName())
Logger.log('Copied unowned folder ' + unownedFolder.getName())
// Copu unowned folder files
let folderFiles = unownedFolder.getFiles()
while (folderFiles.hasNext()) {
ownedFolder.addFile(folderFiles.next())
}
// Copu unowned folder subfolders
let folderFolders = unownedFolder.getFolders()
while (folderFolders.hasNext()) {
ownedFolder.addFile(folderFolders.next())
}
parent.removeFolder(unownedFolder)
Logger.log('Removed unowned folder ' + unownedFolder.getName())
}
}type here