Windows 7 viene disattivato quando apro il desktop remoto


24

Esiste un modo per disattivare automaticamente una macchina Windows 7 quando provo a connettermi ad essa con Desktop remoto?

L'opzione di risparmio energetico della macchina a cui voglio collegarmi (imposto dalla politica di gruppo credo) è quella di dormire dopo 30 minuti, il che significa che devo passare fisicamente per premere un tasto o accendere un Wake-on- separato Strumento LAN per uscire dalla modalità di sospensione.

Sarei carino se il client Connessione desktop remoto inviasse automaticamente il pacchetto Wake-on-LAN - è possibile?


2
Le schede madri più recenti non hanno questa funzione?
Dalin Seivewright,

@DalinSeivewright Sì, la mia nuova macchina di sviluppo lo fa automaticamente adesso :)
John Sibly,

Risposte:


13

Dovrai inviare un pacchetto magico (per Wake ON LAN) attraverso il tuo router. Difficile perché i router non li inoltrano per impostazione predefinita, ma ci sono soluzioni alternative come trovate qui :

Per riattivare un computer da Internet è necessaria una connessione a banda larga con un router collegato al modem che mantenga attiva la connessione (è necessario un router anche se si dispone di un IP statico).

Il risveglio del computer dal telecomando viene effettuato inviando il pacchetto magico tramite Internet utilizzando l'indirizzo IP Internet e il numero MAC del computer che si desidera svegliare.

Se non conosci il tuo indirizzo IP:

Collegamento a: come trovo l'indirizzo Internet del mio computer / server da una posizione remota.

Devi preparare il sistema per Wake Up Over Internet.

Apri una porta dal router e dal software firewall (usa un numero di porta alto in modo che non sia in conflitto con qualsiasi altra porta, 5850 è un buon esempio).

Assegnare la porta all'IP interno del computer che si desidera WOL (è possibile utilizzare la porta solo per un computer).

Ottieni questa utility che ti consente di definire una porta per WOL.

Collegamento a: Wake on LAN per Windows Graphical User Interface (WOL GUI)

Porta con te una copia della GUI di WOL e annota il numero MAC. Nella posizione remota avvia WOL GUI e digita il tuo numero MAC, digita l'indirizzo Internet (Internet IP) digita il numero di porta che hai lasciato Apri. Fai clic su Wake me Up e dovrebbe funzionare.

L'utilità:

testo alternativo

L'utilità della GUI del pacchetto magico è freeware.


È inoltre possibile utilizzare un tasto di scelta rapida per riattivarlo insieme alla versione da riga di comando di Wake On LAN :

La sintassi:

C:\path\to\wolcmd.exe [Mac address] [IP address] [Subnet mask] [port number]

Semplificare le cose:

! w :: Run, C: \ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt+ wrisveglierà il computer remoto

modificare lo script di conseguenza in modo che il percorso punti wolcmd.exeall'eseguibile e che MAC, IP e sottorete siano corretti.


Ciao John, sì, questo è lo strumento che attualmente devo usare se voglio far dormire questo computer. Mi chiedevo se per Desktop remoto fosse possibile farlo automaticamente?
John Sibly,

1
Nativamente non conosco un modo per farlo automaticamente, e se uso AutoHotkey per riattivarlo automaticamente quando apro il desktop remoto, l'apertura di RDC per un motivo diverso risveglierà comunque il tuo computer di casa che non vuoi, quindi ho modificato la mia risposta per elaborare come impostare un tasto di scelta rapida per riattivare il computer remoto.
John T,

