
我想確保人們在一台特定的多用戶電腦上完成工作後就可以註銷。目前,下一個用戶只需「切換用戶」並繼續工作,但在打開程式的情況下同時登入許多用戶似乎會耗盡資源。
如果使用者 24 小時沒有活動,是否可以自動從電腦登出?
或者,是否可以在午夜註銷除當前用戶之外的所有人?
該電腦位於 Windows 網域網路上 - 儘管我只希望自動登出適用於單一電腦(而且我不是網路管理員)
。
答案1
為了在保持當前用戶連接的同時註銷已斷開連接的用戶,請將以下腳本代碼複製到 .cmd 文件(例如“LogOffUsers.cmd”)中,然後在午夜將其作為服務運行:
@echo off
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do logoff %%b
該腳本的工作原理是使用查詢命令透過搜尋短語“disc”來尋找已斷開連接的用戶,然後將其登出。
如果您希望腳本作為服務連續運行,在用戶斷開連接/不活動一段時間後登出用戶,您可以使用:
@echo off
:Top
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else %%e GTR 32 (logoff %%b)
choice /T 120 /C 1 /D 1 /N
goto top
此腳本使用相同的查詢命令,但另外檢查結果的「IDLE TIME」部分,如果空閒時間大於 32 (“GTR 32”),則登出使用者。該短語出現兩次,因為“IDLE TIME”標記可能出現在兩個略有不同的位置。然後以「choice」開頭的行等待 2 分鐘,然後循環到開頭再次執行操作。您可以根據需要增加或減少“32”值。
成立這裡。
答案2
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else (if %%e GTR 35 (logoff %%b))
請注意,上述內容僅適用於空閒時間,如果您想在註銷斷開連接的會話之前使用數小時的空閒時間,則需要對其進行輕微修改。
for /f "tokens=1-8 delims=,:/ " %%a in ('query user ^| find /i "disc"') do if %%d GTR 23 (if %%h GTR 2012 (logoff %%b))
更改23來調整時間,以上將在24小時或更長的空閒時間上工作。 %%h 2012 確保 %%d 值是小時而不是分鐘值。
答案3
我會尋找一種方法來停用“切換用戶”功能。這可能有幫助。