リモートデスクトップでWindows 7マシンに接続しようとすると、自動的にスリープから復帰する方法はありますか?
接続したいマシンの省電力オプション(私が信じるグループポリシーにより強制)は、30分後にスリープすることです。つまり、物理的に歩いてキーを押すか、別のWake-on-スリープモードから抜け出すためのLANツール。
リモートデスクトップ接続クライアントがWake-on-LANパケットを自動的に送信してくれたらいいのですが、これは可能ですか?
リモートデスクトップでWindows 7マシンに接続しようとすると、自動的にスリープから復帰する方法はありますか?
接続したいマシンの省電力オプション(私が信じるグループポリシーにより強制)は、30分後にスリープすることです。つまり、物理的に歩いてキーを押すか、別のWake-on-スリープモードから抜け出すためのLANツール。
リモートデスクトップ接続クライアントがWake-on-LANパケットを自動的に送信してくれたらいいのですが、これは可能ですか?
回答:
ルーター経由でマジックパケット(Wake ON LAN用)を送信する必要があります。ルーターはデフォルトでこれらを転送しないので難しいですが、ここにあるような回避策があります:
インターネットからコンピューターを起動するには、モデムに接続されたルーターとのブロードバンド接続が必要です。ルーターは、接続を維持します(静的IPがある場合でもルーターが必要です)。
リモートからコンピューターをウェイクアップするには、インターネットIPアドレスと、ウェイクアップするコンピューターのMAC番号を使用して、インターネット経由でマジックパケットを送信します。
IPアドレスがわからない場合:
リンク先:リモートロケーションからコンピューター/サーバーのインターネットアドレスを見つける方法。
Wake Up over Internet用にシステムを準備する必要があります。
ルーターとソフトウェアファイアウォールを考慮してポートを開きます(他のポートと競合しないように高いポート番号を使用します。5850が良い例です)。
ポートをWOLするコンピューターの内部IPに割り当てます(ポートは1台のコンピューターにのみ使用できます)。
このユーティリティを入手すると、WOLのポートを定義できます。
リンク先: Wake on LAN for Windowsグラフィカルユーザーインターフェイス(WOL GUI)
WOL GUIのコピーを持って行き、MAC番号を書き留めます。リモートロケーションでWOL GUIを起動し、MAC番号を入力します。インターネットアドレス(インターネットIP)を入力し、開いたままにしたポート番号を入力します。[Wake me Up]をクリックすると、動作するはずです。
ユーティリティ:
マジックパケットGUIユーティリティはフリーウェアです。
また、ホットキーを使用してWake On LANのコマンドラインバージョンと共に起動することもできます。
構文:
C:\path\to\wolcmd.exe [Mac address] [IP address] [Subnet mask] [port number]
物事を簡単にする:
!w :: Run、C:\ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
それに応じてスクリプトを変更して、パスがwolcmd.exe
実行可能ファイルを指し、MAC、IP、およびサブネットが正しいようにします。
John Siblyの回答を改善しています... Windowsの場合、以下のように「timeout」コマンドを使用してC#コードを回避できます。
ECHO OFF
CLS
WolCmd.exe MAC_OF_NIC IP_ADDR MASK 7
timeout 10
ECHO Starting remote desktop connection
start mstsc.exe mycomputer.rdp
.cmdファイルのスリープセクションに関するその他のオプションについては、StackOverflowでこの回答を参照してください:https : //stackoverflow.com/questions/4317020/windows-batch-sleep
リモートデスクトップには、リモートウェイクアップ機能が組み込まれていません。
任意のパケットで起動するようにネットワークカードを構成できる場合があります。ただし、これはおそらく、意図したとおりには機能しません。リモートデスクトップ接続の試行と、ネットワークまたは単に使用しているサービスからの潜在パケットをスキャンする誰かとを区別しないためです。
今のところ、おそらく2段階のプロセスで解決する必要があります。1)1つのアプリケーションでコンピューターを起動する、2)リモートデスクトップ経由で接続する。
他の回答の情報を使用して、次のファイルを含むフォルダーを作成しました。
connect.bat
mycomputer.rdp (remote desktop connection file)
sleep.exe (a little program to wait a specified number of milliseconds)
wolcmd.exe
したがって、connect.batを実行して、コンピューターを起動し、10秒間待機してから、リモートデスクトップ接続を開きます。
connect.batには次が含まれます。
ECHO OFF
CLS
WolCmd.exe 0011AA22BB33 10.1.255.255 255.255.0.0 7
ECHO Sleeping...
Sleep.exe 10000
ECHO Starting remote desktop connection
start mstsc.exe mycomputer.rdp
以下のソースをsleep.csとして保存し、.NETフレームワークに付属のC#コンパイラを使用してコンパイルすることにより、sleep.exeを生成できます。
csc /out:sleep.exe c:\sleep.cs
sleep.csのソース
using System;
using System.Threading;
namespace Sleep
{
class Program
{
static void Main(string[] args)
{
if (args.Length == 1)
{
int period = 0;
Int32.TryParse(args[0], out period);
Console.WriteLine("Sleeping for {0} ms", period);
Thread.Sleep(period);
}
}
}
}
http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspxに記載されているように、ARPオフロードとTCP SYNウェイクパターンをサポートするネットワークアダプターが必要です。
これらの機能がサポートされ有効になっている場合、リモートデスクトップをオンにしたときにwhindosはスリープ/休止状態ポリシーについて警告しません。
表示されるエラーメッセージに関連するさまざまなタイプの理由があります。
他のプログラムを閉じてから、接続し直してください。問題が解決しない場合は、コンピューターを再起動してから、もう一度接続してください。それでも接続できない場合は、ネットワーク管理者またはテクニカルサポートにお問い合わせください。(詳細については、メモリ不足の問題の防止を参照してください。)
ローカルまたはグローバルドメインにアクセスしたり、イーサネットケーブルがネットワークアダプターに接続されているか、ワイヤレススイッチがオンになっているなど、ネットワーク接続が機能していることを確認します。
リモートデスクトップが有効になっていることを確認します。リモートコンピューターが実行されているかどうかを確認します(スリープモードでも休止モードでもありません)。コンピューター名またはそのIPアドレスを確認し、正しく入力したことを確認します。
ホームコンピューターを企業ドメインのコンピューターに接続するには、企業ネットワークへの仮想プライベートネットワーク(VPN)接続を確立するなど、コンピューターが通信できるようにするための中間ステップが必要です。
または、別のアプリケーションがRDPと同じポートを使用している可能性があります。
私の最も一般的なケースよりも詳細な例、またはそれぞれの詳細については、以下を参照してください。