NetDrive の nd3cmd — コマンドラインからドライブマウントをスクリプト化

読了目安 6 分 feature windows cli
Morgan
MorganStaff Engineer
NetDrive の nd3cmd コマンドラインツールは、GUI を開かずにドライブのマウント・アンマウント・状態確認ができる。スケジュールタスクや CI エージェント、リモート管理に有用。

40 台の Windows Terminal Server セッションを管理する IT 管理者は、共有ドライブをマウントするためだけに、そのすべてで NetDrive の GUI をクリックして回りたくはない。夜間無人で動くビルドエージェントに至っては、そもそも GUI をクリックすることすらできない。どちらのケースも、NetDrive のドライブマネージャーが画面上で提供しているのと同じこと——マウント、アンマウント、状態確認——を、スクリプトから実行できる形で必要としている。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

GUI をクリックする代わりにマウントを自動化する

NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。

  • スクリプトからドライブのマウント・アンマウント・状態照会ができる
  • スケジュールタスク、ログインスクリプト、CI ビルドエージェントに組み込める
  • GUI のドライブマネージャーの代わりではなく、並行して動作する
WindowsmacOS
NetDrive をダウンロード →

無料トライアル。永久ライセンスとサブスクリプションプランあり。

コマンドラインでの操作が必要になる場面

NetDrive のドライブマネージャーは、Add Drive をクリックし、プロバイダーを選び、リストにカードが現れるのを見る——という操作を前提にしている。これは、人がマシンの前に座って 1 つか 2 つのドライブを設定する分には申し分ないフローだ。しかし、同じマウント作業を誰もいない状態で何十回も行う必要が出てくると破綻する。マルチユーザーの Terminal Server の各セッションでログイン時に行う場合、ビルドエージェント上の CI ジョブごとに開始時に行う場合、あるいは管理者が SSH や RDP でしかアクセスせず GUI を起動する気もないリモートマシンの場合などだ。

NetDrive はまさにこの用途のために、バージョン 3.8.921(2019-09-21)で nd3cmd を追加して以来、コマンドラインツールを提供してきた。これは Microsoft Office のファイルロックと macOS のダークモードが導入されたのと同じリリースだ。

NetDrive のドライブマネージャーに複数のクラウドアカウントがドライブレター付きでマウントされている様子

nd3cmd が扱う範囲

nd3cmd は、GUI のドライブマネージャーと同じ中核機能——設定済みドライブのマウント、アンマウント、現在接続されているかどうかの照会——をカバーするが、PowerShell やバッチスクリプト、あるいは対象マシン上で構成管理ツールが実行する何であれから呼び出せる。これは、よくある自動化のユースケースで手動のクリック操作を置き換えるには十分だ。ログインスクリプトの一部として共有チームドライブをマウントする、スケジュールされた再起動の前にきれいにアンマウントする、マウントが立ち上がっていることに依存するジョブが実際の処理を始める前にドライブの状態を確認する、といった具合だ。

正確なフラグや構文はリリースごとに変わってきているため、この記事では特定マシンにインストールされているものと一致しない可能性のあるコマンドラインを推測することはしない。NetDrive サポートフォーラムには、実行中のバージョンに対応した最新の nd3cmd リファレンスが用意されている。

ドライブが GUI ではなくスクリプト経由でマウントされた場合でも、Windows エクスプローラー上の同じファイル状態オーバーレイアイコンは、確認のためにログインした人に対して変わらず表示される——スクリプト経由かどうかで別の状態を突き合わせる必要はない。

マウント済みクラウドドライブの同期状態を示す Windows エクスプローラーのファイル状態オーバーレイアイコン

「存在する」から「動くスクリプト」への道のり

  1. インストール済みの NetDrive バージョンに nd3cmd が同梱されているか確認する — 別途ダウンロードするものではなく、デスクトップクライアントにバンドルされている。
  2. そのバージョン用の最新コマンドリファレンスを サポートフォーラム から取得する。古い記事や別マシンのインストールの構文を流用しないこと。
  3. マウント・アンマウント・状態確認の各コマンドを、まずテスト用ドライブに対して手動で実行し、リファレンスの記述どおりに動くことを、何かがそれに依存する前に確認する。
  4. 確認済みのコマンドを、必要とするログインスクリプト・スケジュールタスク・CI ステップに組み込み、マウントを介して読み書きするジョブの前段でドライブ状態確認をプリフライトステップとして行う。

ターミナルセッションからドライブのマウント状態を確認している様子

より大きな構成の中での位置づけ

ビルド対象のブランチに応じて異なる S3 バケットをマウントする CI パイプラインは、この自然な適用例だ——DevOps S3 Test Fixtures With NetDrive で扱われているのと同じパターンで、ここでは人が毎回手作業でバケットを選ばずにマウントが行われる必要がある。管理者側では、多数の同時ユーザーセッションを扱う Windows Terminal Server 環境も同様の恩恵を受ける。各ユーザーに自分で設定させる代わりに、ログイン時にそれぞれのドライブをマウントするのだ——このようなマルチセッション展開については NetDrive on Windows Server 2022 を参照してほしい。いずれの場合も、nd3cmd は、人が普段どおりログインするマシンにおける起動時自動マウント機能の代わりではなく、それと並んで存在するものだ。

まとめ

nd3cmd は、NetDrive の GUI がすでに提供している操作をスクリプトから呼び出せる形にするものであり、マウントをスケジュールに沿って、ビルドエージェント上で、あるいは何十もの無人セッションにまたがって一斉に行う必要が生じた瞬間に真価を発揮する。スクリプトを組む前に、インストール済みバージョンの正確な構文を サポートフォーラム で確認し、人が普段どおりログインする環境向けの GUI 側自動化オプションについては Auto-Mount on Boot in NetDrive を参照してほしい。

— Morgan, NetDrive