2012-07-31 5 views
6

Sur certains ordinateurs, les adaptateurs réseau sont configurés par défaut avec l'option «Autoriser ce périphérique à réactiver l'ordinateur» désactivée. Par conséquent, Wake on LAN ne fonctionnera pas.Comment activer "Autoriser ce périphérique à réveiller l'ordinateur" par programme?

Je dois réactiver cette option, mais je ne peux pas le faire à la main - trop d'ordinateurs! Donc, je dois pouvoir le faire via une API ou avec un script.

(Note:. Ce n'est pas un double de How to Enable Wake On LAN programmatically parce que la question est sur le réglage du BIOS alors que celui-ci est sur le réglage du système d'exploitation)

J'ai une réponse en utilisant déjà un script batch, mais des solutions alternatives Serait très bienvenue, surtout s'ils utilisent une API.

Répondre

11

J'ai trouvé une solution sur The Old New Thing. La commande powercfg vous permet de manipuler les paramètres d'alimentation, et en particulier vous pouvez utiliser les touches -deviceenablewake et -devicedisablewake pour activer ou désactiver l'option «Autoriser cet appareil à réveiller l'ordinateur».

Vous pouvez voir quels appareils sont capables de le faire avec cette commande:

powercfg -devicequery wake_from_any 

Vous pouvez voir quels périphériques ont l'option actuellement activée à l'aide:

powercfg -devicequery wake_armed 

Mettre tous ensemble, ce est le script batch que je viens de commencer à utiliser pour activer Wake on LAN:

powercfg -devicequery wake_from_any | findstr /i "network ethernet" >adapters.txt 
for /F "tokens=*" %%i in (adapters.txt) do powercfg -deviceenablewake "%%i" 
powercfg -devicequery wake_armed | findstr /i "network ethernet" || goto :failed 

Dans ce cas, j'ai choisi d'activer l'option sur tous les appareils valides dont le nom contient le mot «réseau» ou le mot «ethernet»; dans certaines situations, bien sûr, vous préférerez peut-être être plus sélectif sur les appareils que vous activez.

Questions connexes