automator ethernet toggle high sierra

1

He estado tratando de crear un servicio para apagar Ethernet, pero no puedo hacerlo bien.

Es para s x sierra alta.

Hasta ahora tengo esto, se ejecuta sin error y aparece en el menú de servicios, pero no cambia la conexión Ethernet.

He intentado algún código para el aeropuerto y funciona. Pero realmente lo necesito para 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

He realizado algunas acciones de grabación de flujos de trabajo para esto, pero es un poco espeluznante y realmente es un problema de esta manera.

Cualquier ayuda sería muy apreciada.

    
pregunta Carlos Jaramillo 02.11.2018 - 23:16

1 respuesta

0

Es posible que no necesite privilegios de administrador (no los necesito para activar / desactivar la conexión Wi-Fi). Pero el problema que tienes es probable porque no pusiste "Ethernet 1" entre comillas. Por lo tanto, suponiendo que su conexión Ethernet se llame "Ethernet 1", entonces el comando para apagar su Ethernet se ve así:

on run {input, parameters}

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

return input end run

Si desea activarlo / desactivarlo según su estado actual, puede hacerlo:

on run {input, parameters}

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

end run

Pero, dado que todo su AppleScript es, de hecho, un comando de shell envuelto dentro de un comando do shell script , entonces recomiendo usar una acción Ejecutar script de shell en su Automator flujo de trabajo en lugar de uno de AppleScript. Luego, simplemente puede escribir el comando en su forma desnuda, lo que es mucho más sensato:

[[ "$(networksetup -getnetworkserviceenabled 'Ethernet 1')" = "Enabled" ]] \
&& networksetup -setnetworkserviceenabled 'Ethernet 1' off \
|| networksetup -setnetworkserviceenabled 'Ethernet 1' on
    
respondido por el CJK 03.11.2018 - 10:55

Lea otras preguntas en las etiquetas