Ich möchte die Erstellung meiner Netzwerkstandorte automatisieren (z. B. Home
und Work
) und habe mich damit befasstnetworksetup -createlocation <location name> [populate]
Durch das Hinzufügen populate
werden dem Netzwerkstandort Standarddienste hinzugefügt (USB LAN, Wi-Fi, Bluetooth PAN, Thunderbolt Bridge), ohne dass der Standort leer bleibt.
Gibt es eine Möglichkeit, einem Netzwerkstandort bestimmte Dienste hinzuzufügen? networksetup -printcommands | grep -i location
fällt nichts Hilfreiches ein.
networksetup verwendet ein irgendwie hierarchisches Namenssystem für die Unterbefehle. Standort- Unterbefehle werden nur verwendet, um Standorte selbst zu verwalten: Sie können Standorte entweder auflisten, abrufen (den aktuellen), erstellen, löschen oder zwischen Standorten wechseln.
Das Ändern der Netzwerkdienste eines Standorts erfolgt im Netzwerkdienst "Namespace".
Um die Netzwerkdienste an einem Ort zu verwalten, können Sie entweder „Blacklisting“ oder „Whitelisting“ verwenden:
Wenn Sie unerwünschte Netzwerkdienste ausführen und entfernen, ist dies eine schwarze Liste, networksetup -createlocation <location name>
ohne dass Sie alle erforderlichen Netzwerkdienste hinzufügen müssen, und es ist eher eine weiße Liste.populate
populate
So entfernen Sie einen Netzwerkdienst im Falle einer Blacklisting-Nutzung:
... -removenetworkservice <networkservice>
So fügen Sie einen Netzwerkdienst im Falle einer Whitelisting-Nutzung hinzu:
... -createnetworkservice <networkservice>
Laut der Manpage für networksetup ( man networksetup
)
-createlocation location [populate]
Erstellen Sie einen Satz mit dem benutzerdefinierten Namen und füllen Sie ihn optional mit den Standarddiensten auf.
Das Verhalten, das Sie sehen, wird also erwartet. Sie müssen die populate
Funktion nicht verwenden; Fügen Sie einfach Ihre Dienstleistungen à la carte nach Bedarf hinzu.
Bevor Sie jedoch einen Standort ändern können, müssen Sie zuerst zu ihm wechseln (aktivieren):
$ networksetup -listlocations <------ Lists all locations configured
$ networksetup -getcurrentlocation <------ Currently selected location
$ networksetup -switchlocation location <------ Sets current location
Wechseln Sie unter Verwendung Ihrer beiden Standorte (Zuhause und Arbeit) zu dem gewünschten Standort und fügen Sie dann die betreffenden Dienste hinzu/ändern/entfernen Sie sie
Um beispielsweise einen "TestLAN"-Dienst mit dem Bluetooth PAN-Hardwaregerät im Heimnetzwerk zu erstellen, verwenden Sie Folgendes:
$ networksetup -switchlocation Home
$ networksetup -createnetworkservice TestLAN "Bluetooth PAN"
Zusätzliche Befehle, die Sie vielleicht erkunden möchten, networksetup
sind:
-listallhardwareports
-listlocations
-listnetworkserviceorder
-listallnetworkservices
Am wichtigsten ist jedoch, dass Sie die Manpage für weitere Details durchsuchen.
oschrenk
networksetup
nur Dienste am aktuellen Standort erstellt werden können. Das fühlt sich für mich komisch an, da dies bedeutet, dass die Konnektivität verloren geht. Gibt es eine Möglichkeit, dies zu tun, während die Konnektivität erhalten bleibt?klanomath
networksetup -switchlocation (local)
allen anderen Netzwerksetup-Befehlen für (local) und schließlich anetworksetup -switchlocation
(remote) beginnt und enthält) auf die Remote-stdin!