Internet Explorer 8 Remote installieren

Viele Administratoren werden sicherlich schon einmal vor der Problem gestanden haben, ein Programm auf mehreren Rechnern (nach-)installieren zu müssen, ohne dafür auf eine richtige Softwareverteilung zurückgreifen zu können. In so einem Falle hat man mehrere Möglichkeiten: Entweder man nimmt sich jeden Rechner einzeln vor, oder man baut sich seine eigene “Softwareverteilung”. Ersteres dürfte wohl nur in relativ kleinen Netzwerken eine ernsthaft zu erwägende Option sein, da der Zeitaufwand spätestens ab zehn Rechnern in unverhältnismäßige Dimensionen steigt. Bleibt also nur der zweite Weg – und die Frage nach dem “Wie?”…

… Welche sich denn auch recht schnell und einfach beantworten lässt: mit knapp 60 Zeilen Skriptcode, ein wenig Basiswissen im Umgang mit VBScript und WMI, sowie einer passenden Installationsdatei. Im Falle des Internet Explorer 8 empfiehlt es sich, ein MSI-Paket zu verwenden, welches man sich aber leider erst selbst mit dem Internet Explorer Administration Kit (IEAK) 8 erstellen muss. Ist dies soweit gelungen, kann man sich an das Installationsskript machen. Ziel ist es, dass das Skript zentral ausgeführt wird und dann automatisch die Installation auf allen angegebenen Rechnern vornimmt. Und das Ergebnis sieht wie folgt aus:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'## Remote-Installationsskript v1.5 ##
 
Program = "Internet Explorer 8"
SrcPath = "P:\Browser\Internet_Explorer_8\"
SetupFile = "IE8-Setup-Full.msi"
InstOptions = " /quiet /qn /norestart"
ComputerListe = "ComputerListe.txt"
LogFile = ScrPath & Program & " Installation.log"
 
Set fso = createobject("scripting.filesystemobject")
Set oLogging = fso.OpenTextFile(LogFile, 8, true)
Set oComputerListe = fso.opentextfile(ComputerListe, 1, false)
if (Err.Number <> 0) then
WScript.echo "Cannot open " & ComputerListe
WScript.quit
end if
 
WScript.Echo "Beginning Remote Installation."
 
on error resume next
 
while not oComputerListe.atEndOfStream
Computer = oComputerListe.ReadLine()
 
'WScript.echo "Copying files to " & Computer & " ..."
 
fso.CopyFile SrcPath & SetupFile, "\\" & Computer & "\C$\Temp\", true
if (Err.Number <> 0) then
WScript.echo "Failed to copy File(s) on " & Computer & " with " & Err.Number
end if
 
Err.Clear
 
'WScript.echo "Connecting to " & Computer & "..."
 
if (Err.Number <> 0) then
WScript.echo "Failed to connect to " & Computer & "."
else
 
'WScript.echo "Installing " & Program
 
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
Set oProcess = oWMI.Get("win32_process")
oProcess.create "C:\Windows\System32\msiexec.exe /i C:\Temp\" & SetupFile & InstOptions
if (Err.Number <> 0) then
WScript.echo "Failed to start process on " & Computer & ": " & Err.Number
else
oLogging.WriteLine(Computer & ": " & Date)
end if
end if
 
Err.Clear
 
wend
 
oComputerListe.close()
oLogging.close()
 
WScript.echo "Exiting."

Das Skript greift auf die Datei “ComputerListe.txt” zu, in der die Zielhosts mit Name oder IP-Adresse definiert sind. Auf jeden Host wird das MSI-Paket nach C:\Temp kopiert. Ist der Kopiervorgang erfolgreich abgeschlossen, stellt das Skript eine WMI-Verbindung mit dem Zielhost her und startet auf diesem den Setupprozess. Ein fehlerfreier Start wird in einer Logdatei mit Datum protokolliert, eventuelle Fehlermeldung werden auf den Bildschirm ausgegeben. WICHTIG: Der Account, unter dem das Skript ausgeführt wird, benötigt auf den Ziel PCs die notwendigen Rechte, um auf WMI zugreifen und Programme installieren zu können. Im günstigsten Falle startet man das Skript also unter einem Domänenadmin-Account.

Natürlich ist dies bei weitem nicht mit einer wirklichen Softwareverteilung zu vergleichen, aber mit ein Bisschen Fleißarbeit kann man das Skript noch etwas aufbohren. So können z.B. Hosts aus einem Active Directory ausgelesen werden, anstelle aus der Textdatei. Ebenso kann man auch durch Überprüfung der Installationslogs auf den Rechnern das Ergebnis der Installation abprüfen und dieses z.B. in eine Datenbank schreiben – VBScript bietet hier viele Möglichkeiten, die man sich mit ein wenig Zeit und Lust zu nutze machen kann. Viel Spaß beim Skripten!


Share on Facebook0Share on Google+1Tweet about this on TwitterEmail this to someone
Vince

Autor: Vince

Technik begeisterter Fachinformatik- und IT-Nerd, der sich nicht vor technischen Herausforderungen versteckt. Vince hat 2002 seine Fachinformatikerausbildung mit Binnendifferenzierung Systemintegration erfolgreich abgeschlossen und im Anschluss den IHK-Ausbilderschein nach AEVO per Fernstudium absolviert. Er arbeitet mittlerweile als IT-Systemberater in einem weltweit operierenden Technologiekonzern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.