題 Windows 7命令行定時註銷


此命令立即註銷用戶:

shutdown /l /f

/l = This option will immediately log off the current user on the current machine. You can not use the /l option with the /m option to log off a remote computer. The /d, /t, and /c options are also not available with /l.

因為我不能使用 /t /c 交換機,我無法關閉註銷時間。

注意:即使關閉命令,它也應該註銷。

還有其他方法嗎?


4
2017-08-13 07:19


起源


您可以使用編寫批處理文件 ping 192.0.2.2 -n 1 -w 10000 > nul 作為延遲然後 shutdown /l /f 或者你對它們為什麼需要進行限制? - 50-3
在Windows 7上,您也可以使用 timeout 10但是,即使在批處理/命令完成後,我也需要進行此註銷。 - user243868
timeout /T 10 && logoff 不起作用? - gregg


答案:


您可以使用創建計劃任務 schtasks

schtasks /create /st 09:50 /sc once /tr logoff /tn LogOff

這將在09:50創建一個新的計劃任務,該任務運行一次。它會執行 logoff (logoff 應該做同樣的事情 shutdown /l /f)並將任務命名為“LogOff”。


2
2017-08-13 07:50



看起來很有希我怎麼設置它10秒鐘? - user243868
@ user243868:我不確定是否 schtasks 直接支持,它可能不支持。看起來, schtasks 甚至不接受帶秒的時間值 ST 參數。 - Der Hochstapler
@ user243868:這有用嗎?每當我給予 schtasks 幾秒鐘的時間(如 01:23:45),它會告訴我時間已經過去。 - Der Hochstapler
不得不改變它,但我想我明白了。將提交可能的解決方案。 - user243868
不,我不能提交自己的解決方案。 - user243868


編輯:完整解決方案。但是,schtasks不支持在接下來的10秒內進行調度。最快的下一個時間表是新的一刻。

@echo on

for /F "tokens=1-3 delims=:." %%a in ("%time%") do (
set Hour=%%a
set Minute=%%b
set Seconds=%%c
)

set /A newTime=(Hour*3600) + (Minute*60) + (Seconds + 60)
set /A Hour=newTime/3600
set /A Minute=(newTime %% 3600) / 60
set /A Seconds=(newTime %% 3600) %% 60

if %Hour% gtr 23 (set Hour=0) ELSE (IF %Hour% lss 10 set Hour=0%Hour%)
IF %Minute% lss 10 set Minute=0%Minute%
IF %Seconds% lss 10 set Seconds=0%Seconds%

Set TaskTime=%Hour%:%Minute%:%Seconds%
Echo %Time%
Echo %TaskTime%

schtasks /delete /tn "LogOff" /f

schtasks /create /st %TaskTime% /sc once /tr logoff /tn "LogOff"

1
2017-08-14 08:22





你可以做一個 AutoIt的 腳本延遲運行命令:

; Initialize variables
$second = 1000

; Script options
Opt("TrayAutoPause", 0) ; 0 = no pause, 1 = pause
Opt("TrayIconHide", 1)  ; 0 = show, 1 = hide tray icon

; Optionally, sleep for a number of seconds before starting the process
If 0 < $CmdLine[0] Then
    Sleep( $CmdLine[1] * $second )
EndIf

Run("shutdown /l /f")

將腳本編譯到程序後,可以從批處理文件中調用它:

@echo off
start "" DelayLogoff.exe 10
pause

小費:你可以把這整件事放在批處理文件中,但是使用隱藏的AutoIt腳本可以避免出現其他非常好的Windows的問題 超時 程序。


0
2017-08-16 18:56





無法在谷歌搜索中找到任何內容......

我用Vista / Server 2008R2 GPO做到了這一點: 在2008R2或更高版本的DC上通過GPMC創建和編輯GPO。 轉到計算機/首選項/控制面板/計劃任務。 安排兩項任務,一項為15分鐘。警告,一個用於註銷。 對於每個分配由域用戶運行的任務(檢查要啟用的組)。僅在用戶登錄時運行。以最高優先級運行。在關閉任務之前安排消息任務15分鐘。各個操作是採取措施:顯示消息並執行操作:運行程序:C:\ windows \ system32 \ logoff.exe。

確保將消息設置為先運行。

問候。


0
2018-02-19 13:55



請修復你的答案的格式.... - Pierre.Vriens