Mac にログインした時に Finder を表示せずに NAS のボリュームを自動マウントする
macOS Tahoe 時点の情報です。
Mac でログインした時に NAS のボリュームを自動でマウントしたい。
簡単なのは「System Settings (システム設定)」の「Login Items & Extensions (ログイン項目と機能拡張)」に NAS のボリュームを登録することだ。 しかし、この方法はマウントされると同時にボリュームの Finder が開いてしまう。毎回閉じる必要があって面倒だ。(以前は「隠す」オプションが存在したのだが、macOS Ventura あたりで廃止されてしまった。)
Gemini に相談したところ、AppleScript を使うと Finder を表示せずにマウントできたのでメモしておく。
自動マウントする AppleScript を作成
Mac の「Script Editor」アプリを起動して、以下のスクリプトを入力する。
foo-nas.local は NAS のホスト名 (IP アドレスでもいい)、bar-volume はボリューム名。環境に合わせて変更する。
set isConnected to false
set maxRetries to 10
set retryCount to 0
repeat until isConnected or retryCount >= maxRetries
try
do shell script "ping -c 1 -W 1000 foo-nas.local"
set isConnected to true
on error
set retryCount to retryCount + 1
delay 1
end try
end repeat
if isConnected then
mount volume "smb://foo-nas.local/bar-volume"
end if
保存するときの名前は何でもいい。ここでは「Mount NAS」とした。 「File Format」は「Application」を選択する。
このスクリプトでやっていること
- NAS に接続できるか
pingでチェックする- 外出時などネットワークに NAS が存在しない場合はマウントしない
- Wi-Fi に接続するまでのタイムラグを考慮し、10 回リトライする
- NAS に接続できる場合はボリュームをマウントする
AppleScript をログイン時に実行
「System Settings」の「Login Items & Extensions」を開いて、「Open at Login」に上記で作成した AppleScript を登録する。
これでログイン時に Finder が開くことなくボリュームがマウントされるはず。
補足: SMB の認証について
初回マウント時はユーザー名・パスワードの入力が求められることがある。 キーチェーンに認証情報を保存すると、入力をスキップできる。