2017-06-26 115 views
0

我做了一個腳本,用戶在登錄TSE(Windows Server 2008 R2)時記錄每個人。劇本與GPO一起發揮。登錄Windows只需一次

echo %date%;%time:~0,8%;%username% >> D:\log\log.txt

我要記錄用戶一天的第一次。 如: USER1在日誌中記錄爲9:35 9:38 12:30 18:38只有一條線路:

26/06/2017;09:35:00;user1 
+0

一個相關的命令是:'wmic netlogin get name,fullname,lastlogon'。這也將消除區域設置影響日期格式的問題。 – lit

回答

0
for /f %%a in ('findstr /b /c:"%date%;" "D:\log\log.txt" 2^>nul^|findstr /c:";%username%" 2^>nul') do goto nolog 
echo %date%;%time:~0,8%;%username% >> D:\log\log.txt 
:nolog 

查找以date;開始的任何行,並找到任何這些是結束;username。如果有任何匹配(例如,用戶已經登錄),則登錄錄製時爲goto。如果沒有,請執行以下行並記錄新登錄。

0

我知道你已經接受了一個答案,但是這裏有一種方法可以消除區域設置日期格式問題,並確保它始終是你指定的格式。

powershell -NoProfile -Command "$(get-date -Format 'MM\/dd\/yyyy') + ';' + $(Get-Date -Format HH:mm:ss) + ';' + "$Env:USERDOMAIN" + '\' + "$Env:USERNAME" 
+0

非常感謝@lit,我還沒有使用PowerShell,但它開始瞭解一些事情 – oasisck