Windows 7マシンをリモートデスクトップで接続しようとしたときに、自動的にスリープ状態を解除する方法はありますか?
接続したいマシンの省電力オプション(私が信じているグループポリシーによって強制されています)は30分後にスリープすることです。つまり、キーを押すために物理的に歩くか、別のウェイクオンを起動する必要があります。スリープモードから抜け出すためのLANツール。
リモートデスクトップ接続クライアントがWake-on-LANパケットを自動的に送信するといいのですが、これは可能ですか?
ルーターを介してマジックパケット(Wake ON LAN用)を送信する必要があります。ルーターはデフォルトでこれらを転送しないため難しいが、見つかった回避策がある here :
コンピューターをインターネットから起動するには、モデムに接続されたルーターとブロードバンド接続を維持して、接続を維持します(静的IPを使用している場合でもルーターが必要です)。
リモートからコンピューターをウェイクアップするには、インターネットのIPアドレスと、ウェイクアップするコンピューターのMAC番号を使用して、マジックパケットをインターネット経由で送信します。
IPアドレスがわからない場合:
リンク先: コンピュータ/サーバーのインターネットアドレスをリモートロケーションから見つける方法
Wake Up Over the Internetのシステムを準備する必要があります。
ルーターとソフトウェアファイアウォールを考慮してポートを開きます(他のポートと競合しないように大きなポート番号を使用します。5850が良い例です)。
WOLするコンピューターの内部IPにポートを割り当てます(ポートは1台のコンピューターでのみ使用できます)。
このユーティリティを入手すると、WOLのポートを定義できます。
リンク先: Wake on LAN for Windowsグラフィカルユーザーインターフェイス(WOL GUI)
WOL GUIのコピーを持って行き、MAC番号を書き留めます。リモートの場所でWOL GUIを起動し、MAC番号を入力します。インターネットアドレス(インターネットIP)を入力し、開いたままにしたポート番号を入力します。 Wake me Upをクリックすると、機能するはずです。
ユーティリティ:
Magic packet 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)リモートデスクトップ経由で接続する。
これらの機能がサポートされ、有効になっている場合、リモートデスクトップをオンにしても、whindosはスリープ/休止状態ポリシーについて警告しません。
他の回答の情報を使用して、次のファイルを含むフォルダーを作成しました。
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);
}
}
}
}
表示されるエラーメッセージに関連するさまざまなタイプの理由があります。
他のプログラムを閉じて、再度接続してください。問題が解決しない場合は、コンピュータを再起動してから、もう一度接続してみてください。それでも接続できない場合は、ネットワーク管理者またはテクニカルサポートに連絡してください。 (詳細については、メモリ不足の問題の防止を参照してください。)
ネットワーク接続が機能していることを確認してください。ローカルまたはグローバルドメインにアクセスするか、イーサネットケーブルがネットワークアダプターに接続されているか、ワイヤレススイッチがオンになっている場合。
リモートデスクトップが有効になっていることを確認します。リモートコンピュータが実行されているかどうかを確認します(スリープモードでも休止状態モードでもありません)。コンピューター名またはそのIPアドレスを確認し、正しく入力したことを確認します。
自宅のコンピューターを企業ドメインのコンピューターに接続するには、コンピューターが確実に通信できるようにするための中間手順が必要です。企業ネットワークへの仮想プライベートネットワーク(VPN)接続を確立します。
または、別のアプリケーションがRDPと同じポートを使用している可能性があります。
私の最も一般的なケースよりも詳細な例について、またはそれぞれの詳細については、以下を参照してください。