Come posso attivare o disattivare i servizi di rete con uno script?

1

Attualmente posso farlo solo su base per connessione usando questo script:

property status : "none"
property val : "none"

on get_status()
    set status to do shell script "sudo networksetup -getnetworkserviceenabled Ethernet" as string
end get_status

get_status()

if status is "Enabled" then
    set val to "off"
else
    set val to "on"
end if

do shell script "sudo networksetup -setnetworkserviceenabled Ethernet " & val

get_status()
display dialog "Status: " & status with title "Network Toggle" buttons {"OK"} default button 1

Ma di recente sto ottenendo la rete da diverse fonti e mi piacerebbe avere uno script con attivazione / disattivazione della disponibilità per tutte le connessioni attive (tutte attive o non attive).

Qualche idea su come potrei eliminarla?

    
posta Jan 22.02.2016 - 21:46
fonte

1 risposta

0

Utilizza l'opzione -listallnetworkservices per ottenere tutti i servizi.

tail -n +2 per eliminare la prima riga che contiene "Un asterisco (*) indica che un servizio di rete è disabilitato."

sed 's/^*//' per eliminare il carattere asterisco all'inizio di ogni riga

while read thisName al ciclo

Lo script:

if get_status() is "Enabled" then
    set val to "off"
else
    set val to "on"
end if
do shell script "networksetup -listallnetworkservices | tail -n +2 | sed 's/^*//' | while read thisName; do networksetup -setnetworkserviceenabled  \"$thisName\" " & val & "; done" with administrator privileges
display dialog "Status: " & (get_status()) with title "Network Toggle" buttons {"OK"} default button 1

on get_status()
    set status to do shell script "networksetup -getnetworkserviceenabled Ethernet"
end get_status

sudo in un comando do shell script non funziona sul mio sistema, io uso administrator privileges .

    
risposta data 23.02.2016 - 19:49
fonte

Leggi altre domande sui tag