7

一部のコンピューターでは、ネットワークアダプターは、デフォルトで、「このデバイスがコンピューターをスリープ解除できるようにする」オプションがオフになっているように構成されています。その結果、WakeonLANは機能しません。

このオプションをオンに戻す必要がありますが、手動で行うことはできません。コンピューターが多すぎます。したがって、APIまたはスクリプトを使用してそれを実行できる必要があります。

(注:これは、プログラムでWake On LANを有効にする方法と重複していません。これは、BIOS設定に関する質問であるのに対し、これはオペレーティングシステム設定に関する質問であるためです。)

すでにバッチスクリプトを使用して答えがありますが、特にAPIを使用している場合は、代替ソリューションを歓迎します。

4

1 に答える 1

12

私はTheOldNewThingで解決策を見つけました。このpowercfgコマンドを使用すると、電源設定を操作できます。特に、とを使用して-deviceenablewake-devicedisablewake[このデバイスにコンピューターのスリープ解除を許可する]オプションのオンとオフを切り替えることができます。

このコマンドを使用して、これを実行できるデバイスを確認できます。

powercfg -devicequery wake_from_any

次を使用して、現在オプションが有効になっているデバイスを確認できます。

powercfg -devicequery wake_armed

すべてをまとめると、これは私がWakeonLANを有効にするために使い始めたばかりのバッチスクリプトです。

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

この場合、名前に「network」または「ethernet」という単語が含まれているすべての有効なデバイスでこのオプションを有効にすることを選択しました。もちろん、状況によっては、有効にするデバイスをより選択することをお勧めします。

于 2012-07-31T22:39:45.510 に答える