Мы используем службу WMI для удаленного выключения компьютеров в нашем офисе.
Это отлично работает для наших систем Windows 7, но мы обнаружили, что наши ПК с Windows XP зависают в состоянии «Выключение» на неопределенный срок после получения удаленной команды выключения.
Интересно то, что если нажать клавишу на клавиатуре проблемного ПК или подтолкнуть мышь, ПК продолжит выключаться и выключится примерно через 10 секунд.
Что может быть причиной такого поведения?
решение1
Видимо, Windows XP, Vista, 7 и 8 поставляются с shutdown.exe для такого рода вещей (хотя аргументы/параметры изменились после XP). В моей системе Windows 8.1:
C:\Windows\System32>shutdown /?
Usage: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/f]
[/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
No args Display help. This is the same as typing /?.
/? Display help. This is the same as not typing any options.
/i Display the graphical user interface (GUI).
This must be the first option.
/l Log off. This cannot be used with /m or /d options.
/s Shutdown the computer.
/r Full shutdown and restart the computer.
/g Full shutdown and restart the computer. After the system is
rebooted, restart any registered applications.
/a Abort a system shutdown.
This can only be used during the time-out period.
/p Turn off the local computer with no time-out or warning.
Can be used with /d and /f options.
/h Hibernate the local computer.
Can be used with the /f option.
/hybrid Performs a shutdown of the computer and prepares it for fast startup.
Must be used with /s option.
/e Document the reason for an unexpected shutdown of a computer.
/o Go to the advanced boot options menu and restart the computer.
Must be used with /r option.
/m \\computer Specify the target computer.
/t xxx Set the time-out period before shutdown to xxx seconds.
The valid range is 0-315360000 (10 years), with a default of 30.
If the timeout period is greater than 0, the /f parameter is
implied.
/c "comment" Comment on the reason for the restart or shutdown.
Maximum of 512 characters allowed.
/f Force running applications to close without forewarning users.
The /f parameter is implied when a value greater than 0 is
specified for the /t parameter.
/d [p|u:]xx:yy Provide the reason for the restart or shutdown.
p indicates that the restart or shutdown is planned.
u indicates that the reason is user defined.
If neither p nor u is specified the restart or shutdown is
unplanned.
xx is the major reason number (positive integer less than 256).
yy is the minor reason number (positive integer less than 65536).
Видетьhttp://www.computerhope.com/issues/ch000321.htmдля небольшого руководства по использованию некоторых из этих аргументов/параметров.
EDIT: Я упоминаю об этом только потому, что, возможно, поведение будет иным. Что касается того, что вызывает зависание, это может быть любое количество программ, запущенных на этих системах XP. Я помню, как некоторые версии Windows жаловались на ожидание закрытия определенной программы, прежде чем она закроется, но я никогда не слышал о случаях, когда зависание исчезало после некоторой активности клавиатуры/мыши.