Applescript

2013.06.04

Mac起動時に環境によって違うNASを自動マウント

この記事は3974日前に投稿されたものです。

マウントさせるだけならいくつかありますが・・・。

起動時に自動マウントさせる:ログイン項目に追加。

1 Finderメニューの「移動」→「サーバーへ接続」でマウントさせておく。

2 システム環境の「ユーザーとグループ」

3 ログイン項目で「+」ボタンで先ほどマウントしたボリュームを追加。

起動時に自動マウントさせる:Applescriptで自動マウント

方法としては、Applescriptでマウントする方法。

tell application "Finder"
    delay 10
    activate
    mount volume "afp://192.168.xxx.xxx/xxxxx"
end tell

保存してログイン項目に追加すればいいんだけど、普通にマウントしてから直接、追加のほうが楽ちん。

ただ、どちらの方法もMBAやMBPなどでいろんな環境で使用する場合、エラーが出てウザい!
※例えば、事務所のNASを設定してたら、自宅では当然エラーが出ます。

というわけで、Applescriptでどうにかできないかと、いろいろ調べてみました。

環境によってマウントさせるボリュームを変える

考え方としては、アクセスポイントで判断して、マウントするボリュームを選べばいいのでは??というところから始めましたが、Applescript初心者な僕にはハードルが高すぎる!!
そこで・・・必死に探しました。

Applescriptの穴様のスクリプトを使用させていただきました!
それに以下のマウント用のスクリプトをくっつけてごにょごにょして・・・ログイン項目に追加!!

set wifiOffice to "事務所のアクセスポイント名"
set wifiHome to "家のアクセスポイント名"

set volOffice1 to "smb://xxxxx1"  --事務所のNAS1のパス
set volOffice2 to "smb://xxxxx2"  --事務所のNAS2のパス

set volHome1 to "smb://yyyyy1"  --家のNAS1のパス
set volHome2 to "smb://yyyyy2"  --家のNAS2のパス

set volumeOffice to {volOffice1, volOffice2}
set volumeHome to {volHome1, volHome2}

tell application "Finder"
	repeat 5 times
		set wifiName to getAirportNetworkName() of me
		delay 2
		if not wifiName is "" then
			exit repeat
		end if
	end repeat
end tell
if wifiName is wifiOffice then
	repeat with curItem in volumeOffice
		delay 5
		try
			mount volume curItem
		end try
	end repeat
else if wifiName is wifiHome then
	repeat with curItem in volumeHome
		delay 5
		try
			mount volume curItem
		end try
	end repeat
else if wifiName is "" then
	display dialog "Wi-Fi接続がされていません。"
end if

まとめ

なかなか快適です!!プリンターの切り替えも自動でできますね。きっと!やってませんが。