FOG agent installation script

The following script installs the FOG agent on fixed workstations at startup.

The script must be placed in a group policy (GPO), which executes the script when the computer starts.

Edit lines 8 and 9 by replacing fqdn with the URL to access the FOG server.

On Error Resume Next
'Declaration variables
Public fog_agent_url, fog_agent_param_install, objFSO
strComputer = "."
'Init des objets
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Fog url download agent
fog_agent_url = "http://fqdn/fog/client/download.php?newclient"
fog_agent_param_install = "/quiet" & " WEBADDRESS="& Chr(34) &"fqdn" & Chr(34) & " WEBROOT=" & Chr(34) &"/fog" & Chr(34)
'
'	Retourne si le poste est desktop ou autre
'
Function GetTypeComputer()
	Set objWMIService = GetObject("winmgmts:" _
		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	Set colChassis = objWMIService.ExecQuery _
		("Select * from Win32_SystemEnclosure")
	For Each objChassis in colChassis
		For  Each strChassisType in objChassis.ChassisTypes
			'Wscript.Echo strChassisType
			Select Case strChassisType
				Case 3
					GetTypeComputer = "desktop"
				Case 4
					GetTypeComputer = "desktop"
				Case 6 
					GetTypeComputer = "desktop"
				Case 7
					GetTypeComputer = "desktop"
				Case Else
					GetTypeComputer = "other"
			End Select
		Next
	Next
End Function
'
'	Permet le telechargement de fichier en VBS
'
' http://www.ericphelps.com/scripting/samples/wget/index.html
'
Function SaveWebBinary(strUrl) 'As Boolean
	Const adTypeBinary = 1  
	Const adSaveCreateOverWrite = 2
	Const ForWriting = 2
	Dim web, varByteArray, strData, strBuffer, lngCounter, ado
	'    On Error Resume Next
    'Download the file with any available object
    Err.Clear
    Set web = Nothing
    Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
    If web Is Nothing Then Set web = CreateObject("WinHttp.WinHttpRequest")
    If web Is Nothing Then Set web = CreateObject("MSXML2.ServerXMLHTTP")
    If web Is Nothing Then Set web = CreateObject("Microsoft.XMLHTTP")
    web.Open "GET", strURL, False
    web.Send
    If Err.Number <> 0 Then
        SaveWebBinary = False
        Set web = Nothing
        Exit Function
    End If
    If web.Status <> "200" Then
        SaveWebBinary = False
        Set web = Nothing
        Exit Function
    End If
    varByteArray = web.ResponseBody
    Set web = Nothing
    'Now save the file with any available method
    On Error Resume Next
    Set ado = Nothing
    Set ado = CreateObject("ADODB.Stream")
    If ado Is Nothing Then
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set ts = fs.OpenTextFile(baseName(strUrl), ForWriting, True)
        strData = "" 
        strBuffer = "" 
        For lngCounter = 0 to UBound(varByteArray)
            ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1)))
        Next
        ts.Close
    Else
        ado.Type = adTypeBinary
        ado.Open
        ado.Write varByteArray
        'ado.SaveToFile CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%") & "\foginstallservice.msi", adSaveCreateOverWrite
        ado.SaveToFile "C:\Users\Public\foginstallservice.msi", adSaveCreateOverWrite
        ado.Close
    End If
    SaveWebBinary = True
End Function
'
' Permet de demarrer un service
'
Function VbsStartService(ServiceName)
	Dim objWMIService, objService
	Dim strComputer
	strComputer = "."
	Set objWMIService = GetObject("winmgmts:" _
		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	For Each objService In objWMIService.ExecQuery("Select * from Win32_Service Where Name = '"_
	&ServiceName&"'")
		objService.StartService
	Next
End Function
''' MAIN
Dim WshShell
Set WshShell = Wscript.CreateObject("Wscript.shell")
WshShell.LogEvent 4, "---------------" & Now & "---------------------"
' Si serveur on stop le script
if lcase(left(WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%"),1)) = "s" then
	wscript.quit(-1)
end if
if GetTypeComputer() = "desktop" Then	
	' Verification si besoin installation
	if( objFSO.FolderExists("C:\Program Files (x86)\FOG") = false And  objFSO.FolderExists("C:\Program Files\FOG") = false) then
		WshShell.LogEvent 4, "Debut installation agent"
		SaveWebBinary(fog_agent_url)
		'WshShell.Run "CMD.EXE /C msiexec " & "/i " & Chr(34) & WshShell.ExpandEnvironmentStrings("%Temp%") & "\foginstallservice.msi" & Chr(34) & " " & fog_agent_param_install,0,False
		WshShell.Run "CMD.EXE /C msiexec " & "/i " & Chr(34) & "C:\Users\Public\foginstallservice.msi" & Chr(34) & " " & fog_agent_param_install,0,False
		WshShell.LogEvent 4, "Pause avant demarrage service"
		WScript.Sleep 20000
		WshShell.LogEvent 4, "Service normalement demarre"
		VbsStartService("FOGService")
	else
		WshShell.LogEvent 4, "Agent deja present"
	end if
end if



Comments are not currently available for this post.