:: WFPSamplerInstall.cmd :: Command line script to install the WFPSampler :SoF @ECHO OFF SETLOCAL ENABLEEXTENSIONS SETLOCAL ENABLEDELAYEDEXPANSION :Variables :: Help IF /I "%1" EQU "" ( GOTO :Usage ) ELSE ( IF /I "%1" EQU "?" ( GOTO :Usage ) ELSE ( IF /I "%1" EQU "-?" ( GOTO :Usage ) ELSE ( IF /I "%1" EQU "/?" ( GOTO :Usage )))) :: Removal IF /I "%1" EQU "r" ( GOTO :Uninstall ) ELSE ( IF /I "%1" EQU "-r" ( GOTO :Uninstall ) ELSE ( IF /I "%1" EQU "/r" ( GOTO :Uninstall ))) :: Architecture IF /I "%1" EQU "" ( GOTO :Usage ) ELSE ( IF /I "%1" EQU "amd64" (SET WFP_ARCH=x64) ELSE ( IF /I "%1" EQU "i386" (SET WFP_ARCH=x86) ELSE ( IF /I "%1" EQU "x64" (SET WFP_ARCH=%1) ELSE ( IF /I "%1" EQU "x86" (SET WFP_ARCH=%1) ELSE ( GOTO :BinPath ))))) :: OS IF /I "%2" EQU "" ( GOTO :Usage ) ELSE ( IF /I "%2" EQU "Win7" (SET WFP_OS=%2) ELSE ( IF /I "%2" EQU "Win8" (SET WFP_OS=%2) ELSE ( IF /I "%2" EQU "Win8.1" (SET WFP_OS=%2) ELSE ( GOTO :Usage )))) :: Optimized IF /I "%3" EQU "" ( GOTO :Usage ) ELSE ( IF /I "%3" EQU "Debug" (SET WFP_OPZ=%3) ELSE ( IF /I "%3" EQU "Release" (SET WFP_OPZ=%3) ELSE ( GOTO :Usage ))) :BinPath IF "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" (SET _PROCESSOR_ARCHITECTURE_=x64) ELSE ( IF "%PROCESSOR_ARCHITECTURE%" EQU "I386" (SET _PROCESSOR_ARCHITECTURE_=x86) ELSE ( SET _PROCESSOR_ARCHITECTURE_=%PROCESSOR_ARCHITECTURE%)) IF DEFINED WFP_OS ( :: Use a path relative to where this script is located for finding the binaries FOR /F %%A IN ('ECHO "%~dp0" ^| FIND /I "network\trans\WFPSampler\scripts\"') DO (SET SCRIPTS_DIR=TRUE) IF DEFINED SCRIPTS_DIR ( :: Running from Network\Trans\WFPSampler\Scripts SET WFPSAMPLER_EXE="%~dp0..\exe\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\WFPSampler.exe" SET WFPSAMPLERSERVICE_EXE="%~dp0..\svc\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\WFPSamplerService.exe" SET WFPSAMPLERCALLOUTDRIVER_SYS="%~dp0..\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\Package\WFPSamplerCalloutDriver.sys" SET WFPSAMPLERCALLOUTDRIVER="%~dp0..\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\Package\WFPSamplerCalloutDriver.*" SET SIGNTOOL_PATH="%~dp0..\..\..\..\..\bin\%_PROCESSOR_ARCHITECTURE_%" ) ELSE ( FOR /F %%A IN ('ECHO "%~dp0" ^| FIND /I "network\trans\WFPSampler\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\package"') DO (SET PACKAGE_DIR=TRUE) IF DEFINED PACKAGE_DIR ( :: Running from Package Directory SET WFPSAMPLER_EXE="%~dp0..\..\..\exe\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\WFPSampler.exe" SET WFPSAMPLERSERVICE_EXE="%~dp0..\..\..\svc\%WFP_ARCH%\%WFP_OS%%WFP_OPZ%\WFPSamplerService.exe" SET WFPSAMPLERCALLOUTDRIVER_SYS="%~dp0WFPSamplerCalloutDriver.sys" SET WFPSAMPLERCALLOUTDRIVER="%~dp0WFPSamplerCalloutDriver.*" SET SIGNTOOL_PATH="%~dp0..\..\..\..\..\..\..\bin\%_PROCESSOR_ARCHITECTURE_%" ) ELSE ( ECHO. ECHO Don't know binary location. Please provide path. ECHO Current directory: "%CD%" ECHO Script directory: "%~dp0" GOTO :Usage ) ) ) ELSE ( :: Use the provided path for finding the binaries SET WFPSAMPLER_EXE="%1\WFPSampler.exe" SET WFPSAMPLERSERVICE_EXE="%1\WFPSamplerService.exe" SET WFPSAMPLERCALLOUTDRIVER_SYS="%1\WFPSamplerCalloutDriver.sys" SET WFPSAMPLERCALLOUTDRIVER="%1\WFPSamplerCalloutDriver.*" SET SIGNTOOL_PATH= ) :Install ECHO. ECHO Installing WFPSampler IF DEFINED SIGNTOOL_PATH ( ECHO. ECHO Attempting to sign WFPSampler.Exe %SIGNTOOL_PATH%\SignTool.exe Sign -A -V %WFPSAMPLER_EXE% ECHO. ECHO Attempting to sign WFPSamplerService.Exe %SIGNTOOL_PATH%\SignTool.exe Sign -A -V %WFPSAMPLERSERVICE_EXE% ECHO. ECHO Attempting to sign WFPSamplerCaloutDriver.Sys %SIGNTOOL_PATH%\SignTool.exe Sign -A -V %WFPSAMPLERCALLOUTDRIVER_SYS% ) ECHO. ECHO Copying WFPSamplerCalloutDriver Bins to %WinDir%\System32\Drivers\ COPY /Y %WFPSAMPLERCALLOUTDRIVER% %WinDir%\System32\Drivers\ ECHO. ECHO Copying WFPSampler application binaries to %WinDir%\System32\ COPY /Y %WFPSAMPLER_EXE% %WinDir%\System32\ COPY /Y %WFPSAMPLERSERVICE_EXE% %WinDir%\System32\ IF EXIST %WinDir%\System32\WFPSamplerService.Exe ( ECHO. ECHO Registering the WFPSampler Service %WinDir%\System32\WFPSamplerService.Exe -i Net Start WFPSampler ) IF EXIST %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.Inf ( IF EXIST %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.Sys ( ECHO. ECHO Registering the WFPSampler Callout Driver RunDLL32.Exe syssetup,SetupInfObjectInstallAction DefaultInstall 131 %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.Inf Net Start WFPSamplerCallouts ) ) :Cleanup SET WFPSAMPLERCALLOUTDRIVER= SET WFPSAMPLERCALLOUTDRIVER_SYS= SET WFPSAMPLERSERVICE_EXE= SET WFPSAMPLER_EXE= SET PACKAGE_DIR= SET SCRIPTS_DIR= SET _PROCESSOR_ARCHITECTURE_= SET WFP_ARCH= SET WFP_OPZ= SET WFP_OS= GOTO :EoF :Uninstall ECHO. ECHO Uninstalling WFPSampler IF EXIST %WinDir%\System32\WFPSampler.Exe ( ECHO. ECHO Removing policy WFPSampler.exe -clean ) ECHO. ECHO Stopping the WFPSampler service Net Stop WFPSampler ECHO. ECHO Stopping the WFPSamplerCallouts service Net Stop WFPSamplerCallouts IF EXIST %WinDir%\System32\WFPSamplerService.Exe ( ECHO. ECHO Unregistering the WFPSampler Service %WinDir%\System32\WFPSamplerService.Exe -u ) IF EXIST %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.Inf ( IF EXIST %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.Sys ( ECHO. ECHO Unregistering the WFPSampler Callout Driver RunDLL32.Exe SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.Inf ) ) ECHO. ECHO Deleting WFPSampler application binaries from %WinDir%\System32\ ERASE /F /Q %WinDir%\System32\WFPSampler.exe ERASE /F /Q %WinDir%\System32\WFPSamplerService.exe ECHO. ECHO Deleting WFPSamplerCalloutDriver binaries from %WinDir%\System32\Drivers\ ERASE /F /Q %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.cat ERASE /F /Q %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.inf ERASE /F /Q %WinDir%\System32\Drivers\WFPSamplerCalloutDriver.sys GOTO :EoF :Usage ECHO. ECHO WFPSamplerInstall.cmd [PATH ^| ARCH ^| -r] [OS] [OPTIMIZE] ECHO. ECHO. ECHO ARCH Specify the architecure the binaries are for ECHO x86 or x64 ECHO. ECHO OS Specify the OS the binaries are for ECHO Win7, Win8, or Win8.1 ECHO. ECHO OPTIMIZE Specify the optimization ECHO i.e. Debug ECHO. ECHO WFPSampler.cmd x86 Win7 Debug ECHO. ECHO. ECHO WFPSamplerInstall.cmd [PATH] ECHO. ECHO PATH Copies binaries from specified path and installs the WFPSampler ECHO i.e. C:\MyDir ECHO. ECHO WFPSampler.cmd C:\MyDir ECHO. ECHO. ECHO WFPSamplerInstall.cmd [-r] ECHO. ECHO -r Uninstalls the WFPSampler and removes binaries ECHO. ECHO WFPSampler.cmd -r ECHO. :EoF