Everything is working correctly expect for the fact that the machines arent rebooting during the installation? If thats the case, why dont you just add a reboot to the script.
<code>
Sub ShutDown()
Dim Connection, WQL, SystemClass, System
'Get connection To local wmi
Set Connection = GetObject("winmgmts:root\cimv2")
'Get Win32_OperatingSystem objects - only one object In the collection
WQL = "Select Name From Win32_OperatingSystem"
Set SystemClass = Connection.ExecQuery(WQL)
'Get one system object
'I think there is no way To get the object using URL?
For Each System In SystemClass
System.Win32ShutDown (2)
Next
End Sub
</code>