summaryrefslogtreecommitdiff
path: root/network/trans/WFPSampler/scripts/WFPSamplerInstall.cmd
blob: 69b85710a2df84893881ae3289b959b8d71adea2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
:: 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