windows-nt/Source/XPSP1/NT/admin/cys/test/test-installservice.vbt
2020-09-26 16:20:57 +08:00

182 lines
6.5 KiB
Plaintext

'
' Test IConfigureYourServer::InstallService
'
option explicit
// this is a Visual Basic Script "Template", used in conjunction with the
// MS Visual C++ Preprocessor to overcome some of the source management
// limitations of VBScript. Not perfect, but better than a stick in the eye.
//
// use cl /EP foo.vbt > foo.vbs to expand the template
const SCRIPT_FILENAME = "test-InstallService.vbs"
const SCRIPT_SOURCE_NAME = __FILE__
const SCRIPT_DATE = __DATE__
const SCRIPT_TIME = __TIME__
// this is all our common code.
#include "common.vbi"
Dim QUOTE
QUOTE = Chr(34)
Main
wscript.quit(0)
sub Main
On Error Resume Next
Dim menu(7)
menu(0) = "DNS"
menu(1) = "DHCP"
menu(2) = "DHCPFirstServer"
menu(3) = "WINS"
menu(4) = "IIS - Server "
menu(5) = "StreamingMedia"
menu(6) = "TerminalServices"
menu(7) = "IIS - Adv Server / DTC"
Dim services(7)
services(0) = "DNS"
services(1) = "DHCP"
services(2) = "DHCPFirstServer"
services(3) = "WINS"
services(4) = "IIS"
services(5) = "StreamingMedia"
services(6) = "TerminalServices"
services(7) = "IIS"
Dim i
if wscript.arguments.count <> 1 then
Echo "supply the number of a service to install"
For i = 0 to Ubound(menu)
Echo i & " - " & menu(i)
Next
Exit sub
end if
Dim svcNumber
svcNumber = CInt(wscript.arguments.item(0))
Echo "installing " & services(svcNumber)
Dim srvwiz
Set srvwiz = CreateObject("ServerAdmin.ConfigureYourServer")
if Err.Number then DumpErrAndQuit
' contents of the inf file
' use an empty value to mean "use sysoc.inf"
Dim infs(7)
infs(0) = "[Version]" & vbCrLf _
& "Signature = " & QUOTE & "$Windows NT$" & QUOTE & vbCrLf _
& "[Components]" & vbCrLf _
& "NetOC=netoc.dll,NetOcSetupProc,netoc.inf" & vbCrLf _
& "[Global]" & vbCrLf _
& "WindowTitle=Installing DNS Server" & vbCrLf _
& "[Strings]" & vbCrLf _
& ";(empty)" & vbCrLf
infs(1) = "[Version]" & vbCrLf _
& "Signature = " & QUOTE & "$Windows NT$" & QUOTE & vbCrLf _
& "[Components]" & vbCrLf _
& "NetOC=netoc.dll,NetOcSetupProc,netoc.inf" & vbCrLf _
& "[Global]" & vbCrLf _
& "WindowTitle=Installing DHCP Server" & vbCrLf _
& "[Strings]" & vbCrLf _
& ";(empty)" & vbCrLf
infs(2) = infs(1)
infs(3) = "[Version]" & vbCrLf _
& "Signature = " & QUOTE & "$Windows NT$" & QUOTE & vbCrLf _
& "[Components]" & vbCrLf _
& "NetOC=netoc.dll,NetOcSetupProc,netoc.inf" & vbCrLf _
& "[Global]" & vbCrLf _
& "WindowTitle=Installing WINS Server" & vbCrLf _
& "[Strings]" & vbCrLf _
& ";(empty)" & vbCrLf
infs(4) = "" ' use sysoc.inf?
infs(5) = "" ' use sysoc.inf?
infs(6) = "" ' use sysoc.inf
infs(7) = "" ' use sysoc.inf
' contents of the unattend file
Dim unattends(7)
unattends(0) = "[NetOptionalComponents]" & vbCrLf _
& "DNS=1" & vbCrLf
unattends(1) = "[NetOptionalComponents]" & vbCrLf _
& "DHCPServer=1" & vbCrLf _
& "[dhcpserver]" & vbCrLf _
& "Subnets=10.0.0.0" & vbCrLf _
& "StartIp=10.0.0.3" & vbCrLf _
& "EndIp=10.0.0.254" & vbCrLf _
& "SubnetMask=255.0.0.0" & vbCrLf _
& "LeaseDuration=874800" & vbCrLf _
& "DnsServer=10.10.1.1" & vbCrLf _
& "DomainName=foo.bar.com" & vbCrLf
unattends(2) = unattends(1)
unattends(3) = "[NetOptionalComponents]" & vbCrLf _
& "WINS=1" & vbCrLf
unattends(4) = "[Components]" & vbCrLf _
& "iis_common=ON" & vbCrLf _
& "iis_inetmgr=ON" & vbCrLf _
& "iis_www=ON" & vbCrLf _
& "iis_doc=ON" & vbCrLf _
& "iis_htmla=ON" & vbCrLf _
& "iis_www_vdir_msadc=ON" & vbCrLf _
& "iis_www_vdir_scripts=ON" & vbCrLf _
& "iis_www_vdir_printers=ON" & vbCrLf _
& "iis_smtp=ON" & vbCrLf _
& "iis_smtp_docs=ON" & vbCrLf _
& "fp_extensions=ON" & vbCrLf
unattends(5) = "[Components]" & vbCrLf _
& "WMS=ON" & vbCrLf _
& "WMS_Admin=ON" & vbCrLf _
& "WMS_SERVER=ON" & vbCrLf
' this is missing the settings for Mode and Permissions
unattends(6) = "[Components]" & vbCrLf _
& "TSEnable=ON" & vbCrLf
unattends(7) = unattends(4)
Dim j
' For i = 0 to Ubound(services)
i = svcNumber
Err.Clear
Echo "Calling InstallService("
Echo " " & services(i) & ","
Echo " " & infs(i) & ","
Echo " " & unattends(i) & ")"
j = srvWiz.InstallService(services(i), infs(i), unattends(i))
If Err.Number then DumpErrAndQuit
Echo "Installer returned " & j
' Next
End sub