【Windows / rclone】OneDriveをWindowsのネットワークドライブとしてマウントする

変更履歴

Rev. 0.7 : 2024年05月07日
新規作成

1 はじめに

本記事は、WindowsにおいてMicrosoft OneDrive(以降、単に“OneDrive”と記す)を、
コマンドベースを中心としてアクセスする方法を示すものです。

Windowsで、コマンドプロンプトPowerShellからコマンドベースで
OneDriveにアクセスできる ようにするには“rclone”というツールを使います。
本記事では、この“rclone”というツールの使い方を説明します。

OneDriveのファイルやフォルダーを
コマンドプロンプトPowerShellなどからコマンドベースでアクセスできるようになると、
バッチファイルに利用することができるようになります。

Webベースでは難しかった、ファイルのアップロードやダウンロード、また更新などの操作を
自動化することが可能になるということです。

バッチファイルをタスクスケジューラーに登録すれば、
OneDriveのファイル更新も定期的に行えるようになります。

ちなみに、rclone(rsync for cloud storage)は、 40以上のクラウドストレージで、
コマンドライン環境よりファイルの操作ができるようになるオープンソースソフトウェアです。
Microsoft OneDriveの他にも、 Google DriveAmazon S3
Dropboxなどとも連携できます。

rcloneを使うことで、クラウドストレージに対して以下が可能になります。

・ ファイルのコピー
・ フォルダーの同期
・ ローカルからクラウドストレージへファイルの移動
・ クラウドストレージをネットワークドライブとしてローカルにマウント

2 rcloneのインストールとコンフィギュレーション(設定)

2.1 インストール

本記事で示す以外の他のインストール方法については、本家の下に示すページをご覧ください。

Install | RCLONE

2.1.1 rcloneのインストール

rcloneは、Windowsでは「Windowsパッケージマネージャー」を使用したインストール方法が
用意されています。

PowerShellから、下に示すコマンドを実行してインストールします。

PS C:\> winget install Rclone.Rclone

2.1.2 WinFsp(Windowsファイルシステムプロキシ)

WindowsでOneDriveを特定のフォルダーやネットワークドライブとして
mount”することを予定している場合は、
関連ソフトウェアとして”WinFsp”も 合わせてインストールしておく必要があります。

WinFspは、下に示すURLからダウンロードできます。

https://winfsp.dev/rel/

2.2 OneDriveアクセストークン

rcloneOneDriveにアクセスするためには、OneDriveのアクセストークンが必要です。

OneDriveのアクセストークンが未取得であれば、
コンフィグレーションの最後の方のステップでアクセストークンを取得するために、
WebブラウザでOneDriveサインインが求められます。

2.3 Configuration(コンフィギュレーション)

rcloneにおけるOneDriveのコンフィギュレーションについては、
下に示すページに詳細が記されています。

Microsoft OneDrive / Configuration | RCLONE

2.3.1 コンフィギュレーションの開始

【configの開始】
コンフィギュレーションは、下に示すように“config”オプションを付けてrcloneを起動します。
PS C:\> rclone config
【configファイルのパス】
configファイルは、デフォルトでは次のパスに作成されます。
$env:APPDATA\rclone\rclone.config

$env:APPDATA”で表される上位パスは、
PowerShellにおいて“echo $env:APPDATA”コマンドで確認することができます。

2.3.2 リモートストレージの名前

初めてコンフィギュレーションを行なう場合は、
No remotes found, make a new one?”と聞かれます。
以前コンフィユレーション立ち上げたけど何も設定しなかった場合は、
図2.3-1のように表示されるのかもしれません。

最初の問い合わせに、「New remote」の“n”を入力します。
name>”の問い合わせに、リモートストレージの名前を入力します。
ここで入力した名前は、以降Windowsからアクセスする際の名前となります。

2.3.3 リモートストレージの種類

リモートストレージの名前を設定すると、
オンラインストレージのサービス名がずらっと表示されます。
Storage>”では、「OneDrive」を示す番号である99を入力します
(何番になるかは、rcloneのバージョンによって異なるようです)。

2.3.4 クライアントID、クライアントシークレット

client id>”、“client secret>”では、何も入力せずにENTERキーを押下します。

2.3.5 リージョン

