リモートデスクトップを開くとWindows 7がスリープ状態から復帰する


24

リモートデスクトップでWindows 7マシンに接続しようとすると、自動的にスリープから復帰する方法はありますか?

接続したいマシンの省電力オプション(私が信じるグループポリシーにより強制)は、30分後にスリープすることです。つまり、物理的に歩いてキーを押すか、別のWake-on-スリープモードから抜け出すためのLANツール。

リモートデスクトップ接続クライアントがWake-on-LANパケットを自動的に送信してくれたらいいのですが、これは可能ですか?


2
新しいマザーボードにはこの機能がありませんか?
ダリンSeivewright

@DalinSeivewrightはい、そうです-私の最新の開発マシンは今これを自動的に行います:)
ジョンシブリー14

回答:


13

ルーター経由でマジックパケット(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]

物事を簡単にする:

  • AutoHotkeyをダウンロード
  • 次のスクリプトを使用します。
!w :: Run、C:\ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt+ wリモートコンピュータをウェイクします

それに応じてスクリプトを変更して、パスがwolcmd.exe実行可能ファイルを指し、MAC、IP、およびサブネットが正しいようにします。


こんにちはジョン-はい、これは、このコンピューターをスリープ状態にしたい場合に現在使用しているツールです。リモートデスクトップで自動的に実行できるかどうか疑問に思っていましたか?
ジョンシブリー09年

1
もともと私はそれを自動的に行う方法を知りません。リモートデスクトップを開いたときにAutoHotkeyを使用して自動的に起動する場合、別の理由でRDCを開くと、不要なホームコンピューターが起動しますので、答えを編集しましたホットキーを設定してリモートコンピューターをスリープ解除する方法について詳しく説明します。
ジョンT

1
ジョンTの答えは素晴らしい。私が追加できるのは、デスクトップにwol -i 192.168.1.61 -p 00:24:8C:1F:90:23 wol 00:24:8C:1F:90:23(Can ' t似たようなコマンドを2つ追加した理由を思い出してください)次に、ショートカットをキーボードコンボに割り当てます。たとえば、Ctrl + shift + jデスクトップマシンで正常に動作します。しかし、私のラップトップのnicに苦労しています。
ガイトーマス

すべてのフィードバックをありがとう。コマンドラインバージョンは非常に有望に見えます-私にとって解決策は(少なくとも私にとって)バッチファイルを作成することだと思います:コマンドラインツールを呼び出し、5秒ほど待ってから「mstsc.exe mycomputer.rdp」を起動します
ジョンシブリー09年

3

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

リモートデスクトップには、リモートウェイクアップ機能が組み込まれていません。

任意のパケットで起動するようにネットワークカードを構成できる場合があります。ただし、これはおそらく、意図したとおりには機能しません。リモートデスクトップ接続の試行と、ネットワークまたは単に使用しているサービスからの潜在パケットをスキャンする誰かとを区別しないためです。

今のところ、おそらく2段階のプロセスで解決する必要があります。1)1つのアプリケーションでコンピューターを起動する、2)リモートデスクトップ経由で接続する。


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);
            }
        }
    }
}

2

http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspxに記載されているように、ARPオフロードとTCP SYNウェイクパターンをサポートするネットワークアダプターが必要です。

これらの機能がサポートされ有効になっている場合、リモートデスクトップをオンにしたときにwhindosはスリープ/休止状態ポリシーについて警告しません。


これは私の最新の開発マシンで動作することに気づきました。これが理由だと思います。
ジョンシブリー

1

表示されるエラーメッセージに関連するさまざまなタイプの理由があります。

メモリーが充分ではありません

他のプログラムを閉じてから、接続し直してください。問題が解決しない場合は、コンピューターを再起動してから、もう一度接続してください。それでも接続できない場合は、ネットワーク管理者またはテクニカルサポートにお問い合わせください。(詳細については、メモリ不足の問題の防止を参照してください。)

ネットワーク障害

ローカルまたはグローバルドメインにアクセスしたり、イーサネットケーブルがネットワークアダプターに接続されているか、ワイヤレススイッチがオンになっているなど、ネットワーク接続が機能していることを確認します。

リモートコンピューターが見つかりません

リモートデスクトップが有効になっていることを確認します。リモートコンピューターが実行されているかどうかを確認します(スリープモードでも休止モードでもありません)。コンピューター名またはそのIPアドレスを確認し、正しく入力したことを確認します。

ホームコンピューターを企業ドメインのコンピューターに接続するには、企業ネットワークへの仮想プライベートネットワーク(VPN)接続を確立するなど、コンピューターが通信できるようにするための中間ステップが必要です。

または、別のアプリケーションがRDPと同じポートを使用している可能性があります。

私の最も一般的なケースよりも詳細な例、またはそれぞれの詳細については、以下を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.