Ab PowerShell 3 haben wir das Invoke-WebRequest Cmdlet, das bequemer zu bearbeiten ist. Es ist PowerShells Gegenstück zu GNU wget, einem beliebten Tool in der Linux-Welt, was wahrscheinlich der Grund ist, warum Microsoft sich entschieden hat, seinen Namen als Alias für Invoke-WebRequest zu verwenden. Das ist vielleicht eine Untertreibung; Invoke-WebRequest ist leistungsfähiger als wget, da Sie dateien nicht nur herunterladen, sondern auch analysieren können. Aber dies ist ein Thema für einen anderen Beitrag. Wenn Sie in einer hybriden IT-Umgebung arbeiten, müssen Sie in Ihren PowerShell-Skripts häufig Dateien aus oder in die Cloud herunterladen oder hochladen. Wenn Sie nur Windows-Server verwenden, die über das SMB-Protokoll (Server Message Block) kommunizieren, können Sie einfach das Cmdlet Copy-Item verwenden, um die Datei aus einer Netzwerkfreigabe zu kopieren: Die kurze Antwort lautet, dass Sie ein neues Gruppenrichtlinienobjekt erstellen und Gruppenrichtlinienobjekte sichern können. Sie können Registrierungseinstellungen erstellen, aber um mit den Vorlagen zu arbeiten, müssen Sie ein Dienstprogramm eines Drittanbieters verwenden. Wenn ich mit Gruppenrichtlinien arbeite, liebe ich es, die Gruppenrichtlinieneinstellungsreferenz für Windows und Windows Server Microsoft Excel-Tabelle geöffnet zu haben, da sie mir eine gute Vorstellung davon gibt, was die Einstellungen sind und wo sie sich befinden. Laden Sie eine Datei von der URL mit PowerShell über HTTP- und HTTPS-Protokolle herunter: Windows PowerShell kann zum Herunterladen von Dateien über HTTP- und HTTPS-Protokolle verwendet werden. Hey, Scripting Guy! Ich wollte Ihnen nur eine Zeile fallen lassen, um Ihnen für Ihre gestrige Präsentation der Best Practices von Windows PowerShell bei der britischen PowerShell-Benutzergruppe zu danken.
Ich habe mit Interesse zugehört und fand es sehr nützlich. Ich ging auch direkt los und habe eine Kopie der PrimalScript 2009 Community Edition heruntergeladen, die dazu beigetragen hat, ein Rätsel für mich in einem Skript zu lösen, das ich erstelle. Die Pipeline enthält dann jedoch nicht nur den Inhalt der Datei. Stattdessen finden Sie ein Objekt mit einer Vielzahl von Eigenschaften und Methoden, mit denen Sie Textdateien analysieren können. Wenn Sie eine Binärdatei durch die Pipeline senden, behandelt PowerShell sie als Textdatei, und Sie können die Daten in der Datei nicht verwenden. Es gibt zwei Möglichkeiten, Dateien von PowerShell herunterzuladen und an einem Ordnerspeicherort zu speichern. Bei der ersten Methode wechseln Sie zu dem Ordner, in dem Sie mit dem Befehl cd speichern möchten. Laden Sie eine Datei über übergebenheader-Werte (z. B. übergeben API-Schlüssel): Zusammenfassung: Erfahren Sie, wie Sie Windows PowerShell verwenden, um Dateien aus dem Internet und andere coole Aufgaben in der heutigen Quick-Hits Freitag herunterladen. Wenn Sie PowerShell als regulären Benutzer ausführen, können Sie keine Dateien im Stammverzeichnis Ihres Windows-Laufwerks speichern. Ja ist es.
Die System.Net.WebClient .NET Framework-Klasse kann verwendet werden, um sich mit SSL bei einer Website anzumelden und Dateien herunterzuladen oder hochzuladen. Ein Beispiel für ein solches Skript ist das Script Center Script Repository. Die System.Net.WebClient .NET Framework-Klasse wurde in mehreren Hey, Scripting Guy! hervorgehoben Beiträge, einschließlich einiger, in denen von der Arbeit mit ungültigen Zertifikaten im Zusammenhang mit einer bestimmten Website die Rede ist. Ich würde Ihnen empfehlen, diese Artikel für zusätzliche Informationen zu lesen. Übrigens schrieb James Brundage das Drehbuch, auf das ich Sie hingewiesen habe, und er diskutiert die Technik, die er in einer Reihe von Artikeln über Splatting (ein sehr wichtiges Konzept) verwendet. Im Beispiel laden wir einfach die HTML-Seite herunter, die der Webserver bei www.contoso.com generiert. Wenn Sie den Ordner nur ohne Dateinamen angeben, wie Sie es mit Copy-Item tun können, wird PowerShell fehlerfrei: Sie können den URI in einer Textdatei speichern und dann in Ihrem Skript mit Get-Content lesen.