автоматизатор Ethernet тумблер високої sierra


1

Я намагаюся створити службу для вмикання Ethernet, але не можу виправити це.

Це для os x high sierra.

Поки я маю це, він працює без помилок, і він відображається в меню моїх послуг, але це не перемикає з'єднання Ethernet.

Я спробував якийсь код для аеропорту, і він працює. Але мені це дуже потрібно для 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

Я зробив деякі робочі процеси запису для цього, але це просто трохи моторошно, і справді це клопот таким чином.

Будь-яка допомога буде дуже вдячна.


Моторошно? Що моторошно в записах робочого процесу?
IconDaemon

він просто запитує налаштування конфіденційності для запуску автоматизатора, для мене це просто повільно. і моторошно, як у: НИЗЬКО ... У будь-якому випадку є хтось із кращим входом?
Карлос Ярамільо

ти спробував networksetup -setnetworkserviceenabled Ethernet 1 offу Терміналі?
Ruskes

Відповіді:


0

Можливо, вам не потрібні права адміністратора (мені вони не потрібні для включення / вимкнення Wi-Fi). Але проблема, яка виникає у вас, ймовірно, тому, що ви не ставили "Ethernet 1"лапки. Отже, якщо припустити, що ваше з'єднання Ethernet насправді називається "Ethernet 1", тоді команда вимкнути вашу Ethernet виглядає приблизно так:

on run {input, parameters}

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

return input end run

Якщо ви хочете ввімкнути / вимкнути його залежно від поточного стану, ви можете зробити це:

on run {input, parameters}

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

end run

Але оскільки ваш увесь AppleScript насправді є командою оболонки, загорнутою всередині do shell scriptкоманди, то я б рекомендував використовувати дію Execute Shell Script у робочому процесі автоматизатора замість AppleScript. Тоді ви можете просто написати команду в голому вигляді, що набагато розумніше:

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

Я тут новий ... мм як це зробити?
Карлос Ярамільо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.