region>”では、「[Microsoft Cloud Global」の“1”を選択します。

2.3.6 advanced config

こちらは、デフォルトとして推奨されている「No」を選択します。

2.3.7 OneDriveの認証とアクセストークンの取得

Webブラウザを通じて、連携先サービスの認証をします。
y”を入力すると認証用のブラウザが起動して、
認証完了後OneDriveのアクセストークンが取得されます。

OneDriveアクセストークンの取得が完了すると、 図2.3-7のような表示が出ます。

Webブラウザが起動しない時は、手動でWebブラウザを立ち上げ、
rcloneコンフィギュレーション・ログ中に表示されている“http://127.0.0.1:53682~”のURLを
開きます。

コンフィギュレーション中に、OneDrive認証を行なわずアクセストークンを取得しなかった場合、
後に“rclone authorize“リモートストレージ名”とアクセストークンを取得して、
configファイルに追加編集する方法もあります
(“リモートストレージ名”は、 コンフィギュレーション中で決めた任意のデバイス名です)。

この時、configファイルのフォーマットの知識が必要ですが、
見ていただければすすぐにお分かりになると思いますので、
configファイルのフォーマットの説明は本記事では割愛します。

2.3.8 接続タイプ

OneDrive Personal or Business」を示す“1”を入力して次へ。

2.3.9 使用するドライブの選択

使用するドライブを選択します。
複数の契約をされている方はIDが複数表示されているかもしれませんが、
1つしか表示されていなければ空欄のままENTERキーを押下すればOKです。

2.3.10 コンフィグレーション・データの保存

コンフィギュレーションが完了すると、図2.3-10に示すように
configファイルに保存する内容が表示され、保存することの確認が求められます。
y/e/d>”で“y”を入力して設定を保存します。

  最後に「Quit config」の“q”を入力して、コンフィギュレーションを終了します。

3 rcloneの使い方

本章では、rcloneの使い方を簡単に紹介します。
詳しくは、次のページをご覧いただければと思います。

Rclone Commands | RCLONE

3.1 rcloneの基本的な使い方

rcloneの基本的な使い方は、下に示すようになります。

Windowsでのrcloneのコマンドは、コマンドが完了するまで次のコマンドを受け付けられません。
Windowsでは“--daemon”オプションは無効となっており、
WindowsのサービスやLinuxデーモンのようにバッググラウンドで動作することはできません。

下に、いくつかのコマンド使用例を示します。

1) クラウドストレージpathフォルダーの一覧を表示する。
PS C:\> rclone ls remote:path
2) “/local/path”のファイルをクラウドストレージのpathフォルダーにコピーする。
PS C:\> rclone copy /local/path remote:path
3) “/local/path”のローカルディレクトリを、
クラウドストレージのpathフォルダーに同期する。
PS C:\> rclone sync --interactive /local/path remote:pat

3.2 rcloneの主なコマンド

rcloneのコマンドは、Linuxのbashにほぼ同じです。

表3.2-1によく使われるだろうと思われるコマンドを示します。

すべてのコマンドについては、下に示すページでご確認ください。

Rclone Command

4 OneDriveのマウント

WindowsでOneDriveを特定のフォルダーやネットワークドライブとして“mount”するには、
WinFsp”がインストールされていることが必要です。

WindowsでのOneDriveマウント詳細については、次のURLをご覧ください。

rclone mount / Installing on Windows | RCLONE

マウントしたフォルダーやネットワークドライブは、デフォルトでは“--read-only”です。
フォルダーやネットワークドライブへ書き込みを行う場合、またファイルを変更する場合は、
rcloneに次のオプションを付けて実行します。

--vfs-cache-mode writes
or
--vfs-cache-mode full

4.1 特定のフォルダーへのマウント

書き込み可能なOneDriveフォルダーのWindowsフォルダーへのマウントは、 下に示すように“rclone mount”を起動します。

Windowsフォルダーは、未使用のフォルダーパスでなければなりません。

rclone mount <remote> :<from_folde>   C:\<to_folder>   -- vfs-cache-mode writes

4.2 OneDriveのネットワークドライブへのマウント

OneDriveフォルダーのWindowsネットワークドライブへのマウントは、
たとえば<target_drive>ドライブにマウントする場合、
下に示すよう“--network-mode”オプションを付けて“rclone mount”を起動します。

rclone mount <remote> :<from_folder>   <target_drive>:   --network-mode
--vfs-cache-mode writes

例として、図4.2.1に示すようなフォルダー構成のOneDriveを マウントした時のWindowsの様子を、
図4.2-2にマウントの開始、 図4.2-3にWindowsでのOneDriveフォルダーの一覧表示を示します。

4.3 OneDriveのアンマウント

OneDriveのアンマウントは、マウントを行ったシェルにおいて“CTRL-C”を打鍵して、
rclone”を強制終了することで行います(なんかスマートじゃない。 正式な方法があるのかも?)。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