5 votes

Le moyen le plus rapide de désactiver le wifi à la connexion ou au démarrage

J'utilise Catalina, et le système d'exploitation active toujours le wifi au démarrage. J'ai cherché des méthodes pour désactiver le wifi à la connexion et j'ai créé un fichier .plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.username.wifi_off</string>
  <key>ProgramArguments</key>
  <array>
    <string>/Users/username/.wifi_off.sh</string>
  </array>
  <key>Nice</key>
  <integer>1</integer>
  <key>RunAtLoad</key>
  <true/>
  <key>StandardErrorPath</key>
  <string>/tmp/wifi_off.err</string>
  <key>StandardOutPath</key>
  <string>/tmp/wifi_off.out</string>
</dict>
</plist>

qui est placé dans ~/Library/LaunchAgents et le fichier .wifi_off.sh est :

#!/bin/sh
networksetup -setairportpower en0 off

Est-ce le moyen le plus rapide et/ou le plus efficace de désactiver le wifi à la connexion ? Comment peut-on étendre cela pour désactiver le wifi au démarrage, de sorte que le wifi soit déconnecté à l'écran de connexion, avant que quiconque ne se soit connecté ?

0 votes

Je suppose que vous voulez le désactiver au démarrage/à l'ouverture de session, mais que vous voulez quand même vous souvenir des réseaux auxquels vous connecter ultérieurement, correct ? Si c'est le cas, ne le lancez pas en tant qu'agent de lancement, mais en tant que démon de lancement. apple.stackexchange.com/questions/249446/

1 votes

Essayez également d'utiliser un crochet de déconnexion pour désactiver le WiFi lorsque l'utilisateur s'éteint. L'alimentation du WiFi est persistante lors des redémarrages (le WiFi de mon iMac est désactivé par défaut et reste ainsi lors des redémarrages).

0 votes

Oui, je pensais que le crochet de déconnexion serait aussi une bonne idée. Mais pour le premier, je peux juste déplacer mon .plist à /LaunchDaemons et sudo launchctl load c'est bien ça ? Est-ce que je dois launchctl unload du tout le précédent ?

6voto

Seamus Points 3171

Vous demandez peut-être deux choses différentes, mais dans le dernier paragraphe vous avez dit :

Le but ultime est d'empêcher le système de se connecter automatiquement à un réseau.

Empêcher le système de se connecter automatiquement à un réseau :

Je pense que le moyen d'y parvenir est de décocher (désactiver) l'option d'accès à l'Internet. Auto-Join pour chaque nom de réseau WiFi/SSID enregistré. System Preferences , Network , Advanced... . Décochez toutes les cases de la liste "Réseaux préférés". enter image description here

Notez également qu'il y a quelques autres options ici qui peuvent être intéressantes :

  • Vous pouvez décocher l'option "Se souvenir des réseaux que cet ordinateur a rejoint".
  • Vous pouvez cocher la case pour "Requérir l'autorisation de l'administrateur pour : Activer ou désactiver le Wi-Fi.

Pour déconnecter l'alimentation WiFi au démarrage :

Pour déconnecter le wifi au moment du démarrage, vous pouvez utiliser cron . C'est certainement plus simple que de construire un .plist et il est invoqué au démarrage au lieu de la connexion. Dans mes tests, il survit à une connexion, mais bien sûr, il pourrait être "écrasé" par d'autres paramètres du système - YMMV. Il peut être redémarré à partir de l'icône WiFi dans la barre de menu après la connexion quand vous le souhaitez. Voici comment le faire à partir du CLI :

crontab -e 

Cela lancera votre programme désigné crontab et ouvrez votre actuel crontab . Si vous n'avez pas de crontab (je ne l'ai pas utilisé auparavant), vous serez invité à choisir parmi trois choix d'éditeur par défaut. Je vous suggère de choisir pico o nano . Ceci étant fait, l'option par défaut crontab s'ouvrira dans l'éditeur de votre choix.

Une fois que l'éditeur a démarré, faites l'entrée suivante sur la première ligne vide au "bas" du fichier :

@reboot /usr/sbin/networksetup -setairportpower en0 off

Sauvegardez et quittez l'éditeur, et votre nouvelle crontab devient actif. Cette commande s'exécutera désormais à chaque fois que votre système démarrera, et (sous réserve de l'exception mentionnée) votre interface WiFi sera "OFF" jusqu'à ce que vous l'allumiez.

0 votes

C'est donc très utile ; j'avais oublié cette option et je vais l'utiliser. Cependant, vous avez raison de dire que ma question initiale demande deux choses différentes. Pour clarifier, je cherche à déconnecter l'alimentation wifi également au démarrage ou à la connexion.

1 votes

@irishwristwatch : Vous avez posé une question très intéressante. Je pense que mon approche serait de désactiver le "scan réseau" quasi-constant que le système effectue au lieu de couper l'alimentation. ( voici pourquoi ) Mais je n'ai pas encore trouvé comment le faire.

1 votes

@irishwristwatch : En ce qui concerne votre .plist, je vais mentionner ceci : 1.) A launchd L'agent utilisateur ne désactivera pas en0 avant que vous ne vous connectiez. 2.) Considérez le Launch Control pour utiliser launchd ; il vous permettra également d'invoquer un agent système 3). Si vous souhaitez invoquer au moment du démarrage, pensez à cron avec la spécification de planification @reboot. (voir réponse révisée)

0voto

irishwristwatch Points 67

Donc, j'utilise maintenant une combinaison des éléments suivants crontab et le logouthook :

La crontab :

@reboot /usr/sbin/networksetup -setairportpower en0 off

Le hook de déconnexion a été généré comme ceci :

#!/bin/sh
sudo defaults write com.apple.loginwindow LogoutHook ~/.logouthook
echo '#!/bin/sh\nnetworksetup -setairportpower en0 off' > ~/.logouthook
chmod +x ~/.logouthook

Je n'ai pas trouvé le moyen de toujours afficher l'état du wifi à l'écran de connexion, mais il semble pour montrer la connectivité wifi si il est connecté à un réseau, et n'affiche aucun statut s'il ne l'est pas.

Je pense que ces deux éléments ( crontab y logouthook ) en combinaison peut être une solution complète ici, mais je testerai également les solutions globales de /Library/LaunchAgents afin que je ne doive pas répéter les procédures si je veux que cette nouvelle fonctionnalité soit automatiquement appliquée à tout nouvel utilisateur créé.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X