automatore ethernet attiva la sierra alta

1

Ho cercato di creare un servizio per abilitare / disabilitare ethernet, ma non riesco a farlo correttamente.

È per os x alta sierra.

Finora ho questo, funziona senza errori e appare sul mio menu servizi, ma non attiva la connessione ethernet.

Ho provato un po 'di codice per l'aeroporto e funziona. Ma ho davvero bisogno di Ethernet 1, en0.

on run {input, parameters}

(* do shell script "networksetup -setnetworkserviceenabled Ethernet 1 off" user name “xxxx” password “xxxx” with administrator privileges
do shell script "networksetup -setnetworkserviceenabled Ethernet 1 on" user name "xxxx" password "xxxx" with administrator privileges *)

return input end run

Ho fatto alcuni flussi di lavoro per registrare le azioni per questo, ma è un po 'inquietante ed è davvero una seccatura in questo modo.

Qualsiasi aiuto sarebbe molto apprezzato.

    
posta Carlos Jaramillo 02.11.2018 - 23:16
fonte

1 risposta

0

Potresti non aver bisogno dei privilegi di amministratore (non ho bisogno di questi per attivare / disattivare il Wi-Fi). Ma il problema che stai riscontrando è probabile perché non hai inserito "Ethernet 1" tra virgolette. Quindi, supponendo che la tua connessione ethernet sia, in effetti, chiamata "Ethernet 1", il comando per spegnere la tua rete ethernet è simile al seguente:

on run {input, parameters}

    do shell script "networksetup -setnetworkserviceenabled \"Ethernet 1\" off"

return input end run

Se vuoi attivarlo / disattivarlo a seconda del suo stato attuale, puoi fare questo:

on run {input, parameters}

    do shell script ¬
        "[[ \"$(networksetup -getnetworkserviceenabled 'Ethernet 1')\" = \"Enabled\" ]] \
         && networksetup -setnetworkserviceenabled 'Ethernet 1' off \
         || networksetup -setnetworkserviceenabled 'Ethernet 1' on"

end run

Tuttavia, dal momento che l'intero AppleScript è, in effetti, un comando di shell racchiuso in un comando do shell script , allora ti consigliamo di utilizzare un'azione Esegui script shell nel tuo Automator flusso di lavoro invece di uno AppleScript. Quindi puoi semplicemente scrivere il comando nella sua forma nuda, che è molto più ragionevole:

[[ "$(networksetup -getnetworkserviceenabled 'Ethernet 1')" = "Enabled" ]] \
&& networksetup -setnetworkserviceenabled 'Ethernet 1' off \
|| networksetup -setnetworkserviceenabled 'Ethernet 1' on
    
risposta data 03.11.2018 - 10:55
fonte

Leggi altre domande sui tag