WindowsXP/inetsrv/iis/iisrearc/core/setup2/machineconfig.vbs
2025-04-27 07:49:33 -04:00

168 lines
6.2 KiB
Plaintext

'+---------------------------------------------------------------------------
'
' Microsoft Windows
'
' File: machineconfig.vbs
'
' Contents: code necessary to configure a machine's default app pool
' configuration on install.
'
' History: 15-Mar-2000 EricDe created
' 28-Mar-2000 EricDe Added code to create /w3svc/AppPools/StreamFilter,
' with keytype IIsStreamFilter.
' 29-Mar-2000 EricDe bug fixes - no longer deleting /w3svc/AppPools, but
' now just /w3svc/AppPools/DefaultAppPool. Also
' commented out IIsStreamFilter section temporarily
' due to probs w/CAppPool.vbs
' 27-Apr-2000 EricDe bug fix - bug in trying to create StreamFilter when it
' already exists. Fixed now.
'----------------------------------------------------------------------------
Option Explicit
On Error Resume Next
Dim W3Service
Dim AppPoolsObj
'Since this script is designed to configure the initial system configuration, it should delete /w3svc/AppPools/DefaultAppPool
' path if not already there.
Set W3Service = GetObject("IIS://localhost/w3svc")
'create app pool container and assign all default properties
Err.Clear
Set AppPoolsObj = GetObject("IIS://localhost/w3svc/AppPools")
If (Err <> 0) THEN
WScript.Echo "[/w3svc/AppPools] does not exist - now creating it."
Err.Clear
Set AppPoolsObj = W3Service.Create ("IIsApplicationPools", "AppPools")
If (Err <> 0) THEN
WScript.Echo "ERROR: Unexpected error creating IIsApplicationPools object."
WScript.Echo " Error #" & Err.Number & " (" & Hex(Err.Number) & "): " & Err.Description
WScript.Quit(Err.Number)
End If
AppPoolsObj.SetInfo
If (Err <> 0) THEN
WScript.Echo "ERROR: Unexpected error setting info on /w3svc/AppPools path."
WScript.Echo " Error #" & Err.Number & " (" & Hex(Err.Number) & "): " & Err.Description
WScript.Quit(Err.Number)
End If
WScript.Echo "[/w3svc/AppPools] successfully created."
Else
'AppPools obj already exists
WScript.Echo "[/w3svc/AppPools] already exists."
End If
WScript.Echo "Now setting default properties for all app pools"
AppPoolsObj.PeriodicRestartTime = 60
AppPoolsObj.PeriodicRestartRequests = 10000
AppPoolsObj.MaxProcesses = 1
AppPoolsObj.PingingEnabled = true
AppPoolsObj.IdleTimeout = 10
AppPoolsObj.RapidFailProtection = true
AppPoolsObj.SMPAffinitized = false
AppPoolsObj.SMPProcessorAffinityMask = 4294967295
AppPoolsObj.StartupTimeLimit = 30
AppPoolsObj.ShutdownTimeLimit = 60
AppPoolsObj.PingInterval = 120
AppPoolsObj.PingResponseTime = 30
AppPoolsObj.DisallowOverlappingRotation = false
AppPoolsObj.OrphanWorkerProcess = false
AppPoolsObj.OrphanAction = ""
AppPoolsObj.UlAppPoolQueueLength = 3000
AppPoolsObj.DisallowRotationOnConfigChange = false
AppPoolsObj.SetInfo
If (Err <> 0) THEN
WScript.Echo "ERROR: Unexpected error setting info on /w3svc/AppPools path (setting props)."
WScript.Echo " Error #" & Err.Number & " (" & Hex(Err.Number) & "): " & Err.Description
WScript.Quit(Err.Number)
End If
'delete default app pool first, then recreate it.
WScript.Echo "START: Deleting [/w3svc/AppPools/DefaultAppPool] if present."
AppPoolsObj.Delete "IIsApplicationPool", "DefaultAppPool"
If (Err <> 0) Then
WScript.Echo "SUCCESS: [/w3svc/AppPools/DefaultAppPool] not present"
WScript.Echo
Else
WScript.Echo "SUCCESS: [/w3svc/AppPools/DefaultAppPool] deleted"
WScript.Echo
End If
Err.Clear
'create default app pool
Dim AppPool
WScript.Echo "START: Now creating app pool [/w3svc/AppPools/DefaultAppPool]"
Set AppPool = AppPoolsObj.Create("IIsApplicationPool", "DefaultAppPool")
AppPool.AppPoolFriendlyName = "Default Application Pool"
AppPool.SetInfo
If (Err <> 0) THEN
WScript.Echo "ERROR: Unexpected error setting info on /w3svc/AppPools/DefaultAppPool path (setting props)."
WScript.Echo " Error #" & Err.Number & " (" & Hex(Err.Number) & "): " & Err.Description
WScript.Quit(Err.Number)
End If
WScript.Echo "SUCCESS: [/w3svc/AppPools/DefaultAppPool] created successfully"
WScript.Echo
'delete StreamFilter first, then recreate it
WScript.Echo "START: Deleting [/w3svc/AppPools/StreamFilter] if present"
AppPoolsObj.Delete "IIsStreamFilter", "StreamFilter"
If (Err <> 0) Then
WScript.Echo "SUCCESS: [/w3svc/AppPools/StreamFilter] not present"
WScript.Echo
Else
WScript.Echo "SUCCESS: [/w3svc/AppPools/StreamFilter] deleted"
WScript.Echo
End If
Err.Clear
'create StreamFilter
Dim StreamFilter
WScript.Echo "START: Now creating StreamFilter [/w3svc/AppPools/StreamFilter]"
Set StreamFilter = AppPoolsObj.Create("IIsStreamFilter", "StreamFilter")
StreamFilter.PeriodicRestartConnections = 10000
StreamFilter.SetInfo
If (Err <> 0) THEN
WScript.Echo "ERROR: Unexpected error setting info on /w3svc/AppPools/StreamFilter path (setting props)."
WScript.Echo " Error #" & Err.Number & " (" & Hex(Err.Number) & "): " & Err.Description
WScript.Quit(Err.Number)
End If
WScript.Echo "SUCCESS: [/w3svc/AppPools/StreamFilter] created successfully"
WScript.Echo
'set the app pool id for all sites to Default AppPool
WScript.Echo "Now setting AppPoolId at /w3svc to DefaultAppPool"
W3Service.AppPoolId = "DefaultAppPool"
W3Service.SetInfo
If (Err <> 0) THEN
WScript.Echo "ERROR: Unexpected error setting info on /w3svc path (setting props)."
WScript.Echo " Error #" & Err.Number & " (" & Hex(Err.Number) & "): " & Err.Description
WScript.Quit(Err.Number)
End If
'set the app pool id for the default site to DefaultAppPool
Dim Site1RootApp
Dim Site1
Set Site1 = GetObject("IIS://localhost/w3svc/1")
If (Err <> 0) THen
WScript.Echo "ERROR Trying to get site 1"
WScript.Echo "Error " & Err.Number & " [" & Hex(Err.Number) & "]"
WScript.Quit(Err.Number)
End If
Site1.AppPoolId = "DefaultAppPool"
Site1.SetInfo
Set Site1RootApp = GetObject("IIS://localhost/w3svc/1/root")
If (Err <> 0) THen
WScript.Echo "ERROR Trying to get site 1 root app"
WScript.Echo "Error " & Err.Number & " [" & Hex(Err.Number) & "]"
WScript.Quit(Err.Number)
End If
Site1RootApp.AppPoolId = "DefaultAppPool"
Site1RootApp.SetInfo
WScript.Echo
WScript.Echo "FINISHED: All default app pool configuration has been created"