Lancer une commande dans le Terminal (résolu), script pour automatiser « télécharger de n'importe où |
Bienvenue invité ( Connexion | Inscription )
Lancer une commande dans le Terminal (résolu), script pour automatiser « télécharger de n'importe où |
3 Oct 2020, 11:37
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
Je cherche de l'aide pour écrire un petit Applescript qui :
–ouvrirait le terminal –écrirait une commande dans ce terminal (par exemple : sudo spctl --master-disable , pour télécharger de n'importe où) –exécuterais la commande –quitterait le terminal Merci d'avance de votre aide -------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
3 Oct 2020, 16:07
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 985 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
basique:
tu lances "éditeur de script" bouton rouge -> enregistrer tu fais les manips que tu souhaites enregistrer Citation –ouvrirait le terminal –écrirait une commande dans ce terminal (par exemple : sudo spctl --master-disable , pour télécharger de n'importe où) –exécuterais la commande –quitterait le terminal : l'éditeur tape en lignes de commandes les manips que tu fais tu stoppes l'enregistrement (de mémoire) tu doit pouvoir l'enregistrer en tant qu'application autonome … Ce message a été modifié par radioman - 3 Oct 2020, 16:10. -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
3 Oct 2020, 18:29
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
bouton rouge -> enregistrer Merci de tes conseils mais je n'arrive pas à utiliser correctement le bouton d'enregistrement. Dans l'exemple ci-dessous , du script que j'essaye de mettre au point, je voudrais simplement, à la place de « délai 5 » mettre une commande qui écrirait par exemple ""sudo trimforce enable" ou bien "sudo spctl --master-disable" tell application "Terminal" to activate et peut-être aussi ajouter une commande qui introduirait mon mot de passe si c'est nécessaire pour valider l'opération ??? -------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
4 Oct 2020, 08:39
Message
#4
|
|
Adepte de Macbidouille Groupe : Membres Messages : 176 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
Un exemple de script qui te demande de choisir d'autoriser l'installation de logiciel de "n'importe où" pour une durée de 1 ou 5 minutes puis remet l'autorisation sur "app store et developeurs" Il faut changer "Ton mot de passe" par ton mot de passe de la session Code set nameList to {"Autoriser n'importe où pour 1 minute", "Autoriser n'importe où pour 5 minutes", "App Store et developpeurs"}
set choix to (choose from list the nameList with prompt "Sélectionner : " with title "Choix") as string if choix is "false" then quit -- Bouton Annuler set commande to "echo " & "Ton mot de passe" & " | sudo -S spctl --master-" set ledelai to 0 if choix is "Autoriser n'importe où pour 1 minute" then set ledelai to 60 end if if choix is "Autoriser n'importe où pour 5 minutes" then set ledelai to 300 end if set tout to commande & "disable" do shell script tout delay ledelai set fini to commande & "enable" do shell script fini Ce message a été modifié par Zeltron54 - 4 Oct 2020, 08:42. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3 |
|
|
4 Oct 2020, 17:28
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
Bonjour, Un exemple de script qui te demande de choisir d'autoriser l'installation de logiciel de "n'importe où" pour une durée de 1 ou 5 minutes puis remet l'autorisation sur "app store et developeurs" Il faut changer "Ton mot de passe" par ton mot de passe de la session Merci pour ton message. J'ai testé ton script qui marche effet très bien. Mais cela ne résout pas mon problème. Mon problème est de savoir ce qu'il faut écrire, dans le script ci-dessous, juste avant « délai 3 » pour que je puisse écrire quelque chose dans le terminal. je cherche la syntaxe à utiliser pour dire : Write « telle chaîne de caractères » dans la fenêtre du terminal que je viens d'ouvrir, et ensuite ajoute un Return pour valider. (Peut-être aussi rajouter une 2e ligne pour introduire mon mot de passe et valider par un Return) tell application "Terminal" to activate merci d'avance à celui qui me dépannera -------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
4 Oct 2020, 17:57
Message
#6
|
|
Adepte de Macbidouille Groupe : Membres Messages : 176 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonsoir,
Mais pour écrire et exécuter une commande dans le terminal depuis le script, Tu envoies directement ta commande avec le script avec la commande "do shell script", c'est pour ça que je t'ai mis l'exemple. Tu n'a pas besoin d'appeler le terminal ni de l'activer ni de valider, la commande "do shell script" fait tout ça.. Tu mets ce que tu veux écrire dans le terminal dans une variable exemple:"macommande" et tu envoies avec : do shell script macommande, si la commande doit s'exécuter avec le mot de passe tu tu la précèdes avec : "echo " & "Ton mot de passe" & " | suivi de ta commande, comme je l'ai fait dans mon exemple. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3 |
|
|
6 Oct 2020, 08:56
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
Alors la,Zeltron, tu m'ouvre des horizons insoupçonnés !
Je vais m'attaquer à tout cela avec tes conseils. Merci -------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
6 Oct 2020, 09:27
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Salut tous,
Il manque une commande qui supprime les privilèges administratifs, car tout utilisateur mal intentionné qui fait tourner ce script gagne ces privilèges et les garde pour faire n'importe quelle autre commande potentiellement dangereuse: La commande est : Code sudo -k à ajouter à la fin du script.JP |
|
|
20 Apr 2023, 18:08
Message
#9
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 574 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Je vois que le sujet avait déjà été abordé précédemment. Je joins les deux.
+++++++++++++++ Je ne suis pas trop calé en scripts mais il me semble que la ligne suivante devrait faire ce que tu veux, sans devoir activer le Terminal : Code do shell script "echo " & "motdepasse" & " | sudo lasuitedetacommande" (En remplaçant motdepasse et lasuitedetacommande par les paramètres appropriés. Sans oublier les guillemets qui encadrent les éléments de chaîne, concaténés par l'opérateur &, formant la commande shell à exécuter.) — Merci à Zeltron54 qui avait déjà exposé tout cela plus haut. Ce message a été modifié par baron - 20 Apr 2023, 20:08.
Raison de l'édition : Compléments après relecture du sujet original
-------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
20 Apr 2023, 20:34
Message
#10
|
|
Adepte de Macbidouille Groupe : Membres Messages : 176 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonsoir,
Je suppose que le script que je t'avais fait ne te convient pas car le mot de passe est écrit dans le script et que tu préfères le saisir , alors voila le script modifié. Code set nameList to {"Autoriser n'importe où pour 1 minute", "Autoriser n'importe où pour 5 minutes", "App Store et developpeurs"} set choix to (choose from list the nameList with prompt "Sélectionner : " with title "Choix") as string if choix is "false" then quit -- Bouton Annuler display dialog "Entrer votre le mot de passe administrateur :" default answer "" with hidden answer set MDP to text returned of result set commande to "echo " & MDP & " | sudo -S spctl --master-" set ledelai to 0 if choix is "Autoriser n'importe où pour 1 minute" then set ledelai to 60 end if if choix is "Autoriser n'importe où pour 5 minutes" then set ledelai to 300 end if set tout to commande & "disable" do shell script tout delay ledelai set fini to commande & "enable" do shell script fini do shell script "sudo -k" Dis moi si cela te convient ! Ce message a été modifié par Zeltron54 - 20 Apr 2023, 20:35. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3 |
|
|
20 Apr 2023, 23:11
Message
#11
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 574 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Des fois, on est pris par autre chose et on laisse un ouvrage en chantier, en oubliant qu'on avait déjà progressé dessus…
-------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
22 Apr 2023, 09:45
Message
#12
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
Je suppose que le script que je t'avais fait ne te convient pas car le mot de passe est écrit dans le script et que tu préfères le saisir , alors voila le script modifié. Dis moi si cela te convient ! Cela me convient «presque» bien et je te remercie vraiment beaucoup. J'ai toutefois fait les modifications suivantes pour que cela corresponde à ce que je voulais vraiment:
Code set nameList to {"Autoriser les téléchargements depuis n'importe où", "N'autoriser que ceux de App Store et de ses developpeurs"} set choix to (choose from list the nameList with prompt "Votre choix S.V.P. : " with title "Autorisations des téléchargements") as string if choix is "false" then quit -- Bouton Annuler display dialog "Entrer votre le mot de passe administrateur :" default answer "" with hidden answer set MDP to text returned of result set commande to "echo " & MDP & " | sudo -S spctl --master-" if choix is "Autoriser les téléchargements depuis n'importe où" then set tout to commande & "disable" do shell script tout end if if choix is "N'autoriser que ceux de App Store et de ses developpeurs" then set fini to commande & "enable" do shell script fini end if do shell script "sudo -k" display dialog "Le résultat ne sera visible qu'après avoir relancé les Préférences Système"buttons "OK" default button "OK" quit Dis moi si ce n'est pas trop stupide ? -------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
23 Apr 2023, 06:44
Message
#13
|
|
Adepte de Macbidouille Groupe : Membres Messages : 176 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
La commande "quit" à la fin ne peut pas fonctionner car le script est en cours d'exécution ! Je trouve que d'avoir supprimer le délai est une mauvaise idée, car tu enlèves une sécurité pour pouvoir installer un logiciel, mais si tu oublis de la remettre ton mac reste ouvert à l'installation de n'importe quoi !... C'est toi qui voit. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3 |
|
|
23 Apr 2023, 07:46
Message
#14
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
La commande "quit" à la fin ne peut pas fonctionner car le script est en cours d'exécution ! Je trouve que d'avoir supprimer le délai est une mauvaise idée, car tu enlèves une sécurité pour pouvoir installer un logiciel, mais si tu oublis de la remettre ton mac reste ouvert à l'installation de n'importe quoi !... J'ai donc enlevé la commande « quit » et ça marche aussi bien. Concernant la suppression des limitations dans le temps tu as probablement raison. Il faudrait peut-être, en faite, donner 3 possibilités :
Capture_d___e__cran_2023_04_23_a___08.39.51.png ( 28.22 Ko ) Nombre de téléchargements : 4 -------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
23 Apr 2023, 08:02
Message
#15
|
|
Adepte de Macbidouille Groupe : Membres Messages : 176 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
Il devrait suffire d'intercepter l'erreur et de mettre un dialogue "erreur de mot de passe" je te met ton script avec juste la modification pour intercepter l'erreur, cela se passe dans un bloc "try" "on error "end try' Toute erreur qui se produit entre le "try" et le "end try" provoque la réalisation de se qui est dans "on error" Code set nameList to {"Autoriser les téléchargements depuis n'importe où", "N'autoriser que ceux de App Store et de ses developpeurs"} set choix to (choose from list the nameList with prompt "Votre choix S.V.P. : " with title "Autorisations des téléchargements") as string if choix is "false" then quit -- Bouton Annuler display dialog "Entrer votre le mot de passe administrateur :" default answer "" with hidden answer set MDP to text returned of result set commande to "echo " & MDP & " | sudo -S spctl --master-" try if choix is "Autoriser les téléchargements depuis n'importe où" then set tout to commande & "disable" do shell script tout end if if choix is "N'autoriser que ceux de App Store et de ses developpeurs" then set fini to commande & "enable" do shell script fini end if do shell script "sudo -k" on error display dialog "Erreur de Mot de Passe ! " end try display dialog "Le résultat ne sera visible qu'après avoir relancé les Préférences Système" buttons "OK" default button "OK" quit Je te met la version avec les 3 possibilités et avec la bloc erreur.. Code set nameList to {"Autoriser les téléchargements depuis n'importe où", "Autoriser n'importe où pour 5 minutes", "N'autoriser que ceux de App Store et de ses developpeurs"} set choix to (choose from list the nameList with prompt "Sélectionner : " with title "Choix") as string if choix is "false" then quit -- Bouton Annuler display dialog "Entrer votre le mot de passe administrateur :" default answer "" with hidden answer set MDP to text returned of result set commande to "echo " & MDP & " | sudo -S spctl --master-" try set ledelai to 0 if choix is "Autoriser n'importe où pour 5 minutes" then set tout to commande & "disable" do shell script tout delay 300 set fini to commande & "enable" do shell script fini end if if choix is "Autoriser les téléchargements depuis n'importe où" then set tout to commande & "disable" do shell script tout end if if choix is "N'autoriser que ceux de App Store et de ses developpeurs" then set fini to commande & "enable" do shell script fini end if on error display dialog "Erreur de Mot de Passe ! " end try do shell script "sudo -k" display dialog "Le résultat ne sera visible qu'après avoir relancé les Préférences Système" buttons "OK" default button "OK" Dis moi si cela te convient. Ce message a été modifié par Tomeno - 23 Apr 2023, 15:03. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3 |
|
|
23 Apr 2023, 15:02
Message
#16
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 3 081 Inscrit : 18 May 2002 Lieu : Base de la tranquilité/Planéte Lune/Cratére n°3. Membre no 2 501 |
Oui c'est très bien. Je te remercie beaucoup de ton aide
-------------------- Hackeur vaillant ... rien d'impossible ! Mac Pro "corbeille" 2013 3,7 Ghz, SSD 500 Go, + Ecran Nec 30"/ iMac Retina 2014, 4 GHz, écran 27 " / Mac Pro "camion" 2008 / Imac G4 Tournesol 1,25 GHz 20" , modifié Mac Mini M1/ Cube G4 boosté à 1,8Ghz avec carte Gigadesign +Geforce 6200+AppleDisplay 23" / Spartacus upgradé G3 / MacBook polycarbonate 2011 / MacBook pro 17 pouces / Freebox Révolution V6 / Wifi Mesh avec 4 boitiers Tenda Nova MW6 |
|
|
Nous sommes le : 26th September 2024 - 21:03 |