Windows-7

在指定時間沒有人登錄時關閉客戶端

  • December 20, 2019

在我們公司,人們在晚上 7 點停止工作。晚上 8 點,我們使用 GPO 執行計劃任務,以警告登錄使用者電腦將要關閉。這工作正常。

當沒有人登錄並且電腦仍在執行時,我們想關閉電腦。有誰知道如何做到這一點?

我們執行 Windows Server 2012,我們的客戶端是 Windows 7。

關閉電腦相當容易 - 正如其他人所指出的,您可能會為此使用該shutdown命令。如果您已將電腦的本地防火牆配置為允許來自管理主機的 SMB 和 RPC(例如,通過在組策略中啟用遠端管理例外),您可以使用/m \\computername您的關閉呼叫的參數為您域中的所有電腦集中觸發關閉:

shutdown /s /f /t 30 /m \\pcXXX /c "Automatic shutdown"

SysInternals 提供了psshutdown更靈活的關閉命令版本,即. 除其他外,它允許使用者互動(即,如果需要,使用者將有機會中止關閉請求)

現在要確定使用者是否登錄到機器,您必須測試每個使用者,例如使用quser命令。典型的輸出如下所示:

C:\Users\denis>quser
USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>denis                 console             1  Active      none   22.04.2014 15:11

您可以過濾諸如“Active”之類的字元串,以確定您是否可以安全關閉。批處理版本可能如下所示:

關機未使用的.bat

ping %1
if errorlevel 1 ( echo %1 seems offline && exit 1)
quser /SERVER:%1 | find "Active"
if %errorlevel% == 1 shutdown /s /f /t 30 /M \\%1 /c "Automatic shutdown"

如果 pc1234 是 a) 可ping 且 b) 沒有使用者主動登錄,呼叫shutdownunused.bat pc1234將測試並關閉 pc1234(如果使用者登錄但斷開連接或他的機器被鎖定,它將關閉主機)。這可以根據您的喜好編寫腳本 - 通過使用僅限本地版本作為計劃任務或通過列舉域中的所有站點從管理主機集中觸發。後一種方法的優點是更容易保存日誌和創建統計資訊。

引用自:https://serverfault.com/questions/591773