Concerning your main question; this is the way the DS behaves and, I've been told by support, there is no 'fix' yet. There is a work around though. You have to restart all the '_Symantec_netboot_'... services. Here is the Script I use:
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
'Created by: Xalam
Dim objnetBootInterfaceSVC, objnetBootServerSVC, obnetBootNSiSignalSVC, objnetBootMtftpSVC, strComputer, WshShell, objWMI, AutoSvc1, AutoSVC2, AutoSVC3, AutoSVC4, strStartupType, arrStringValues1, arrStringValues2, arrStringValues3, oReg, selector
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objnetBootInterfaceSVC = objWMI.Get("Win32_Service.Name='_Symantec_netBoot_Interface'")
Set objnetBootServerSVC = objWMI.Get("Win32_Service.Name='_Symantec_netBoot_Server'")
Set obnetBootNSiSignalSVC = objWMI.Get("Win32_Service.Name='_Symantec_netBoot_NSiSignal'")
Set objnetBootMtftpSVC = objWMI.Get("Win32_Service.Name='_Symantec_netBoot_Mtftp'")
Set WshShell = WScript.CreateObject("WScript.Shell" )
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
' Run script based on user argument -- will not run without argument
If wscript.Arguments.Count = 0 Then
MsgBox "ARGUMENT NOT GIVEN",16,"ERROR"
call Help()
call CleanEnv()
Wscript.quit(3)
Else
If wscript.Arguments.Count > 1 Then
MsgBox "TOO MANY ARGUMENTS",16,"ERROR"
call Help()
Call CleanEnv()
Wscript.quit(3)
End If
selector = wscript.Arguments(0)
Select Case Selector
Case "/all"
Call StopServices()
Call EnableAutoStart()
Call StartServices()
Call CleanEnv()
Wscript.quit(0)
Case "/stop"
Call StopServices()
Call CleanEnv()
Wscript.quit(0)
Case "/start"
Call StartServices()
Call CleanEnv()
Wscript.quit(0)
Case "/restart"
Call StopServices()
Call StartServices()
Call CleanEnv()
Wscript.quit(0)
Case "/enableauto"
Call EnableAutoStart()
Call CleanEnv()
Wscript.quit(0)
Case Else
If wscript.Arguments.Count > 0 Then
MsgBox "INVALID ARGUMENT",16,"ERROR"
call Help()
Call CleanEnv()
Wscript.quit(3)
End If
End Select
End If
'---------------------------------------------------------------------
' EnableAutoStart() Sub
Sub EnableAutoStart()
strStartupType = "Automatic"
AutoSVC1 = objnetBootMtftpSVC.Change(,,,,strStartupType)
arrStringValues1 = Array("Tcpip", "_Symantec_netBoot_Server")
oReg.SetMultiStringValue HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Services\_Symantec_netBoot_Mtftp\", "DependOnService",arrStringValues1
AutoSVC2 = obnetBootNSiSignalSVC.Change(,,,,strStartupType)
arrStringValues2 = Array("Tcpip", "_Symantec_netBoot_Server")
oReg.SetMultiStringValue HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Services\_Symantec_netBoot_NSiSignal\", "DependOnService",arrStringValues2
AutoSVC3 = objnetBootServerSVC.Change(,,,,strStartupType)
arrStringValues3 = Array("Tcpip", "_Symantec_netBoot_Interface")
oReg.SetMultiStringValue HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Services\_Symantec_netBoot_Server\", "DependOnService", arrStringValues3
AutoSVC4 = objnetBootInterfaceSVC.Change(,,,,strStartupType)
End Sub
'--------------------------------------------------------------------------------
' StartServices() Sub
Sub StartServices()
objnetBootInterfaceSVC.StartService()
objnetBootServerSVC.StartService()
obnetBootNSiSignalSVC.StartService()
objnetBootMtftpSVC.StartService()
End Sub
'-------------------------------------------------------------------------
' StopServices() Sub
Sub StopServices()
objnetBootMtftpSVC.StopService()
obnetBootNSiSignalSVC.StopService()
objnetBootServerSVC.StopService()
objnetBootInterfaceSVC.StopService()
End Sub
' HELP() Sub - Incase Invalid program call
Sub Help()
wscript.echo "PXE_SVC.vbs Help" & Chr(13) & Chr(13) & "USAGE: PXE_SVC.vbs [Argument] " & Chr(13) & Chr(13) & " Valid arguments: /stop - Stops all PXE services; /start - Starts all PXE services; /enableauto - Implements PXE service dependencies and sets services to Automatic startup; /all - performs all operations required to install KB51553 provided the installation file is in the same directory as this script, set service dependencies, and start the PXE services"
End Sub
' CleanEnv() Sub - Zero all constants
Sub CleanEnv()
Set objnetBootInterfaceSVC = NOTHING
Set objnetBootServerSVC = NOTHING
Set obnetBootNSiSignalSVC = NOTHING
Set objnetBootMtftpSVC = NOTHING
Set strComputer = NOTHING
Set WshShell = NOTHING
Set objWMI = NOTHING
Set AutoSvc1 = NOTHING
Set AutoSVC2 = NOTHING
Set AutoSVC3 = NOTHING
Set AutoSVC4 = NOTHING
Set strStartupType = NOTHING
Set arrStringValues1 = NOTHING
Set arrStringValues2 = NOTHING
Set arrStringValues3 = NOTHING
Set oReg = NOTHING
Set selector = NOTHING
End Sub
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
As noted in the script, the services are:
- '_Symantec_netBoot_Interface'
- '_Symantec_netBoot_Server'
- '_Symantec_netBoot_NSiSignal'
- '_Symantec_netBoot_Mtftp'
Also, a hotfix may need to be installed if you are having trouble with the services
'altiris_deploymentsolutiontaskserverhandler_7_1_kb51553<qtlend></qtlend><qtlend></qtlend>_hf1_x86.msi'
Also, concerning your second question, just do an update to the Altiris agent on the console itself. This will start the 'BootWiz' process earlier, as it depends on the agent update interval.
<qtlbar dir="ltr" id="qtlbar" style="display: inline; text-align: left; line-height: 100%; padding: 0pt; background-color: rgb(236, 236, 236); -moz-border-radius: 3px 3px 3px 3px; cursor: pointer; z-index: 999; left: 387px; top: 2819px;"></qtlbar>