macOS 13 Venturaでは古いmacOSやnetworksetupコマンドでネットワーク設定を素早く切り替えられる「ネットワーク環境」を作成しておくと、Appleメニューに[場所]メニューが表示されるようになっています。詳細は以下から。
Appleは日本時間2022年10月にリリースした「macOS 13 Ventura」でシステム環境設定をSwiftUIで「システム設定」として刷新したさいに、職場や自宅などで使用するネットワークポートの順位を素早く変更できるよう、予めロケーションを設定しておける「ネットワーク環境 (Network Locations)」機能を廃止し、
macOS 13 Venturaでは、ネットワーク環境機能のベースとなる“scselect”と“networksetup”コマンドは残されているものの、GUIはシステム設定から削除されていますが、macOS 12 Montereyより前のmacOSでネットワーク環境を設定している場合は、Appleメニューに「場所 (Locations)」メニューが追加されるようです。
場所メニュー
AppleはmacOS 13 Venturaリリース後にネットワーク環境のサポートページをアップデートし、この機能がmacOS 12 Monterey以前で利用できた機能であることを追記していますが、
macOS Monterey 以前では、ネットワーク環境機能を使って、さまざまなネットワーク設定をまとめてすばやく切り替えることができます。
ネットワーク設定一式 (ネットワーク環境) をまとめて切り替えられると、以下のような状況で便利です。
- 職場と自宅で同じ種類のネットワーク (Ethernet など) を使っているが、職場で使っている設定のままでは、自宅で同じ種類のネットワークに Mac を自動的に接続できない。
Mac でネットワーク環境を使う方法 – Apple support
macOS 13 Venturaでは、そのmacOS 12 Monterey以前のmacOSでネットワーク環境を設定しておくと、Venturaアップグレード後にAppleメニュー下に[場所]というメニューが追加され、引き続き[場所]メニューからネットワーク環境を素早く切り替えることが可能になっています。
また、試してみたところ、この[場所]に表示されるネットワークロケーションは”networksetup -createlocation”で作成したネットワーク環境設定(場所)も反映されるので、Venturaでも引き続きCUIベースでネットワーク環境機能を作成&GUIで切り替えることは可能のようです。
networksetup -createlocation Ventura
- macOS 13 Venturaの新機能まとめ (準備中)
コメント
おおやったぜ!
まだVentura入れてないけど。
ネットワーク環境の設定は、
/Library/Preferences/SystemConfiguration/preferences.plist
に納められていて、Monterey以前もVenturaも同じ書式のplistです。
Venturaで新規作成すると「Sets」の項目が1つで「UserDefinedName」のStringsが「Automatic」となっています。
Monterey以前&Montereyから更新した場合は「Sets」の項目が設定していた数だけ存在し、「UserDefinedName」のStringsはそれぞれの設定名称となっています。
Monterey以前の環境が存在するなら、
/Library/Preferences/SystemConfiguration/preferences.plist
をVentura環境にsudo cp -pで更新&システム再起動すれば「場所」問題は解決します。
Venturaクリーンインストール環境で「場所」プリセットを新規に追加する問題は、現在検証中です。
追記です。
Venturaでネットワーク設定からWiFiが独立したために、Monterey以前からのプリセット(「場所」)設定が引き継がれても、WiFiの設定は制御できない模様です。
従って、引き継いで意味があるのは有線接続のみのようですが、ケースによってネットワーク設定を変えたいのはEthernet位だと思うので、「場所」が使えるようになってもかなり限定的な効果になりそうです。
とくに「場所」で切り替えるとMontereyまでのプリセットでWiFiがオンでも、強制的にWiFiが切られてしまうので、少し実用的ではないようです。
Venturaでの設定を何らかの方法で保存切替が出来ない以上は、使えても有線切替前提なので、IP設定類の切替がメインで、Thunderbolt/USB-CドックのEthernetと本体Ethernetを切り替える場合は、Ethernet機器ごとの設定はそれぞれ保存されるので不要・・・という感じなのでしょう。
上の者です。
どうやらPlist Editor系を使用し、1つずつの「Automatic(自動)」設定をコピペで追記していくことで、「場所」及びWiFiも含めたプリセットを作ることが可能なようです。
以下に、まずは「返信」扱いで手順を書きます。
返信で〜と書きましたが、投稿が表示されないと返信できないので、この投稿に書きます^^;
作業手順ですが、
まずは単独のネットワーク設定を行います
↓
すると
/Library/Preferences/SystemConfiguration/preferences.plist
の
Sets
の中に
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
として各種設定群と
UserDefinedName
Automatic
が格納されます
↓
/Library/Preferences/SystemConfiguration/preferences.plist
を
/Library/Preferences/SystemConfiguration/preferences_自宅.plist
のように任意名称でリネームして保護します
この場合アクセス権が崩れても問題ないので普通のリネーム作業でOKです
↓
ログアウト&ログインします(再起動は不要なようです)
↓
再びシステム設定から(別のセットになる)単独のネットワーク設定を行うと
/Library/Preferences/SystemConfiguration/preferences.plist
が新しくまた作られます
↓
その中の
Sets
の中に、先ほどとは異なる
D96D6DD0-F962-4402-8CFC-369E15D5B992(のような文字列)
として各種設定群と
UserDefinedName
Automatic
が格納されます
↓
先ほどと同じように
/Library/Preferences/SystemConfiguration/preferences.plist
を
/Library/Preferences/SystemConfiguration/preferences_会社.plist
のように任意名称でリネームして保護します
↓
この流れを繰り返し、プリセットの「もと」の.plistファイルを用意していきます
↓
基本的に1つは、自由に書き換えられる「自動(Automatic)」プリセットが必要なので、
全てのpreferences.plistをリネーム後にログアウト&ログインして作られる新しい
/Library/Preferences/SystemConfiguration/preferences.plist
はそのまま生かし、このpreferences.plistを直接編集します
↓
編集の保存には
/Library/Preferences/SystemConfiguration/
と
/Library/Preferences/SystemConfiguration/preferences.plist
のアクセス権の変更が必要ですが
諸々の理由で編集の「保存を行う直前」にアクセス権の変更を行います
↓
さて
/Library/Preferences/SystemConfiguration/preferences.plist
をPlist Editor等で開くと
Sets
に
8CDB9B64-6111-413E-BBDB-D666974AC057(のような文字列)
が1つ格納されているはずです
この
Sets
に追記してプリセットを増やしていきます
↓
次にリネームして保護していたpreferences.plist(ex.preferences_自宅.plist)
をPlist Editorアプリで開き
Sets
に格納されている
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
の内容を丸ごとコピーします
↓
そして、既にPlist Editorアプリで開いている
/Library/Preferences/SystemConfiguration/preferences.plist
の
Sets
内に(丸ごと)ペーストし追記します
↓
この時点で
/Library/Preferences/SystemConfiguration/preferences.plist
の
Sets
内には
最初からある
8CDB9B64-6111-413E-BBDB-D666974AC057(のような文字列)
と、追記した
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
の2つのセットが存在するはずです
↓
次にペースト追記した
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
の中の
UserDefinedName
Automatic
を
UserDefinedName
自宅(のような任意の名称)
に変更します
この名称が「場所」メニューで表示されるプリセット名になります
↓
この作業を用意していたプリセットの「もと」の数だけ繰り返し、
追記作業が全て終了したら
編集保存のためのアクセス権の変更作業を行います
これを行わないと編集した内容を書き込めません
↓
Finderの「情報を見る」で
/Library/Preferences/SystemConfiguration/
の情報ウインドウを開き「共有とアクセス権」の鍵マークをクリックして解除し
「admin」を「読み出しのみ」から「読み / 書き」に変更します
↓
同じくFinderの「情報を見る」で
/Library/Preferences/SystemConfiguration/preferences.plist
の情報ウインドウを開き「共有とアクセス権」の鍵マークをクリックして解除し
「everyone」を「読み出しのみ」から「読み / 書き」に変更します
この
/Library/Preferences/SystemConfiguration/preferences.plist
の情報ウインドウは「編集を保存するまで絶対に閉じないで」下さい
↓
Plist Editorでの編集内容を
/Library/Preferences/SystemConfiguration/preferences.plist
に上書き保存します
↓
開いたままでいた
/Library/Preferences/SystemConfiguration/preferences.plist
の情報ウインドウの「共有とアクセス権」ですが
上書き保存を行った関係で
「システム」の「読み / 書き」と「wheel」の「読み出しのみ」から
「作業ユーザー名」の「読み / 書き」と「admin」の「読み / 書き」に
書き換わっていると思います
これを元に戻すため
「○」に「・・」の「アクション」メニューから「変更を元に戻す」を選ぶと
「システム」の「読み / 書き」と「wheel」の「読み出しのみ」に戻るはずです
戻ったら
/Library/Preferences/SystemConfiguration/preferences.plist
の情報ウインドウを閉じます
この「変更を元に戻す」作業が、
「一度情報ウインドウを閉じると行えなくなってしまう」ので
アクセス権を弄る時間が短くなるような手順にしています
↓
次に
/Library/Preferences/SystemConfiguration/
の情報ウインドウを開き「共有とアクセス権」の鍵マークをクリックして解除し
「admin」を「読み / 書き」から「読み出しのみ」に戻します
こちらも情報ウインドウを開きっぱなしにして置いて
「○」に「・・」の「アクション」メニューから「変更を元に戻す」を選んでも良いです
↓
その後ログアウト&ログインし、編集した
/Library/Preferences/SystemConfiguration/preferences.plist
を有効化させます
↓
リンゴマークメニューに「場所」が追加されプリセットが表示されるようになり
システム設定のネットワーク項目上でプリセットの切替が反映されれば成功です
↓
全ての確認が済んだら、リネーム保護していた.plistファイルを削除すれば終了です
とりあえずPlist Editorさえ入手できれば
ターミナル作業無しで(Finderのみで)作業できる方法を考えてみました
preferences.plistはXML表記のファイルなので
XMLエディターでも作業できますし、頑張ればテキストエディターでも作業できます
ポイントはアクセス権を元に戻すのに、
情報ウインドウの「アクション」メニュー「変更を元に戻す」を利用している点です
Plist Editorでの
/Library/Preferences/SystemConfiguration/preferences.plist
の追記作業を途中で保存したい場合は、
毎回Finderの「情報を見る」ウインドウの件を繰り返して下さい
UserDefinedName
Automatic
を
UserDefinedName
自宅(のような任意の名称)
に変更する所まで済んでいれば、
/Library/Preferences/SystemConfiguration/preferences.plist
に書き込まれて、アクセス権が戻されてる時点で、
ログアウト&ログイン後なら「場所」メニューは有効になっているはずです
1つ前の投稿で凡ミスを侵してしまったので、削除して下さい^^;
「場所」メニュー作成の最終段の、
/Library/Preferences/SystemConfiguration/preferences.plist
への追加編集の部分ですが、
当たり前と言えば当たり前ですが、起動しているシステムの、必要ファイル(開いてるファイル)の編集保存は不可能です・・・^^;
僕が複数の起動クローン・バックアップで起動させて検証していたため、変更するシステムを勘違いして作業していました。
具体的には、それぞれのプリセットの「もと」.plistファイルをリネーム保護して作成するところまではOKです。
但し、
/Library/Preferences/SystemConfiguration/preferences.plist
の編集保存のためには、
別の起動ボリュームで起ち上げての作業が必要です・・・^^;
この場合の起動ボリュームは、Plist Editorが立ち上がる環境であれば、
macOSのバージョンが多少古くても問題ありません。
つまり別の起動ボリュームから
Volumes/目的の起動ボリューム – データ/Library/Preferences/SystemConfiguration/preferences.plist
の追加編集を行い、
Volumes/目的の起動ボリューム – データ/Library/Preferences/SystemConfiguration/
Volumes/目的の起動ボリューム – データ/Library/Preferences/SystemConfiguration/preferences.plist
の情報ウインドウでのアクセス権操作を行うことになります
上記の修正を行った文章を再投稿するので、
可能であればそちらで実検証をされてみてから、
ページに反映させて下さい・・・^^;
こちらの投稿に作業手順を書きます
最初Terminal.appを使わず平たく作業を行おうと思ったら、
変更する起動ボリュームとは別の書き込み作業用起動ボリュームが必要になったので、
まずは判りやすくて起動ボリューム1つで完結するTerminal.appを使用する方法を書きます
まずは1プリセット目のネットワーク設定を行います
ごく普通に「システム設定>ネットワーク」で
「Ethernet」などの設定を入力し、接続確認を行います
↓
それらの設定を行うと
/Library/Preferences/SystemConfiguration/preferences.plist
の
Sets
の中に
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
として各種設定群と
UserDefinedName
Automatic
という設定名称が格納されます
「Automatic」とはMontereyまでの「自動」という日本語環境名称です
↓
この設定を残しておきたいので
/Library/Preferences/SystemConfiguration/preferences.plist
を直接名称変更して
/Library/Preferences/SystemConfiguration/preferences_自宅.plist
のように任意名称に変更して保護します
この場合、所有権が崩れても問題ないので普通の複製&リネームでOKです
↓
この状態だと正式なネットワーク設定がない状態になるので
速やかにログアウト&ログインを行って、新しい
/Library/Preferences/SystemConfiguration/preferences.plist
をシステム側に作成させます
↓
新しくできた
/Library/Preferences/SystemConfiguration/preferences.plist
に2プリセット目のネットワーク設定を行い記録させます
次も普通に「システム設定>ネットワーク」で
「Ethernet」などの設定を入力し、接続確認を行います
↓
そうすると
/Library/Preferences/SystemConfiguration/preferences.plist
が新しい(2つ目の)ネットワーク設定が格納されたファイルになります
↓
その中の
Sets
の中に、先ほどとは異なる
D96D6DD0-F962-4402-8CFC-369E15D5B992(のような文字列)
として各種設定群と同じように設定名称である
UserDefinedName
Automatic
が格納されます
重要なのは
1つ目の
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
と、2つ目の
D96D6DD0-F962-4402-8CFC-369E15D5B992(のような文字列)
が異なることで、
このとその中身の違いで、別のプリセットと認識されます
大元の
/Library/Preferences/SystemConfiguration/preferences.plist
の複製コピーで異なるネットワーク設定を作ると
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
が変わらずに、中身だけが変更されたファイルが作られるので
最後に全てを合体させたときに複数のプリセットとして認識されません
つまり毎回新規の設定として、新しい
D96D6DD0-F962-4402-8CFC-369E15D5B992(のような文字列)
を作成させなければいけません
↓
ということで先ほどと同じように
/Library/Preferences/SystemConfiguration/preferences.plist
を直接名称変更して
/Library/Preferences/SystemConfiguration/preferences_会社.plist
のように任意名称に変更して保護します
↓
この流れを繰り返し、プリセットの「もと」になる.plistファイルを用意していきます
例えば自宅でネットワーク設定を行ったら、
/Library/Preferences/SystemConfiguration/preferences.plist
を複製コピーしてコピーの方の名称変更を行い
/Library/Preferences/SystemConfiguration/preferences_自宅.plist
を作成して保護しておいて、自宅での作業は
/Library/Preferences/SystemConfiguration/preferences.plist
の設定を使用しておきます
次に会社などで新たにネットワーク設定を行うときは、既存の
/Library/Preferences/SystemConfiguration/preferences.plist
を削除して、ログアウト&ログインを行い、新たな
/Library/Preferences/SystemConfiguration/preferences.plist
をシステムに作らせてから、ネットワーク設定を行います
自宅の時と同じように複製コピーをかけて、コピーの方の名称変更を行い
/Library/Preferences/SystemConfiguration/preferences_会社.plist
を作成して保護しておいて、同じように会社での作業は
/Library/Preferences/SystemConfiguration/preferences.plist
の設定を使用しておき、帰宅後に2つの内容をマージしてプリセットリストを作る
というようにすれば、ネットワーク設定内容が一度に把握できない場合でも対応可能です
↓
そして最終的にマージ(結合)させるわけですが、
基本的に1つは、自由に書き換えられる「自動(Automatic)」プリセットが必要なので、
preferences.plist削除後にログアウト&ログインして新しく作られる
/Library/Preferences/SystemConfiguration/preferences.plist
の中の「Automatic」設定をそのまま生かして、
このpreferences.plistファイルをベースに追記編集していきます
↓
追記編集についてです
/Library/Preferences/SystemConfiguration/preferences.plist
をPlist Editor等で開くと
Sets
に
8CDB9B64-6111-413E-BBDB-D666974AC057(のような文字列)
が1つ格納されているはずです
この中身を「自動(Automatic)」に流用するわけですが、その上位のの
Sets
に、設定内容をコピー&ペーストで追記して、プリセットを増やしていきます
↓
リネームして保護していたpreferences.plist(ex.preferences_自宅.plist)
をPlist Editorアプリで開き
Sets
に格納されている
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
の内容を「丸ごと」コピーします
↓
そして、既にPlist Editorアプリで開いている、追記先の
/Library/Preferences/SystemConfiguration/preferences.plist
の
Sets
内に(丸ごと)ペーストし追記(プリセットの追加)します
↓
この時点で
/Library/Preferences/SystemConfiguration/preferences.plist
の
Sets
内には
最初からある
8CDB9B64-6111-413E-BBDB-D666974AC057(のような文字列)
と、追記した
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
の2つのセットが存在するはずです
↓
次にペースト追記した
12DCB6AC-EA22-4FB4-B5E8-6D8784CFFFE3(のような文字列)
の中の
UserDefinedName
Automatic
を
UserDefinedName
自宅(のような任意の名称)
に変更します
この名称が「場所」メニューで表示されるプリセット名になり
この時点で「自動(Automatic)」と「自宅(のような任意の名称)」の
2つの「場所」メニューの中身が揃ったことになります
↓
この作業を、用意していたプリセットの「もと」.plistの数だけ繰り返し、
追記作業が全て終了したら
/Library/Preferences/SystemConfiguration/preferences.plist
に上書き保存します
↓
この状態ではユーザー権限で編集保存したために
所有権とアクセス権が狂って、システム設定からは読み込みしか出来ないので
Terminal.appでコマンドを打って直接修正します
↓
本来の
/Library/Preferences/SystemConfiguration/preferences.plist
は
アクセス権「644(-rw-r–r– )」、所有権「root:wheel」なので
% sudo chmod 644 /Library/Preferences/SystemConfiguration/preferences.plist
% sudo chown root:wheel /Library/Preferences/SystemConfiguration/preferences.plist
とそれぞれ打って(コピー&ペースト推奨)リターンキーで実行します
#sudo(管理者権限)なので、ユーザーパスワードの入力が必要です
一応確認のために
% ls -l /Library/Preferences/SystemConfiguration/preferences.plist
と打って(コピー&ペースト推奨)リターンキーで実行し
-rw-r–r– 1 root wheel 〜
のように表示されればOKです
↓
作業終了後、ログアウト&ログインし、編集した
/Library/Preferences/SystemConfiguration/preferences.plist
を有効化させ、
リンゴマークメニューに「場所」が追加されプリセットが表示されるようになり
システム設定のネットワーク項目上でプリセットの切替が反映されれば成功です
↓
全ての環境でのネットワーク接続確認が済んだら、
リネーム保護していた.plistファイルを削除すれば終了です
この方法でプリセットを作っていくと、
WiFi(macOSではAirmac設定)も対応した設定が
/Library/Preferences/SystemConfiguration/
内に残っていくようなので、WiFiもプリセットに連動するはずです。
僕の環境だけかも知れませんが、
Montereyからアップグレードした場合、もしくは
/Library/Preferences/SystemConfiguration/preferences.plist
を直接移行させた場合には、WiFi設定がプリセットと連動しない場合があるようです。