起因 : 由於離位後不想讓其他使用者看到電腦使用中的任何資訊 , 又不想對此電腦設定開機密碼 , 藉由系統內建的系統排程的閒置才觸發以下流程
注意 : 平時必須養成隨時存檔的習慣 , 避免離位後強制退出沒有存檔
- 系統排程增加流程 , 觸發條件設定閒置 ?? 分才執行以下 BATCH 檔案
- 藉由手機連線 Wifi 設定固定IP的方式 , 由電腦 ping 3次此 IP(有時候網路不順暢也可能ping 不到造成誤判,目前寫成3次測試一陣子看看) , 判斷是否存在來判斷管理者是否已經離位
- ping 3 次還是可能 ping 不到實際存在的機器 , 增加 arp 暫存判斷 , arp 系統自動清空才算真的離線
- 若 ping 不到則判斷 log 是否有內容
- 若無內容 , 寫入時間到 log 檔內 , 強制重開機
- 若有內容 , 就維持原狀 (代表已經重開機過 , 避免一直重複重開機)
- 相反若是 ping 得到就維持原狀 , 並且清除 log 檔
@echo off
SET log=D:\BATCH\log\自動重開機.txt
SET IP="192.168.1.234"
cd\
c:
ping -n 1 %IP% | find "TTL=" >nul
if errorlevel 1 (
echo offline1
ping -n 1 %IP% | find "TTL=" >nul
if errorlevel 1 (
echo offline2
ping -n 1 %IP% | find "TTL=" >nul
if errorlevel 1 (
echo offline3
arp -a | find %IP% >nul
if errorlevel 1 (
echo offline_ARP
For /f %%i in (%log%) do Goto Exist
echo 紀錄空白
date /t > %log%
time /t >> %log%
rem shutdown -r -f -t 0
exit
) else (
echo online_ARP
echo 紀錄清空
powershell.exe -ExecutionPolicy Bypass -Command "Clear-Content %log%"
exit
)
) else (
echo online3
echo 紀錄清空
powershell.exe -ExecutionPolicy Bypass -Command "Clear-Content %log%"
exit
)
) else (
echo online2
echo 紀錄清空
powershell.exe -ExecutionPolicy Bypass -Command "Clear-Content %log%"
exit
)
) else (
echo online1
echo 紀錄清空
powershell.exe -ExecutionPolicy Bypass -Command "Clear-Content %log%"
exit
)
:Exist
exit