Bagaimana saya bisa beralih layanan jaringan dengan skrip?

1

Saat ini saya dapat melakukan ini hanya berdasarkan per koneksi menggunakan script ini:

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

Tetapi baru-baru ini saya mendapatkan jaringan dari berbagai sumber dan saya ingin memiliki skrip dengan ketersediaan sakelar untuk semua koneksi aktif (baik semua aktif atau tidak aktif).

Adakah ide tentang bagaimana saya bisa melakukan ini?

Jan
sumber

Jawaban:

0

Menggunakan -listallnetworkservices pilihan untuk mendapatkan semua layanan.

tail -n +2 untuk menghapus baris pertama yang berisi "Tanda bintang (*) menunjukkan bahwa layanan jaringan dinonaktifkan."

sed 's/^*//' untuk menghapus karakter asterix di awal setiap baris

while read thisName untuk loop


Naskah:

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 di sebuah do shell script perintah tidak bekerja di sistem saya, saya gunakan administrator privileges.

jackjr300
sumber
Terima kasih banyak!! Saya menyingkirkan dialog, jika saya ingat dengan benar, dengan menambahkan pengaturan jaringan ke sudo tanpa kata sandi di sistem saya. Jadi saya tidak perlu menulis kata sandi, ketika saya ingin menghindari gangguan :)
Jan