これは、複数の人が問題を抱えているのを見てきた問題のようで、まだ効果的に解決されていません. 企業レベルで Google ドライブを維持するにはどうすればよいですか?
私は大学で学生プログラマーとして働いています。大学は Google Apps for Education に切り替えたばかりで、Google ドライブを使用して、学生がキャンパスのコンピュータ データにどこからでもアクセスできるようにしたいと考えています。
私たちのキャンパス システムは Labnet と呼ばれ、iSCSI と論理ボリューム マネージャーを使用して Windows 7 の新しいコピーを起動します。生徒がボックスを起動するたびに、まったく同じ新鮮な PC の匂いがします。このため、Google ドライブがレジストリに追加する oAuth キーは、ドライブ フォルダーとアプリ データ フォルダーと同様に、再起動時に吹き飛ばされます。これらはすべて C ドライブにあるようです。
初めてキャンパスでドライブをセットアップするユーザー向けにラッパーを作成しました。これにより、デフォルトのインストール場所がネットワーク ドライブにリダイレクトされ、sync_config.db ファイルと snapshot.db ファイルを含むアプリ データ フォルダーがネットワーク バックアップにコピーされ、ドライブ キーが次の場所にエクスポートされます。ネットワークドライブ。ログイン時に、バックアップのスクリプト チェックを行い、それらをすべて C:\users\admin\appdata\local\drive に復元し、oAuth トークンをレジストリにインポートします。
理論的には、問題なく動作します。実際には、そのとおりです。セットアップは、すべてのマシンがまったく同じハードウェアを実行し、同じイメージ ファイルを起動している 1 つのラボで正常に機能します。キーとアプリデータを、わずかに異なるハードウェアとソフトウェアを実行しているラボにインポートしようとすると、Error -2146893813 CryptUnprotectData, 'Key not valid for use in specified state'.
またはinvalid data
.
とにかくoAuthがマシンのハードウェアまたはソフトウェアに関連付けられているとは思いませんでしたが、そうであるようです.
ログイン時に常にドライブを設定しなくても、ユーザーがデータにアクセスできるような方法でこのデータを永続化する方法を知っている人はいますか?
ここに完全なコードを添付します。これは標準的なコード ブロックを超えるものなので、ここにリンクを示します。
GoogleDriveLabnetConfig.py
デフォルトのドライブの場所を H: ドライブに変更するカスタム ラッパーです。
https://www.dropbox.com/s/fb27936jmm87w0l/GoogleDriveLabnetConfig.py
MUNGoogleDriveDaemon.py
C: と H: の間でユーザーの Appdata をコピーし、実際に Google ドライブを起動するラッパーです。スナップショットがバックアップされないため、ユーザーがこのデーモンとは無関係に Google ドライブを起動することは許可されていません。
https://www.dropbox.com/s/z32t3bjluwl0wf5/MUNGoogleDriveDaemon.py
誰かがこれを解決できる場合は、自分のセットアップでコードを自由に再利用してください。
編集: 起動時に各コンピューターのハードウェアとソフトウェアをチェックし、特定のハードウェア/ソフトウェアのペアリング用に生成されたキーをインポートすることは可能かもしれませんが、その結果、ユーザーはラボを変更するたびに資格情報をレンタルする必要があり、古いラボで再びイメージを変更します。非常にエレガントなソリューションではありません。