2014-11-15 56 views
0

如何休眠一臺Windows機器,它可以從另一臺PC通過局域網運行Windows 7或8?
是否有WinAPI功能?或者我必須發送特殊的魔術包或類似的東西?
我所知道的是,PsShutdown.exe能夠做到這一點(據稱,我沒有嘗試過)。C++:遠程休眠PC

我不想使用第三方庫,我也不想在應該休眠的計算機上運行服務。我想使用現有的機制。

我還想知道是否需要更改目標計算機上的特定設置。 我不確定這是否重要,但shutdown /s /m \\ComputerName在我的目標PC上無法正常工作。

回答

0

TechNet文檔Restart or Shut Down a Remote Computer and Document the Reason描述了對遠程計算機使用shutdown.exe命令的要求。

  1. 爲了使用此功能,必須在遠程計算機上啓用Remote Registry service

  2. 訪問的管理員遠程註冊表或會員組的遠程計算機上完成此過程

+0

你誤解了兩件事。首先,我想使用一個API函數,COM或類似的,其次我想休眠我的目標PC,而不是關閉它或重新啓動它。 shutdown.exe的問題在於,它是一個專門的exe文件,這意味着性能會非常糟糕,特別是在重複運行時,以及對遠程PC沒有任何休眠和控制時。 – Forivin

+0

['InitiateShutdown'](http://msdn.microsoft.com/en-us/library/windows/desktop/aa376872(v = vs.85).aspx)API函數看起來像API'shutdown.exe'基於它有許多相同的標誌。我想你會發現上面列出的要求可以保證你是直接使用API​​還是通過shutdown.exe來使用API​​(並且我不能真正理解你的「瘋狂糟糕的性能」評論 - 你會多久無論如何這樣做?)。 –

+0

可能無法使用標準API遠程休眠,這可能是爲什麼'shutdown.exe'不提供該選項。 'PsShutdown'似乎可以通過它的管理員共享將程序複製到遠程計算機上工作,至少在'PsShutdown'頁面鏈接的Windows IT Pro文章中描述了這一點。 –

0

據我所知所需的最小,只有這樣,才能遠程冬眠一臺機器將使用與psshutdown相同的方法:將可執行文件複製到遠程機器並將其作爲系統服務進行安裝。

OpenSCManager API允許您指定目標計算機,並且可以使用它返回的句柄來調用CreateService,然後使用StartService。該服務在完成其工作後可以自行刪除。