Mittwoch, 15. Juli 2009

Internet Explorer 8 für Windows 7 E ohne Web Browser installieren

Windows 7 RTM steht kurz vor der Tür und noch ist nicht sicher, ob der Internet Explorer 8 wirklich über die Windows Funktionen in der Systemsteuerung nachträglich installiert werden kann. Auch habe ich noch keine Aussage bekommen, ob sich die Setupdateien auf der DVD befinden.

Deswegen habe ich mir mal ein kleines Skript geschrieben, mit dem ich den IE8 unter Windows 7 installieren kann:

@echo off

if exist download-IE8.cs del download-IE8.cs

echo using System; > download-IE8.cs
echo using System.Net; >> download-IE8.cs
echo using System.IO; >> download-IE8.cs
echo. >> download-IE8.cs
echo namespace Download_IE8 >> download-IE8.cs
echo { >> download-IE8.cs
echo     class Program >> download-IE8.cs
echo     { >> download-IE8.cs
echo         static void Main(string[] args) >> download-IE8.cs
echo         { >> download-IE8.cs
echo             if (File.Exists("IE8-WindowsVista-x86-DEU.exe")) >> download-IE8.cs
echo                 File.Delete("IE8-WindowsVista-x86-DEU.exe"); >> download-IE8.cs
echo. >> download-IE8.cs
echo             try >> download-IE8.cs
echo             { >> download-IE8.cs
echo                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://download.microsoft.com/download/3/D/C/3DC5DC1B-2B60-487A-BAE2-732662BC0886/IE8-WindowsVista-x86-DEU.exe"); >> download-IE8.cs
echo                 request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1;)"; >> download-IE8.cs
echo                 request.AllowWriteStreamBuffering = false; >> download-IE8.cs
echo                 request.Timeout = 10000; >> download-IE8.cs
echo. >> download-IE8.cs
echo                 using (Stream s = request.GetResponse().GetResponseStream()) >> download-IE8.cs
echo                 { >> download-IE8.cs
echo                     FileStream fs = new FileStream("IE8-WindowsVista-x86-DEU.exe", FileMode.Create); >> download-IE8.cs
echo. >> download-IE8.cs
echo                     byte[] read = new byte[1024]; >> download-IE8.cs
echo                     int count = s.Read(read, 0, read.Length); >> download-IE8.cs
echo. >> download-IE8.cs
echo                     while (count != 0) >> download-IE8.cs
echo                     { >> download-IE8.cs
echo                         fs.Write(read, 0, count); >> download-IE8.cs
echo                         count = s.Read(read, 0, read.Length); >> download-IE8.cs
echo. >> download-IE8.cs
echo                         Console.Write("."); >> download-IE8.cs
echo                     } >> download-IE8.cs
echo                 } >> download-IE8.cs
echo. >> download-IE8.cs
echo                 Console.WriteLine(); >> download-IE8.cs
echo                 Console.WriteLine("Done."); >> download-IE8.cs
echo. >> download-IE8.cs
echo                 System.Threading.Thread.Sleep(5000); >> download-IE8.cs
echo                 System.Diagnostics.Process.Start("IE8-WindowsVista-x86-DEU.exe"); >> download-IE8.cs
echo             } >> download-IE8.cs
echo             catch (Exception ex) >> download-IE8.cs
echo             { >> download-IE8.cs
echo                 Console.WriteLine("Error: " + ex.Message); >> download-IE8.cs
echo             } >> download-IE8.cs
echo         } >> download-IE8.cs
echo     } >> download-IE8.cs
echo } >> download-IE8.cs
echo. >> download-IE8.cs

if not exist download-IE8.cs goto ERROR1

"%WINDIR%\Microsoft.NET\Framework\v3.5\csc.exe" download-IE8.cs

download-IE8.exe

if not exists download-IE8.exe goto ERROR2

:ERROR1

echo Could not create C# source file.

goto END

:ERROR2

echo Could not create executable to download IE8.

goto END

:END

Ok, der Pfad ist noch fest verdrahtet, auch ist der Download-Link noch der IE8 für Windows Vista. Vom Prinzip aber funktioniert es, das ist die Hauptsache.

Sorry übrigens für die komische Formatierung, aber das geht hier jetzt nicht wirklich besser. Ihr müsst nur den ganzen Inhalt in eine download-IE8.cmd Datei kopieren, und diese dann per Doppelklick ausführen. Im Hintergrund wird dann eine C# Datei erstellt, diese wird mit dem .NET Framework 3.5 kompiliert. Die erzeugte Anwendung lädt dann die Setup-Datei herunter und führt sie aus, fertig.

Kommentare:

  1. Ich vermute, Du bist der EU auch ohne Ende dankbar, daß sie uns Windows ohne IE8 und OSX ohne Safari beschert hat, oder?

    btw: Einloggen und Captcha, ist das nicht ein bißchen paranoid?

    AntwortenLöschen
  2. Klar bin ich der EU dankbar, sonst hätte ich diesen Post ja nicht schreiben können.

    Captcha ist weg, danke für die Info.

    AntwortenLöschen
  3. Hmm, meist Du nicht dass dies mit einem PowerShell-Skript netter gewesen wäre? Dann kannst Du Dir dass erzeugen des Codes und das kompilieren sparen.

    Nur mal so als Idee ;) Vielleicht hast Du ja noch Lust dies zu machen.

    AntwortenLöschen
  4. Dafür musst du aber erst Powershell installieren, oder ist das in allen Versionen von Windows 7 schon da?

    AntwortenLöschen
  5. PowerShell V2 ist bei Windows 7 dabei.

    AntwortenLöschen
  6. "Dabei" oder von Anfang an mit installiert?

    Egal, wird damit natürlich auch funktionieren, ich fand's nur mal interessant, eine .NET Anwendung mit einer Batchdatei zu erstellen. ;)

    AntwortenLöschen
  7. Wie kann ich denn in der PS eine Datei herunterladen?

    Kann jemand mal nen Beispielcode veröffentlichen?

    Danke

    Gruß Marco

    AntwortenLöschen
  8. Jetzt brauchen wir nur noch einen Weg wie wir das Skript auf einen Computer draufbekommen auf dem Windows 7 E läuft. Jemand ne Idee? Vielleicht mit nem USB Stick? Auf den könnte man natürlich auch nen IE8 Installer draufpacken.
    Man könnte natürlich auch einfach den Media Guide des Windows Media Player benutzen und dann STRG+L drücken und z.B. www.google.com eingeben und von da aus zu seinem Lieblingsbrowser navigieren.
    Wer jetzt auch noch die E&N Version hat, somit also keinen Media Player, der kann WIN+R drücken und "hh http://www.google.com" ausführen.

    AntwortenLöschen
  9. und jetzt ist windows 7 E komplett gestorben und dieser post überflüssig.
    schade eigentlich.

    AntwortenLöschen
  10. Ja, das war ja auch nicht wirklich eine vernüftige Entscheidung für den Endbenuntzer. Irgendwie sah es aus, als ob die EU scharf auf das Geld für eine Strafe war. ;)

    AntwortenLöschen