Показать полную графическую версию : Гибридное выключение для удаленного компьютера
The_Immortal
20-01-2016, 12:01
Всех приветствую!
Друзья, подскажите, пожалуйста, каким образом можно отправить удаленный компьютер (Windows 8.1) в hybrid shutdown state (S4), используя PowerShell?
Я знаю про cmd-команду
shutdown.exe /s /hybrid /m /compname
Но она отправляет компьютер в обычное S5 (off) состояние, вместо ожидаемого hybrid shutdown state (S4).
Существует такое перечисление PowerState Enumeration (https://msdn.microsoft.com/ru-ru/library/system.windows.forms.powerstate%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1), но оно включается лишь два значения: hibernate and suspend. Но чистая гибернация это не то, что мне надо. Мне нужно именно сочетание гибернации с выключением, т.е. hybrid shutdown (S4).
Это как-то можно организовать?
Проверить можно:
Get-WinEvent -ProviderName Microsoft-Windows-Kernel-boot -MaxEvents 10 | Where-Object {$_.id -like "27"}
0x0 cold boot from full shutdown
0x1 hybrid boot (fast startup)
0x2 resume from hibernation
https://support.microsoft.com/en-us/kb/2776718
Windows 8 and Windows 8.1
In Windows 8 and Windows 8.1, the default shutdown behavior puts the system into the hybrid shutdown state (S4), and all devices are put into D3. WOL from S4 or S5 is unsupported. Network adapters are explicitly not armed for WOL in either S5 or S4 cases because users expect zero power consumption and battery drain in the shutdown state. This behavior removes the possibility of invalid wake-ups when an explicit shutdown is requested. Therefore, WOL is supported only from sleep (S3) or hibernation (S4) states in Windows 8 and 8.1.
PS. Если не работает WOL, то смотреть настройки BIOS и отключить hybrid shutdown (S4) state, в статье написано как.
The_Immortal
20-01-2016, 12:52
Kazun, PS. Если не работает WOL, то смотреть настройки BIOS и отключить hybrid shutdown (S4) state, в статье написано как. »Понимаете, мне наоборот надо, чтобы срабатывал hybrid shutdown (S4) state, т.к. с ним у меня WoL работает без проблем. А вот из S5 WoL не срабатывает никак.
Проверить можно: »Проверил.
Если выполняю выключение вот так:shutdown.exe /s /hybrid /m /compname, то после загрузки выдается Использовался следующий тип загрузки: 0x0.Баг MS? Или просто shutdown не поддерживает гибридное выключение для удаленной машины? Зачем же тогда разрешать выполнение данной команды?
Поэтому я и хочу попробовать как-нибудь по-другом вызывать гибридное выключение, а не через shutdown, который не срабатывает.
The_Immortal
20-01-2016, 13:55
Прямо напасть какая-то... Попробовал выполнение команды shutdown.exe /s /hybridна целевом компьютере через telnet и WinRs - компьютер ушел в S5! :cry:
Если выполнить ту же команду, но локально (непосредственно на это компьютере, например через RDP), то всё нормально - компьютер гибридно выключается.
:durak:
Так что PowerShell - последняя надежда...
Попробовать через WMI:
invoke-wmimethod -computername remotepc -path win32_process -name create -argumentlist "shutdown.exe /s /hybrid"
The_Immortal
20-01-2016, 14:09
Kazun, не-а :(
Использовался следующий тип загрузки: 0x0. Как вообще такое возможно? telnet - это то же cmd по сути. Почему из-под него не выполняется команда аналогичным образом? Почему игнорируется ключ /hybrid?
Foreigner
20-01-2016, 14:15
The_Immortal, А через wmi не работает?
(get-wmiobject win32_operatingsystem -computer comp).win32shutdown(5)
The_Immortal
20-01-2016, 14:21
Foreigner, win32shutdown(5) - это обычное выключение. win32shutdown (https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa394058%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396) не предоставляет опции для hybrid shutdown.
А если через планировщик?
schtasks /create /s remote /ru system /sc once /tn shuthb /tr "shutdown /s /hybrid" /st 10:00
schtasks /run /s remote /tn shuthb
The_Immortal
20-01-2016, 14:42
Kazun, опять обычное выключение... Это мистика, глюк или by design? Если последнее, то сомнительный дизайн получился какой-то. У меня куча компов, которые надо удаленно выключать и включать (не используя при этом ждущий режим или гибернацию). Как решать задачу - просто не представляю :(
Foreigner
20-01-2016, 14:46
The_Immortal, Чем hybrid отличается от hibernate? Последний работает только на локальной машине после включения данной опции (powercfg -h)
The_Immortal
20-01-2016, 14:47
Foreigner, hybrid - это лог-офф + последующая гибернация. Вот тут (http://www.techrepublic.com/blog/windows-and-office/how-windows-8-hybrid-shutdown-fast-boot-feature-works/) просто расписано, если интересно.
Foreigner
20-01-2016, 15:20
это лог-офф + последующая гибернация »
значит удаленно (через shutdown.exe) не выйдет, гибернация возможна только на локальной машине.
The_Immortal
20-01-2016, 16:19
Foreigner, но тогда непонятно, почему не срабатывает локальная команда через telnet и winrs? гибернация возможна только на локальной машине »К примеру, PsShutdown (https://technet.microsoft.com/en-us/sysinternals/psshutdown.aspx?f=255&MSPPError=-2147217396) спокойно отправляет в гибернацию удаленную машину. Только, к сожалению, данная утилита не имеет поддержки hybrid shutdown.
Foreigner
20-01-2016, 16:25
но тогда непонятно, почему не срабатывает локальная команда »
А включена гибернация?
powercfg /h
The_Immortal
20-01-2016, 17:00
Foreigner, обижаете... Конечно. Я же как-то тестировал команду shutdown /s /hybrid локально - она успешно выполняется.
The_Immortal
21-01-2016, 13:26
В общем, после небольшой дискуссии на технете обнаружилось, что удаленным образом выполнить гибридное выключение невозможно. Для этого необходим full logon (например, через RDP).
Но я буду жаловаться по этому поводу в MS :)
Благодарю за помощь!
The_Immortal, тут бы пригодилась и ссылка на эту небольшую дискуссию :).
The_Immortal
22-01-2016, 18:00
Iska, пожалуйста (https://social.technet.microsoft.com/Forums/windows/en-US/2d1e1d02-a624-4070-b74d-58b6af7be159/hybrid-shutdown-for-a-remote-computer?forum=winserverpowershell).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.