Ob Update oder neuste Protokolldateien – Als Server-Administrator müssen wir regelmäßig neue Dateien auf unseren Server laden. Auf einem Linux-Server geht das bequem mit dem wget-Kommando. Doch wie automatisierst du als Windows-Administrator einen Datei-Download? Die Antwort ließt du in diesem Beitrag.
PowerShell und .Net-Framework: So nutzst du die „WebClient“-Komponente
Die PowerShell ist eine mächtige Scripting-Engine auf deinem Windows-Server. Diese ist deshalb für uns Administratoren so wertvoll, weil wir aus der PowerShell auch Komponenten des .-Net-Frameworks nutzen können. Und das .Net-Framework verfügt bereits über eine praktische Funktion, um eine Datei aus dem Web zu laden. Diese heißt: „System.Net.WebClient“.
Um die Komponente in der PowerShell zu nutzen, musst du zunächst eine Instanz der Komponente bilden. Dies erledigst du mit folgendem Kommando:
$cl = new-object system.net.webclient
Anschließend kannst du mit folgendem Kommando eine Datei herunterladen und in einem Bestimmten Verzeichnis speichern:
$cl.DownloadFile([URL] , [ZIEL])
Beispiel: So ladest du automatisch die neuste Mail-Server-Version herunter
Lasse uns die praktische Anwendung anhand eines Beispiels betrachten. Ein Kunde hat uns kürzlich gefragt, wie er stets die neuste Version der Mail-Server-Software „Kerio“ (für Windows) herunterladen könnte. Die jeweils aktuelle Version wird stets unter der folgenden Adresse bereitgestellt:
http://download.kerio.com/dwn/kerio-connect-win32.exe
Anstatt die Datei über den Web-Browser manuell herunterzuladen, wollte er diese einmal pro Monat per Script herunterladen. Dazu hat er in seinem Script folgende zwei Befehle genutzt, um die Datei unter „c:KerioUpdate“ zu speichern.
$cl = new-object system.net.webclient
$cl.DownloadFile(“http://download.kerio.com/dwn/kerio-connect-win32.exe”, “c:KerioUpdate“)