1
La risposta di John T è brillante. Tutto quello che posso aggiungere è che ho creato una scorciatoia sul mio desktop con: wol -i 192.168.1.61 -p 00: 24: 8C: 1F: 90: 23 wol 00: 24: 8C: 1F: 90: 23 (Can ' ricorda perché ho aggiunto due comandi simili) Quindi assegno la scorciatoia a una combinazione di tastiera, ad esempio Ctrl + maiusc + j Funziona bene per una macchina desktop. Ma alle prese con il mio portatile è bello.
Guy Thomas,

Grazie per tutto il feedback. La versione della riga di comando sembra molto promettente - Penso che la soluzione (almeno per me) sia quella di creare un file batch per: chiamare lo strumento da riga di comando, attendere circa 5 secondi e avviare "mstsc.exe mycomputer.rdp"
John Sibly,

3

Migliorare la risposta di John Sibly ... se in Windows puoi evitare il codice C # usando il cmd "timeout" come di seguito.

ECHO OFF
CLS
WolCmd.exe MAC_OF_NIC IP_ADDR MASK 7
timeout 10
ECHO Starting remote desktop connection
start mstsc.exe mycomputer.rdp

Vedi questa risposta su StackOverflow per ulteriori opzioni riguardanti la sezione sleep del file .cmd: /programming/4317020/windows-batch-sleep


Comando utile - Devo ricordarmelo per i futuri file batch :)
John Sibly,

2

Desktop remoto non ha alcuna funzionalità di riattivazione remota integrata.

Potresti essere in grado di configurare la scheda di rete per svegliarti su qualsiasi pacchetto. Tuttavia, questo probabilmente non funzionerà come previsto, poiché non discriminerà tra il tentativo di connessione al desktop remoto e qualcuno che sta semplicemente eseguendo la scansione della rete o di un pacchetto latente da un servizio in uso.

Per ora, probabilmente dovrai accontentarti di un processo in due passaggi: 1) riattiva il computer con un'applicazione, 2) Connetti tramite desktop remoto.


2

Usando le informazioni delle altre risposte, ho finito per creare una cartella contenente i seguenti file:

connect.bat
mycomputer.rdp (remote desktop connection file)
sleep.exe (a little program to wait a specified number of milliseconds)
wolcmd.exe

Quindi eseguendo connect.bat, riattiva il mio computer, attende 10 secondi e quindi apre una connessione desktop remoto ad esso.

connect.bat contiene quanto segue:

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

È possibile generare sleep.exe salvando l'origine seguente come sleep.cs e compilandolo utilizzando il compilatore C # fornito con .NET framework:

csc /out:sleep.exe c:\sleep.cs

Fonte per 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

È necessario un adattatore di rete che supporti l'offload ARP e il modello di riattivazione TCP SYN come indicato in http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspx

Se tali funzionalità sono supportate e abilitate, i whindos non ti avvertiranno dei criteri di sospensione / ibernazione quando accendi il desktop remoto.


Ho notato che questo funziona sulla mia nuova macchina di sviluppo, credo che questo sia il motivo.
John Sibly,

1

Esistono diversi motivi di tipo relativi al messaggio di errore visualizzato.

Non abbastanza memoria

Chiudi gli altri programmi, quindi riprova a connetterti. Se il problema persiste, riavviare il computer, quindi riprovare a connettersi. Se non riesci ancora a connetterti, contatta il tuo amministratore di rete o il supporto tecnico. (Per ulteriori informazioni, consultare Prevenzione dei problemi di memoria insufficiente.)

Errore di rete

Assicurarsi che la connessione di rete funzioni, ad es. Accedendo a un dominio locale o globale o se il cavo Ethernet è collegato alla scheda di rete o lo switch wireless è acceso.

Impossibile trovare il computer remoto

Verificare che Desktop remoto sia abilitato. Controllare se il computer remoto è in esecuzione (né in modalità sospensione né ibernazione). Verifica il nome del computer o il suo indirizzo IP e assicurati di averlo digitato correttamente.

La connessione di un computer di casa a un computer in un dominio aziendale richiede un passaggio intermedio per garantire che i computer possano comunicare, ad esempio per stabilire una connessione di rete privata virtuale (VPN) alla rete aziendale.

Oppure un'altra applicazione potrebbe utilizzare la stessa porta di RDP.

Per ulteriori esempi rispetto ai miei casi più comuni o per dettagli su ciascuno di essi vedere:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.