Symptom
The vsidate.exe crashes when the the target's Login VSI logon script runs. This prevents the logon script from finishing successfully and the Login VSI testing on the target doesn't start.
Cause
Something similar to this can be seen in eventvwr on the affected target:
Note the faulting module path: c:\windows\system32\ntdll.dll
Resolution
There is a fallback code block in the Login VSI target logon script which serves the same function as the vsidate.exe, which is used for generating a Logon Timer timestamp. The fallback code block occurs after the vsidate.exe attempt.
To use the fallback first instead, edit this file: \\{LoginVSI_Server}\{LoginVSI_Share}\_vsi_binaries\target\logon.cmd
such as the following, in order to comment-out the lines which pertain to vsidate.exe (the default logon.cmd file is being attached to this article for reference).
@echo off
ECHO ::::::::::::: :::: LOGIN VSI :::: ::::::::::
ECHO :: ::
ECHO :: Running Login VSI logon script ::
ECHO :: ::
ECHO ::::::::::::::::::::::::::::::::::::::::::::::
:: Get the number of logged on users
IF EXIST "%TEMP%\VSI_UserCount.txt" del "%TEMP%\VSI_UserCount.txt"
quser | find /i /v " console " | find /i " active " > "%TEMP%\VSI_UserCount.txt"
:: Write the logon time to a temp file (for logon timer) in ms
:: set vsidt="%~dp0\VSIDate.exe"
IF EXIST "%TEMP%\VSI_Logon.chk" del "%TEMP%\VSI_Logon.chk"
::IF EXIST %vsidt% %vsidt% > %TEMP%\VSI_Logon.chk
::IF NOT EXIST %vsidt%
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
::IF NOT EXIST %vsidt%
set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%
::IF NOT EXIST %vsidt%
ECHO %ldt% > %TEMP%\VSI_Logon.chk
:: Remove old VSI folder (if exists)
IF EXIST "%TEMP%\VSI" rmdir /s /q "%TEMP%\VSI"
:: Create VSI runtime directory
MD "%TEMP%\VSI\RunTime"
:: Copy VSI Target files to runtime directory
XCOPY "%~dp0*.*" "%TEMP%\VSI\RunTime\*.*" /E /Y /Q
:: Add the share location to the VSI.ini file
ECHO [VSI] > "%TEMP%\VSI\RunTime\VSI.ini"
ECHO VSITarget=%~dp0 >> "%TEMP%\VSI\RunTime\VSI.ini"
:: Call VSI.exe in Logon mode
START "VSI Logon Script" /D "%TEMP%\VSI\RunTime" /HIGH /WAIT "%TEMP%\VSI\RunTime\VSI.exe" /logon
Properties
Applies to
Login VSI 4.1.25+
Comments
0 comments
Article is closed for comments.