SIS Troubleshooting Guide
Obtaining a SIS tracing file for problem resolution
If you experience performance or other issues with SIS on your storage appliance, you should enable SIS tracing on your storage appliance. The SIS tracing file contains data that Microsoft support personnel can use to determine the cause of your issue(s).
Microsoft provides a command file that you can use to enable the collection of SIS tracing data. This is provided below.
To enable the collection of SIS tracing data, from a command prompt, navigate to the directory that contains the SisTraceEx2.cmd file, and then type SisTraceEx2.cmd.
When you are finished collecting tracing data, type SisTraceEx2.cmd to stop the collection process
For assistance in resolving your issue, email the SIS tracing data file (available at: %windir%\system32\LogFiles\WMI\sis*) to the following alias: TBD.com.
Dica
Microsoft support personnel may need additional information about your setup or hardware.
The SISTraceEX2 command file
The following is the command file used to enable or disable collection of SIS tracing data. To use this script, copy it to a location on your storage appliance.
@echo off
@setlocal
REM Defaults for flags, level, and trace file are below
set FLAGS=0xFFFFFFF
set LEVEL=4
set TRACEID=SisLog
set SCRIPT_DIR=%~dp0
set SCRIPT=%0
set COMMAND=%1
set PDB_DIR=%SCRIPT_DIR%
REM
REM process optional arguments
REM
set MODULES=sisservice sisfilter sisadmin
set TMF_PATH=
:ProcessNextArg
set CURRENTARG=%2
set NEXTARG=%3
if not "%CURRENTARG%" == "" (
if /i "%CURRENTARG%" == "modules" (
set MODULES=%NEXTARG%
if "%MODULES%" == "" (
echo ERROR: missing module-list
call :ShowUsage
goto :eof
)
) else if /i "%CURRENTARG%" == "flags" (
set FLAGS=%NEXTARG%
if "%FLAGS%" == "" (
echo ERROR: missing flag
call :ShowUsage
goto :eof
)
) else if /i "%CURRENTARG%" == "level" (
set LEVEL=%NEXTARG%
if "%LEVEL%" == "" (
echo ERROR: missing level
call :ShowUsage
goto :eof
)
) else (
echo ERROR: unknown argument: %CURRENTARG%
call :ShowUsage
goto :eof
)
shift
shift
goto :ProcessNextArg
)
REM
REM replace colon with space
REM
set MODULES=%MODULES::= %
REM
REM remove double quote
REM
set MODULES=%MODULES:"=%
set LOG_FILE=%SystemRoot%\System32\LogFiles\WMI\Sis.etl
REM
REM generate the guid files with all specified trace guids
REM
set GUIDS_FILE=sistrace_%RANDOM%.guid
if exist "%GUIDS_FILE%" (del "%GUIDS_FILE%")
for %%m in (%MODULES%) do (
if /i "%%m" == "sisfilter" (
echo {001cee8c-35e0-41fe-8825-d962b7739499} %FLAGS% %LEVEL% >> %GUIDS_FILE%
) else if /i "%%m" == "sisservice" (
echo {639bd915-517e-4add-839c-b96e2b645fe6} %FLAGS% %LEVEL% >> %GUIDS_FILE%
) else if /i "%%m" == "sisadmin" (
echo {5c2c4b5d-3b62-427b-9e01-073cfb576c46} %FLAGS% %LEVEL% >> %GUIDS_FILE%
) else (
if exist "%GUIDS_FILE%" (del "%GUIDS_FILE%")
echo ERROR: unknown module: %%m
call :ShowUsage
goto :eof
)
)
if /i "%COMMAND%"=="off" (
logman stop %TRACEID% -ets
call :UninstallLogConfig
) else if /i "%COMMAND%"=="file" (
call :InstallLogConfig
logman start %TRACEID% -o %LOG_FILE% -ets -pf %GUIDS_FILE% -mode circular -max 500 -ft 1
) else (
echo ERROR: unknown command: %COMMAND%
call :ShowUsage
)
if exist "%GUIDS_FILE%" (
rem echo Trace GUIDs used:
rem type "%GUIDS_FILE%"
del "%GUIDS_FILE%"
)
goto :eof
rem
rem ShowUsage()
rem
:ShowUsage
echo Usage: %SCRIPT% file {common-options}
echo %SCRIPT% off
echo Where,
echo common-options - [modules module-list]
echo [flags trace-flags]
echo [level trace-level]
echo module-list - a list of the following strings separated by colon
echo * sisservice
echo * sisfilter
echo * sisadmin
echo e.g. sisservice:sisfilter
echo Examples,
echo %SCRIPT% file modules sisservice level 4 flags 0x0000FFFF
goto :eof
:InstallLogConfig
set REG_FILE=sistrace_%random%.reg
if exist "%REG_FILE%" (del "%REG_FILE%")
echo Windows Registry Editor Version 5.00 >> "%REG_FILE%"
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\%TRACEID%] >> "%REG_FILE%"
echo "ClockType"=dword:00000002 >> "%REG_FILE%"
echo "FileName"="%%SystemRoot%%\\System32\\LogFiles\\WMI\\Sis.etl" >> "%REG_FILE%"
echo "FlushTimer"=dword:00000001 >> "%REG_FILE%"
echo "Guid"="{dbf038f0-b85c-437e-8392-48f2d137eaf8}" >> "%REG_FILE%"
echo "LogFileMode"=dword:00001202 >> "%REG_FILE%"
echo "FileMax"=dword:00000007 >> "%REG_FILE%"
echo "Start"=dword:00000001 >> "%REG_FILE%"
for %%m in (%MODULES%) do (
if /i "%%m" == "sisfilter" (
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\%TRACEID%\{001cee8c-35e0-41fe-8825-d962b7739499}] >> "%REG_FILE%"
) else if /i "%%m" == "sisservice" (
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\%TRACEID%\{639bd915-517e-4add-839c-b96e2b645fe6}] >> "%REG_FILE%"
) else if /i "%%m" == "sisadmin" (
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\%TRACEID%\{5c2c4b5d-3b62-427b-9e01-073cfb576c46}] >> "%REG_FILE%"
) else (
if exist "%REG_FILE%" (del "%REG_FILE%")
echo ERROR: unknown module: %%m
call :ShowUsage
goto :eof
)
echo "Enabled"=dword:00000001 >> "%REG_FILE%"
echo "EnableLevel"=dword:00000004 >> "%REG_FILE%"
echo "MatchAnyKeyword"=dword:ffffffff >> "%REG_FILE%"
echo "EnableFlags"=dword:0fffffff >> "%REG_FILE%"
)
call reg import "%REG_FILE%"
call del "%REG_FILE%"
goto :eof
:UninstallLogConfig
call reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\%TRACEID% /f
goto :eof