:: НАЧАЛО БЛОКА A Set PSUtilLoc=\\server5\PsTools Set JWUtilLoc=\\server5\JoeWareTools :: КОНЕЦ БЛОКА A For /F "tokens=1,2,*" %%i in ('Dir %0 ^| Find "Directory"') Do Set dirloc=%%k If Not Exist "%dirloc%\Logs" Mkdir "%dirloc%\Logs" For /F "tokens=1,*" %%i in ("%date%") Do Set daterev=%%j For /F "tokens=1,2,3 delims=: " %%i in ("%time%") Do Set timerev=%%i:%%j For /F "tokens=1,2,3 usebackq" %%i in ("%dirloc%\Servers.txt") Do (Set server=%%i) & (Call :Testem) Echo Run complete Goto :EOF
:Testem If Exist "%dirloc%\Logs\%server%-UserlogWName.tsv" Goto :Next Echo _User Domain\IDs_ Full Name Description >>"%dirloc%\Logs\%server%-UserlogWName.tsv"
:Next For /F "tokens=1,2,3,*" %%i in ('%PSUtilLoc%\psloggedon.exe \\%server% ^| Find "/" ^| Find /I /V "%server%"') Do (Set User=%%l) & (Call :GetInfo) Move "%dirloc%\Logs\%server%-UserlogWName.tsv" "%dirloc%\Logs\%server%-UserlogWNameTemp.tsv" Sort "%dirloc%\Logs\%server%-UserlogWNameTemp.tsv" > "%dirloc%\Logs\%server%-UserlogWNameTempSorted.tsv" For /F "tokens=* usebackq" %%i in ("%dirloc%\Logs\%server%-UserlogWNameTempSorted.tsv") Do (Set line=%%i) & (Call :Filter) If Exist "%dirloc%\Logs\%server%-UserlogWNameTemp.tsv" Del "%dirloc%\Logs\%server%-UserlogWNameTemp.tsv" If Exist "%dirloc%\Logs\%server%-UserlogWNameTempSorted.tsv" Del "%dirloc%\Logs\%server%-UserlogWNameTempSorted.tsv" Goto :EOF
:Filter If /I "%line%"=="%prevline%" Goto :Skip Echo %line%>>"%dirloc%\Logs\%server%-UserlogWName.tsv" Set prevline=%line%
:Skip Goto :EOF
:GetInfo Set FullName=N/A Set Desc=N/A :: НАЧАЛО БЛОКА B For /F "tokens=1,2,*" %%i in ('%JWUtilLoc%\GetUserInfo.exe "%User%" ^| Findstr /I /C:"Full Name"') Do Set FullName=%%k For /F "tokens=1,*" %%i in ('%JWUtilLoc%\GetUserInfo.exe "%User%" ^| Findstr /I /C:"Description"') Do Set Desc=%%j :: КОНЕЦ БЛОКА B Echo %User% %FullName% %Desc% >>"%dirloc%\Logs\%server%-UserlogWName.tsv" Goto :EOF