it-swarm-eu.dev

Qual è il comando da utilizzare per sospendere il computer (non in modalità ibernazione)?

Voglio mettere il mio PC Windows (Windows 7) in uno stato di sospensione tramite riga di comando (quindi posso associare il pulsante macro alla tastiera).

Il pulsante di accensione sul PC è configurato ma il computer è inattivo (ma è sul pavimento e io sono troppo pigro per arrivare giù) esattamente come lo voglio (dorme usando la modalità ibrida in caso di perdita di energia)

Funziona anche il comando di sospensione nel menu di spegnimento.

la maggior parte delle informazioni che ho trovato dice di usare;

%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0

Ma questo mette il computer in modalità ibernazione. Ho disabilitato l'ibernazione ma uso il sonno ibrido.

Quindi, qual è il comando da utilizzare per mettere il computer in modalità di sospensione (non ibernato)?

63
Eric L

Ho trovato una soluzione. Ho installato un programma freeware chiamato AutoHotKey e registrato i passaggi per richiamare il menu Start -> Sleep in un file di script. Quindi ho eseguito il file di script in un file eseguibile stand-alone SleepWin7.exe.

Ora eseguo semplicemente SleepWin7.exe per mettere il mio computer in modalità di sospensione ibrida.

È possibile disinstallare AutoHotKey se questo è tutto ciò che serve per.


Aggiornamento: la soluzione di cui sopra non funziona quando l'utente non ha effettuato l'accesso, ad esempio la schermata di accesso di Windows 7. (Il mio computer si sveglia alle 4:00 ogni domenica per eseguire il backup settimanale, che viene eseguito senza il login dell'utente.) In tal caso, il Wizmo programma funziona ancora:

wizmo.exe quiet standby!

13
Andy Lee

Spero che tu li trovi utili.

Arresto %windir%\System32\shutdown.exe -s

Riavvia %windir%\System32\shutdown.exe -r

Disconnetti %windir%\System32\shutdown.exe -l

Standby %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

Hibernate %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate

Attenzione: rundll32.exe non dovrebbe essere usato per avviare powerprof.dll . Invece dovresti chiamare direttamente SetSuspendState. Questo può essere fatto usando Powershell - crea un file, ad esempio sleep.ps1, con i seguenti contenuti.

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Quindi eseguirlo utilizzando powershell -File C:\your-path\sleep.ps1. Potrebbe essere necessario prima eseguire il comando Set-ExecutionPolicy RemoteSigned per abilitare l'esecuzione degli script di PowerShell.

Lo script precedente provoca una sospensione del sistema, che può essere interrotta o ibernata a seconda dell'impostazione di ibernazione corrente. Per modificare tale impostazione dalla riga di comando, eseguire powercfg -h off (o on) dalla riga di comando come amministratore.

72
imoatama

Vedi l'utilità gratuita di Wizmo , che può fare moltissime cose.
Il comando che stai cercando è probabilmente:

wizmo standby

15
harrymc

Puoi creare un file con estensione .ps1 (powershell) come "sleep.ps1" e scrivi questo:

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Lo uso quando ho qualcosa in esecuzione e devo lasciare il pc e non voglio spegnerlo. Quindi cambio lo script in modo che assomigli a questo:

$minutes = read-Host "Enter minutes to wait until sleep";
$secs= 60*$minutes;
Start-sleep -s $secs

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

E ora quando lo eseguo, inserisco solo i minuti in cui voglio aspettare fino a quando non dormo.

Puoi eseguirlo dalla riga cmd scrivendo

powershell -File C:\your-path\sleep.ps1

Se non hai mai eseguito uno script PowerShell prima, ti consigliamo di eseguirlo prima

Set-ExecutionPolicy RemoteSigned

in PowerShell per abilitare lo script in esecuzione. Questo deve essere eseguito solo una volta.

14
Artur Carvalho

Con Sysinternals PsTools [ download ]:

psshutdown -d

utilizzando lo strumento riga di comando PsShutdown .

(Potresti preferire questa soluzione se hai già scaricato PsTools, è piuttosto diffuso. A parte questo, questo approccio è equivalente all'uso di wizmoquiet standby.)

Fonte: https://superuser.com/a/331545/21887

11
Aaron Thoma

Sto usando questo SLEEP.EXE utility per anni. Funziona bene e non è necessario ricordare quali argomenti devono essere assegnati alla modalità di sospensione (la sua forma predefinita di "sospensione").

7
jjlin

per disabilitare la modalità di ibernazione che è necessario utilizzare

powercfg -h off

ora, rundll32 powrprof.dll, SetSuspendState metterà la stazione in modalità stanby

[MODIFICARE]

in realtà non riesco a configurare un sonno ibrido perché ho un laptop (uno stato che non è disponibile sulle stazioni mobili), per il sonno ibrido è necessario attivare la modalità di sospensione e alcuni dicono che rundll32 powrprof.dll, SetSuspendState attiva il sonno predefinito modalità nel pannello di controllo\impostazioni di gestione dell'alimentazione. per favore prova se rundll32 powrprof.dll, SetSuspendState hybrid sleep dai alcuni risultati.

6
user8228

Crea un file bat, dove 600 è un ritardo in secondi.

ping -n 600 -w 1 127.0.0.1> nul

powercfg -h off

% windir%\System32\rundll32.exe powrprof.dll, SetSuspendState Standby

5
dim77x

Se sei competente nella compilazione di un programma .NET, il seguente comando lo farà

System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend, 
                                                 false,   /* force */
                                                 true     /* disableWake */);

Nota: Non è necessario disabilitare la modalità di sospensione come richiesto dal comando rundll32 powrprof.dll,SetSuspendState. Puoi anche usare PowerState.Hibernate che andrà in ibernazione se vuoi.

È possibile compilare facilmente un EXE con questo comando con qualsiasi versione di Visual Studio . Basta creare un'applicazione console e aggiungere un riferimento alla DLL System.Windows.Forms.

4
Simon