MacOS NIC reihenfolge
Moin, ich bin Admin in einem macOS lastigen unternehmen.
Ich möchte die Reihenfolge der Netzwerkarte festlegen
1. Thunderbolt Ethernet
2. USB Ethernet
3. WLAN
usw.
im terminal kann man mit dem befehl "networksetup" kann ich das schön im terminal machen:
mein problem ist alles was ich versuche kommt die fehlermeldung:
wie gefordert habe ich alles in "" gesetzt.
kann einer mal von euch schauen ob ihr sehen könnt wo das problem ist?
ich hänge mal den code meines scriptes an:
Ich möchte die Reihenfolge der Netzwerkarte festlegen
1. Thunderbolt Ethernet
2. USB Ethernet
3. WLAN
usw.
im terminal kann man mit dem befehl "networksetup" kann ich das schön im terminal machen:
Usage: networksetup -ordernetworkservices <service1> <service2> <service3> <...>
Order the services in order specified. Use "-listnetworkserviceorder" to view service order.
Note: use quotes around service names which contain spaces (ie. "Built-in Ethernet").
mein problem ist alles was ich versuche kommt die fehlermeldung:
networksetup -ordernetworkservices "Thunderbolt Ethernet" "Thunderbolt Ethernet 2" "Apple USB Ethernet Adapter" "Wi-Fi" "Bluetooth PAN" "Thunderbolt Bridge"
Wrong number of network services... No changes have been made.
Note: Quotes must be used around service names which contain spaces (ie. "Built-in Ethernet").
** Error: The parameters were not valid.
wie gefordert habe ich alles in "" gesetzt.
kann einer mal von euch schauen ob ihr sehen könnt wo das problem ist?
ich hänge mal den code meines scriptes an:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Script Name: order_network.py
# CreationDate: 10.04.2019
# Last Modified:
# Copyright: Michael N. (c)2019
# Purpose: set the network service order for osx
#
import os
import subprocess
import re
bashCommand = "networksetup -listallnetworkservices"
#networksetup = os.system(bashCommand)
p = subprocess.Popen(bashCommand, stdout=subprocess.PIPE, shell=True)
(output, err) = p.communicate()
nic_list = [y for y in (x.strip() for x in output.splitlines()) if y]
nic_list.pop(0)
def sort_thunderbolt():
thunderbolt = ""
for i in nic_list:
if re.search("Thunderbolt", i):
if not re.search("Thunderbolt Bridge", i):
index = nic_list.index(i)
i = "\"" + i + "\""
#print("thunderbolt: " + str(index) + i)
if thunderbolt is None:
thunderbolt = i
else:
thunderbolt += " " + i
nic_list.pop(index)
thunderbolt = thunderbolt.strip()
#print(thunderbolt)
return thunderbolt
def sort_USB():
USB = ""
for i in nic_list:
if re.search("USB", i):
index = nic_list.index(i)
i = "\"" + i + "\""
#print("thunderbolt: " + str(index) + i)
if USB is None:
USB = i
else:
USB += " " + i
nic_list.pop(index)
USB = USB.strip()
#print(USB)
return USB
def sort_WLAN():
WLAN = ""
for i in nic_list:
if re.search("Wi-Fi", i):
index = nic_list.index(i)
i = "\"" + i + "\""
if WLAN is None:
WLAN = i
else:
WLAN += " " + i
nic_list.pop(index)
WLAN = WLAN.strip()
#print(WLAN)
return WLAN
def sort_TB():
TB = ""
for i in nic_list:
if re.search("Thunderbolt Bridge", i):
index = nic_list.index(i)
i = "\"" + i + "\""
if TB is None:
TB = i
else:
TB += " " + i
nic_list.pop(index)
TB = TB.strip()
#print(TB)
return TB
def sort_OTHER():
OTHER = ""
for i in nic_list:
index = nic_list.index(i)
i = "\"" + i + "\""
if OTHER is None:
OTHER = i
else:
OTHER += " " + i
nic_list.pop(index)
OTHER = OTHER.strip()
#print(OTHER)
return OTHER
THUNDERBOLT = sort_thunderbolt()
USB = sort_USB()
WLAN = sort_WLAN()
TB = sort_TB()
OTHER = sort_OTHER()
for i in nic_list:
index = nic_list.index(i)
print("index: " + str(index) + i)
nic_prio = ""
if THUNDERBOLT:
nic_prio = THUNDERBOLT
if USB:
if nic_prio:
nic_prio += " " + USB
else:
nic_prio = USB
if WLAN:
if nic_prio:
nic_prio += " " + WLAN
else:
nic_prio = WLAN
if OTHER:
if nic_prio:
nic_prio += " " + OTHER
else:
nic_prio = OTHER
if TB:
if nic_prio:
nic_prio += " " + TB
else:
nic_prio = TB
networksetup = "networksetup -ordernetworkservices " + str(nic_prio)
print(networksetup)
os.system(networksetup)
Please also mark the comments that contributed to the solution of the article
Content-ID: 438946
Url: https://administrator.de/contentid/438946
Printed on: December 12, 2024 at 02:12 o'clock
19 Comments
Latest comment
Wrong number of network services...
Ich würde jetzt sagen da fehlt ein Device in deiner Liste.
$ networksetup -listallnetworkservices
Listet sie alle auf !
Oder für die aktuelle Reihenfolge:
$ networksetup -listnetworkserviceorder
Es geht auch übers GUI:
https://www.tekrevue.com/tip/network-interface-service-order-os-x/
Listet sie alle auf !
Oder für die aktuelle Reihenfolge:
$ networksetup -listnetworkserviceorder
Es geht auch übers GUI:
https://www.tekrevue.com/tip/network-interface-service-order-os-x/
So weit war er dann schon, s. Zeile 14
Schätze mal wie so oft hier ein Flüchtigkeitsfehler beim TO.
Schätze mal wie so oft hier ein Flüchtigkeitsfehler beim TO.
Machst du den Befehl nur über das Python Skript oder hast du den auch mal manuell ohne das Python Skript versucht? Shell ist eleviert?
Vielleicht testweise die Sonderzeichen mit Backslash escapen.
Vielleicht testweise die Sonderzeichen mit Backslash escapen.
Escape mal alle Sonderzeichen wie ich oben geschrieben habe. Auch innerhalb von doppelten Anführungszeichen haben bestimmt Zeichen besondere Bedeutung, das entfällt wenn man einfache Hochkommata verwendet. Der Unterbau ist ja auch nur ein Unix Derivat.
Tja wir sehen ja das was du machst nicht.
hast du es denn mal laufen lassen und geht es bei euch?
Sicher, geht hier testweise auf einem Mojave einwandfrei.
hast du es denn mal laufen lassen und geht es bei euch?
Skript probiere ich erst gar nicht das muss ja erst mal so laufen sonst bringt dir das nix!
Auf der Konsole geht's hier wie schon geschrieben einwandfrei.
Das du die Konsole/Befehl eleviert laufen lassen musst ist dir aber schon bewusst?!
Auf der Konsole geht's hier wie schon geschrieben einwandfrei.
Das du die Konsole/Befehl eleviert laufen lassen musst ist dir aber schon bewusst?!
Wäre ja schön blöd wenn ein normaler User die Reihenfolge beliebig ändern könnte . Als MAC Admin sollte man eigentlich wissen wie man mit sudo umgeht 😜.
Zitat von @micneu:
das du "sudo" meinst hattest du nicht geschrieben.
klar.... das muss ich ja nicht extra erwähnen oder?.
Wir wissen ja nicht mit wem wir es hier zu tun haben, hier sind ja oft ziemliche "Spezialisten" unterwegs da fragt man halt besser zur Sicherheit nochmal nach .das du "sudo" meinst hattest du nicht geschrieben.
klar.... das muss ich ja nicht extra erwähnen oder?.
Also ich bin jetzt raus, hier lübt dat, irgendwo hat bei dir da auf dem System was einen Hänger, k.A. vielleicht musst du Tim Cook erst vorher noch einen Blasen damit es geht, ich weiß es nicht. 😆
und der befehl laufen
Sach ich doch, glaubst du ich erzähl dir was vom Pferd?