2

这似乎是一个问题,我已经看到多人遇到问题并且尚未有效解决。如何在企业级别维护 Google Drive?

我在我的大学担任学生程序员,他们刚刚切换到 Google Apps for Education,并希望使用 Google Drive 允许学生在任何地方访问校园计算机数据。

我们的校园系统称为 Labnet,它使用 iSCSI 和逻辑卷管理器启动 Windows 7 的新副本。每次学生启动一个机器时,它都会散发出完全相同的新鲜 PC 气味。正因为如此,谷歌驱动器添加到注册表的 oAuth 密钥在重新启动时被吹走,驱动器文件夹和应用程序数据文件夹也是如此,所有这些都像在 C 驱动器上一样。

我们为初次使用的用户构建了一个包装器,用于在校园内设置 Drive,它将默认安装位置重定向到网络驱动器,并将包含 sync_config.db 和 snapshot.db 文件的应用程序数据文件夹复制到网络备份,并将驱动器密钥导出到网络驱动器。登录时,我们有一个脚本检查备份,将它们全部还原到 C:\users\admin\appdata\local\drive,然后将 oAuth 令牌导入注册表。

从理论上讲,它工作正常。在实践中,它是如此。该设置在一个实验室中运行良好,所有机器都运行完全相同的硬件并启动相同的映像文件。当我们尝试将密钥和 appdata 导入运行略有不同硬件和软件的实验室时,我们得到Error -2146893813 CryptUnprotectData, 'Key not valid for use in specified state'.or invalid data.

我不认为 oAuth 无论如何都与机器的硬件或软件相关联,但看起来确实如此。

有没有人知道一种以允许用户访问数据而无需在登录时不断设置驱动器的方式持久保存这些数据的方法?

我将在此处附上完整的代码。它不仅仅是标准的代码块,所以这里有一个链接。

GoogleDriveLabnetConfig.py是将默认驱动器位置更改为 H: 驱动器的自定义包装器。 https://www.dropbox.com/s/fb27936jmm87w0l/GoogleDriveLabnetConfig.py

MUNGoogleDriveDaemon.py是一个包装器,它在 C: 和 H: 之间来回复制用户的 Appdata,并实际启动 Google Drive。我们不允许用户独立于该守护程序启动 Google Drive,因为不会备份快照。

https://www.dropbox.com/s/z32t3bjluwl0wf5/MUNGoogleDriveDaemon.py

如果有人可以帮助解决这个问题,请随时在您自己的设置中重用代码。

编辑:可以在启动时检查每台计算机的硬件和软件并导入为特定硬件/软件配对生成的密钥,但这将导致用户每次更改实验室时都必须租​​用凭据,如果我们再次在旧实验室中更改图像。不是一个非常优雅的解决方案。

4

1 回答 1

0

长镜头,但尝试检查机器上的系统时间。Oauth 要求所有客户端和服务器都具有同步时间。

于 2012-08-18T06:07:20.103 回答