2017-06-26 95 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