Modul PowerShell untuk mengunduh file.
Invoke-WebRequest mengharuskan Anda untuk menyediakan nama file output, yang mungkin tidak Anda ketahui sebelumnya, dan tidak selalu mungkin untuk mengekstraknya dari URL.
Ini juga menyimpan seluruh file dalam memori saat mengunduh, yang merupakan berita buruk jika mengunduh file besar.
Ini tidak akan mempertahankan tanggal yang dimodifikasi dari file sumber asli seperti yang dilakukan banyak browser.
Juga (pada Windows PowerShell dengan $ ProgressPreference ditetapkan sebagai default) Bilah kemajuan akan diperbarui begitu sering sehingga secara drastis memperlambat unduhan.
Start-BitStransfer dapat menentukan nama file secara otomatis, tetapi tidak berfungsi untuk semua URL dan hanya didukung pada Windows.
Beberapa URL membutuhkan agen pengguna yang berbeda terhubung dengan sukses.
Modul ini memecahkan masalah ini:
Ini menggunakan kelas .NET HTTPClient (yang sekarang disarankan untuk digunakan oleh Microsoft atas kelas webclient yang sekarang sudah usang).
Ini pertama-tama akan mencoba mengambil nama file dari header konten-disposisi. Header diperoleh dengan permintaan GET reguler (karena beberapa server web telah ditunjukkan untuk menolak permintaan kepala). Jika header ini tidak ada, itu akan mengekstraksi nama file dari URL absolut (karena URL yang disediakan dapat mengarahkan ulang di tempat lain).
File dialirkan langsung ke disk daripada memegangnya sepenuhnya dalam memori.
Tanggal yang dimodifikasi akan diperbarui setelah unduhan selesai untuk mencocokkan header yang dimodifikasi terakhir jika ditemukan.
Bilah kemajuan terbatas pada memperbarui setiap 250ms untuk mencegah penggunaan sumber daya sistem yang berlebihan.
String agen pengguna untuk Chrome dan crawler web GoogleBot akan dicoba secara default.
Instal dari Galeri PowerShell dengan menjalankan perintah berikut:
Instalasi -Modul -NAME PSDOWNLOAD
Resolve-uri "https://aka.ms/vs/17/release/vc_redist.x64.exe"
Ini akan mengembalikan URI absolut (URI yang dialihkan), serta nama file, ukuran file, dan tanggal dimodifikasi terakhir jika tersedia dari header respons.
Invoke -download -uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -destination "$ env: userprofilEndowns"
Ini akan mengunduh file ke folder unduhan.
Input pipa juga didukung:
"https://aka.ms/vs/17/release/vc_redist.x64.exe","https://aka.ms/vs/17/release/vc_redist.x86.exe" | Invoke -Download -Desinasi "$ Env: UserProfileDownsLoads"
URL juga diterima sebagai alias dari URI .
Parameter opsional:
Nama file
Gunakan ini untuk mengganti nama file daripada mencoba mendeteksi secara otomatis.
UserAgent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, Like Gecko) Chrome/116.0.0.0 Safari/537.36
GoogleBot/2.1 (+http: //www.google.com/bot.html)
Mengganti agen pengguna default. Secara default akan bersepeda melalui penggunaan:
Header
Default adalah @{'accept' = ' / '}, yang diperlukan untuk menipu beberapa server agar melayani unduhan, seperti dari FileZilla.
Temppath
Secara default, unduhan yang sedang berlangsung akan disimpan ke % Temp % / $ Env: Temp.
Diabaikan
Abaikan header yang dimodifikasi tanggal, yang dimodifikasi akan menjadi tanggal file diunduh sebagai gantinya.
Blockfile
Tandai file yang diunduh dari Internet (secara default tidak melakukan ini).
Noclobber
Gunakan ini untuk mencegah menimpa file yang ada.
Noprogress
Menekan Progress Bar.
Passthru
Mengembalikan objek FileInfo ke pipa untuk file yang diunduh.
Ini telah diuji terhadap sejumlah besar URL, silakan kirimkan masalah jika tidak dapat mengunduh file tertentu. Perhatikan bahwa beberapa halaman web dapat menjalankan beberapa javascript untuk memicu unduhan yang sebenarnya. Jenis URL ini tidak didukung, ia harus mengarah langsung ke sumber daya tanpa perlu menjalankan skrip sisi klien.