我一直在使用 GAM 在我的工作区域中查找所有谷歌站点驱动器文件,现在有一个这样的地址列表:
我正在尝试找到一种方法来定位 drive google 站点文件的已发布 URL,但我不确定是否可行。询问驱动器文件时,GAM 不提供信息。我对任何解决方案都感兴趣,而不仅仅是基于 GAM。
使用 GAM 无法在您的工作区中找到所有谷歌云端硬盘文件。
但是,使用谷歌Apps脚本和DriveApp类可以轻松实现。通过使用
getFiles()
功能(您可以在 here 阅读更多相关信息),您可以在 Google Drive 中检索所有文件的列表。然后你可以很容易地提取这些文件的 url,就像下面的例子一样。
function myFunction() {
var iterator = DriveApp.getFiles();
while (iterator.hasNext()){
var file = iterator.next();
console.log(file.getUrl());
}
}
似乎无法从源驱动器文件中找到站点的已发布 URL。
目前无法使用 GAM 获取站点的已发布 URL。 GAM 依赖于 Google 的 API,没有一个可用于新站点:
站点 API 目前仅支持经典站点。这些 API 不支持新站点。 -- https://support.google.com/a/answer/7181011?hl=en
尽管谷歌一再保证新站点将能够完成经典站点所做的一切,但七年来这是许多未填补的空白之一。
如果您只对具有“自定义 URL”的网站感兴趣,可以在 Google Workspace 管理员中的“应用”→“Google Workspace”→“网站”→“自定义 URL”下轻松查看这些网站:
如果你想了解所有站点,我知道没有好的解决方案。一种可能的解决方法是让自己使用 GAM 访问每个站点,然后手动检查每个站点或使用某种 RPA 或浏览器脚本工具。
在你开始这条路之前,生成你域中所有站点的列表并将其导出到 Google 表格(结果的数量可能会帮助你决定在多大程度上追求这个想法):
gam all users show filelist todrive query "mimeType = 'application/vnd.google-apps.site'"
提示: 要缩小此命令和此处列出的所有其他 GAM 命令的范围,您可能需要将
all users
替换为 ou "OU/Sub-OU"
或者您可以通过将用户子集添加到名为 sites-audit 的新组来审核一部分用户[email protected] 并在整个过程中使用group sites-audit-users
。
如果您决定继续,高级步骤是:
gam create group name "Sites Auditor - April 2023" email [email protected]
gam update group [email protected] add owner user [email protected]
gam all users show filelist id title alternateLink query "mimeType = 'application/vnd.google-apps.site'" | tee sites.csv | gam csv - gam user ~Owner add drivefileacl ~id group [email protected] role editor
注意: 这使用
tee
将输出通过管道传输到下一个 GAM 命令 和 将其保存到当前目录中名为 sites.csv
的文件中。 Windows 用户可能需要自行安装 tee
版本才能使此命令生效。
所有站点都将在
sites.csv
中列出。您可以使用 alternateLink
列中的 URL 打开每个站点的编辑界面(手动或以编程方式)。
如果手动检查,请打开“发布”下拉菜单下的“发布设置...”屏幕:
如果使用某种浏览器脚本或 RPA 工具(例如 Selenium、UIPath 或 Power Automate)进行检查,请注意,除了“正常”URL 之外,某些站点可能还有一个或多个自定义 URL:
可选但彻底: 删除组将有效地删除所有站点的权限,但已删除组的 ACL 条目将保留在每个文件中。如果您希望更彻底,您应该首先使用我们之前保存的 CSV 从每个文件中删除 Auditor 组权限:
gam csv sites.csv gam user ~Owner delete drivefileacl ~id group [email protected]
gam delete group [email protected]