לקריאת המאמר באנגלית: English
איור שורת הפקודה המקורי (מקור חיצוני; לא נטען בבדיקה בעת העדכון).
להורדות רגילות ב־Windows, השתמשו בכלי הורדה מתוחזק או בפקודת האינטרנט של PowerShell. הכתובת שלהלן היא מציין מקום לדוגמה, ולא יעד הורדה שאומת. החליפו אותה בכתובת HTTPS מהימנה שיש לכם הרשאה לגשת אליה, ובחרו יעד שניתן לכתוב אליו ושלא ידרוס קובץ שאתם צריכים. הדוגמאות שומרות קובץ; הן אינן מריצות אותו. אף אחת מהן לא הורצה במסגרת העדכון הזה.
1. curl.exe
תחילה בדקו אם curl זמין:
curl.exe --version
עמוד curl הרשמי ל־Windows מספק גרסאות עדכניות וקובצי אימות אם אתם צריכים עותק שמתוחזק בנפרד. הוא גם מציין ש־Microsoft כוללת את curl ב־Windows 10 וב־Windows 11. השתמשו ב־curl.exe ולא בכינוי הדו־משמעי curl ב־Windows PowerShell.
curl.exe --fail --location --proto "=https" --proto-redir "=https" --output log.csv "https://example.com/reports/log.csv"
הדוגמה עוקבת אחרי הפניות, אך מגבילה את ההעברה ואת ההפניות ל־HTTPS. היא מבקשת שהפקודה תיכשל בתגובה לשגיאות HTTP ושומרת את הפלט ב־log.csv. ראו את האפשרויות האלה במדריך curl. השאירו את אימות התעודות פעיל; HTTPS לבדו אינו מוכיח שהקובץ שהורדתם מהימן.
2. Invoke-WebRequest
הכותרת המקורית "PowerShell 1" הייתה דו־משמעית: Invoke-WebRequest נוספה ב־Windows PowerShell 3.0, ולא בגרסה 1. ב־Windows PowerShell 5.1, הוסיפו -UseBasicParsing כדי להימנע מהסיכון להרצת סקריפטים בעת ניתוח תוכן של דפי אינטרנט, כפי שמוסבר בתיעוד של Microsoft:
Invoke-WebRequest -UseBasicParsing -Uri "https://example.com/reports/log.csv" -MaximumRedirection 0 -OutFile log.csv
הדוגמה מסרבת בכוונה לעקוב אוטומטית אחרי הפניות. אם השרת מפנה לכתובת אחרת, השיגו ואמתו את כתובת ה־HTTPS הסופית במקום לעקוב אחריה בעיוורון. העברה שנכשלה עלולה להשאיר קובץ חלקי; בדקו את תוצאת הפקודה לפני השימוש בפלט.
3. BITS, כאשר המודול זמין
במערכות Windows שבהן זמין המודול BitsTransfer, אפשרות נוספת היא Start-BitsTransfer. זהו מספר של שיטה, ולא הבטחה שהמודול זמין בכל גרסה או סביבת עבודה של PowerShell:
Start-BitsTransfer -Source "https://example.com/reports/log.csv" -Destination log.csv
מה השתנה ביחס לדוגמאות הישנות?
- certutil: במקור שימש כלי לניהול תעודות ככלי הורדה. Microsoft מתעדת את certutil ואת הפעולה שלו על מטמון כתובות URL; המדריך הזה אינו ממליץ עוד להסב אותו להורדות כלליות.
- wget: הקישור הישיר הישן הפנה למתקין של Wget 1.11.4 דרך HTTP לא מוצפן. אל תפעלו לפי ההמלצה להשתמש במתקין הזה. אם אתם זקוקים דווקא ל־Wget, עיינו במידע ההפצה הרשמי של GNU ובמקור התוכנות המאושר שלכם, במקום להשתמש בקובץ הבינארי הישן. אין כאן המלצה על מתקין צד שלישי ל־Windows.
- WebClient: הדוגמה הישנה של
System.Net.WebClient.DownloadFileהיא קוד .NET ותיק. Microsoft סימנה את WebClient כמיושן החל מ־.NET 6. הוא עדיין עשוי להיות קיים בסביבות ישנות, אך אינו התבנית המועדפת לקוד חדש.
הפעלת PowerShell משורת פקודה
הצורות שבמקור בוחרות ב־Windows PowerShell:
powershell -command "..."
או:
powershell -file file.ps1
PowerShell המודרני משתמש במקום זאת ב־pwsh, כפי שמוסבר בתיעוד של Microsoft על שם קובץ ההפעלה. שלוש הנקודות הן מציין מקום, ולא פקודת הורדה שאפשר להריץ כפי שהיא. הריצו קובץ סקריפט רק אחרי שבדקתם את תוכנו ואת מקורו; אל תשביתו מדיניות הרצה או בקרות אבטחה אחרות רק כדי להריץ דוגמת הורדה.