پرش به محتوا
لوگو ابر آراد
  • محصولات
    ابر خصوصی (VPC)

    فضایی امن با امکان ایجاد تعداد دلخواه سرور ابری (VMs) مشابه یک دیتاسنتر فیزیکی

    هوش مصنوعی ابری (AIaaS)

    هوشمندسازی فرایندهای کاری کسب و کارهای مختلف با ابزارهای کاربردی و کارآمد

    سرور ابری (VPS)

    سرورهای ابری (VPS) با امکان نصب سیستم عامل‌های دلخواه ویندوز و لینوکس

    شرایط استفاده از خدمات

    آشنایی با شرایط استفاده از خدمات ارائه شده در سرویس‌های ابری و هوش مصنوعی ابر آراد.

  • راهکارها
    مهاجرت ابری

    مهاجرت و به روز رسانی زیرساخت خود را با راهنمایی متخصصان، ابزار و منابع سریع کنید.

    کارخانجات صنعتی

    راهکاری قابل اتکا برای انواع کارخانجات

    کسب و کارهای آنلاین

    راهکاری پایدار برای فروشگاه‌های آنلاین

    خدمات مالی و بیمه

    راهکاری امن جهت مدرن سازی سیستم‌های مالی

    استارتاپ‌ها و شرکت‌های کوچک

    نسل جدید زیرساخت برای استارتاپ‌ها

    شرکت‌های متوسط

    راهکاری یکپارچه برای شرکت‌ها

    شرکت‌های بزرگ و سازمان‌ها

    راهکاری مقیاس پذیر برای سازمان‌ها

  • قیمت گذاری
    شیوه قیمت‌گذاری

    آشنایی با جزییات قیمت‌گذاری و محاسبه‌ی هزینه‌ی محصولات ابری آراد

    مقایسه ابرخصوصی و سرور ابری

    بررسی و مقایسه ویژگی‌ها و امکانات ابر خصوصی و سرورابری آراد

    ماشین حساب

    امکان محاسبه سریع قیمت سرویس ابری در یک صفحه ساده و امکان خرید بلافاصله بعد از محاسبه قیمت.

    مقایسه انواع پشتیبانی سرویس‌های ابری

    انتخاب پلن پشتیبانی مناسب، قدمی کلیدی برای موفقیت کسب‌وکار شماست.

  • بانک دانش
    سوالات متداول

    پاسخ‌های کوتاه و مستقیم به رایج‌ترین پرسش‌هایی که برای استفاده از محصولات ابر آراد در ذهن دارید.

    بلاگ (اخبار و مقالات)

    در بلاگ ابر آراد می توانید مقالات و اخبار مختلف در زمینه‌های زیرساخت و رایانش ابری را مطالعه کنید.

    مستندات فنی

    همه آنچه برای ساخت یک VPC یا VPS نیاز دارید را می توانید در این بخش بیابید.

    شرایط استفاده از خدمات

    آشنایی با شرایط استفاده از خدمات ارائه شده در سرویس‌های ابری و هوش مصنوعی ابر آراد.

پشتیبانی
ورود / ثبت نام

تخفیف 30٪ ویژه برای شرکت‌های دانش‌بنیان!

ARadCloud Logo
  • محصولات
    محصولات ابر آراد
    • ابر خصوصی (VPC)
      ابر ایزوله با امنیت و منابع اختصاصی
    • ابر گرافیکی (VGC)
      سرور ابری با قدرت پردازش گرافیکی
    • سرور ابری (VPS)
      سرور ابری سریع و منعطف
    دسته بندی بر اساس عملکرد
    مدیریت شبکه و امنیت
    • مدیریت NAT پیشرفته
    • فایروال
    • اتصال امن IPsec VPN
    • مسیریابی استاتیک
    • محافظت در برابر DDoS
    • فایروال نرم افزاری وب
    مدیریت سرورها و منابع
    • شبکه اختصاصی
    • قالب سفارشی
    • پشتیبان‌گیری
    • اسنپ‌شات
    بهینه‌سازی و مدیریت
    • لود بالانسر
    • مدیریت دسترسی حساس
    • سامانه مانیتورینگ
    • میزکار
    ابرخصوصی (VPC)ابرخصوصی (VPC)
    زیرساخت ابری اختصاصی و ایمن شروع مدیریت حرفه ای منابع سازمانی
  • راهکارها
    راهکارها
    • کوچ ابری
      مهاجرت و توسعه زیرساخت‌ها
    دسته بندی
    براساس صنعت
    • کارخانجات صنعتی
    • کسب و کارهای آنلاین
    بر اساس اندازه شرکت
    • استارتاپ‌ها و شرکت های کوچک
    • سازمان‌های بزرگ و سازمان ها
    ابرخصوصی (VPC)ابرخصوصی (VPC)
    زیرساخت ابری اختصاصی و ایمن شروع مدیریت حرفه ای منابع سازمانی
  • قیمت گذاری
    قیمت گذاری(محاسبه هزینه)
    • شیوه قیمت گذاری
      ساختار قیمت شفاف و ساده
    • ماشین حساب
      محاسبه سریع هزینه سرویس‌ها
    دسته بندی
    • مقایسه ابرخصوصی و سرور ابری
      مقایسه امنیت و انعطاف‌پذیری ابرخصوصی و سرور ابری
    • مقایسه انواع پشتیبانی
      مقایسه کیفیت، سرعت و سطح خدمات پشتیبانی
  • منابع دانش
    مستندات فنی
    • مستندات
      راهنمای کامل استفاده از سرویس‌ها
    • سوالات متداول
      پاسخ به پرسش‌های پرتکرار کاربران
    • شرایط استفاده از خدمات
      قوانین و ضوابط بهره‌ برداری از خدمات
    سایر منابع
    • بلاگ (اخبار و مقالات)
      جدیدترین اخبار و آموزش‌های تخصصی
    آخرین پست های بلاگ
    بهترین ارائه‌دهندگان سرور مجازی در سال 2024بهترین ارائه‌دهندگان سرور مجازی در سال 2024
    اهمیت انتخاب ارائه‌دهنده مناسب سرور مجازی و معیارهای انتخاب بهترین ارائه‌دهنده سرور مجازی ...
    همه چیز درباره VPS و VPCهمه چیز درباره VPS و VPC
    در ارتباط با VPC و VPS می توان اینطور بیان کرد که در دنیای رایانه، مجازی‌سازی به معنای ایجاد ... 
  • دانش بنیان %30-

ورود / ثبت نام
ARadCloud Logo
  • محصولات
  • راهکارها
  • قیمت گذاری
  • منابع دانش
  • دانش بنیان %30-

ورود / ثبت نام
بلاگ آراد
  • موضوعات
    • اخبار
    • آموزش
    • امنیت ابری
    • رایانش ابری
    • مجازی سازی
    • هوش مصنوعی
    • ذخیره سازی ابری
    • اخبار
    • آموزش
    • امنیت ابری
    • رایانش ابری
    • مجازی سازی
    • هوش مصنوعی
    • ذخیره سازی ابری
پاورشل
سرو ابری
ابر خصوصی
آراد > آموزش > آموزش جامع نحوه دانلود فایل در پاورشل (PowerShell)

آموزش جامع نحوه دانلود فایل در پاورشل (PowerShell)

زمان مطالعه: 13 دقیقه
در این مقاله خواهید خواند

سکشن اول: آشنایی با روش‌های اصلی دانلود فایل در پاورشل

پاورشل (PowerShell) یکی از قوی‌ترین ابزارهای خط فرمان و اتوماسیون در سیستم‌ عامل ویندوز است که توسط مایکروسافت توسعه یافته است. این ابزار نه تنها برای مدیریت سیستم و سرورها استفاده می‌شود، بلکه به کاربران اجازه می‌دهد تا به‌صورت مستقیم با وب، فایل‌ ها، سرویس‌ ها و API ها تعامل داشته باشند. یکی از کاربردهای رایج و مهم پاورشل، دانلود فایل‌ها از اینترنت یا شبکه داخلی است.

در این آموزش از سری مقالات آموزش سیستم‌ عامل و ویندوز در بلاگ ابرآراد، به‌صورت مرحله‌به‌مرحله یاد می‌گیریم که چگونه با استفاده از سه روش اصلی، Invoke-WebRequest، System.Net.WebClient و Start-BitsTransfer، فایل‌ ها را در محیط پاورشل دانلود کنیم.

چرا دانلود فایل با پاورشل اهمیت دارد؟

در محیط‌های سازمانی، سرورهای ابری یا حتی پروژه‌ های DevOps، گاهی نیاز است فایل‌ های به‌روزرسانی، اسکریپت‌ ها یا گزارش‌ها به‌صورت خودکار از اینترنت یا مخازن داخلی دانلود شوند.
اگر دانلود فایل‌ها در محیط‌های اتوماسیونی یا پروژه‌ های DevOps را روی زیرساخت پایدار و مقیاس‌ پذیر انجام می‌دهید، استفاده از سرور ابری با منابع انعطاف‌پذیر مدیریت اسکریپت‌ ها و عملیات PowerShell را بسیار ساده‌تر می‌کند.

به جای استفاده از مرورگر یا نرم‌ افزارهای جانبی، می‌توان با چند خط کد پاورشل:

  • فایل‌ ها را به‌صورت خودکار و زمان‌بندی‌ شده دریافت کرد.
  • چندین فایل را به‌طور موازی یا غیرهمزمان (Asynchronous) دانلود نمود.
  • دانلودها را با محدودیت پهنای باند مدیریت کرد.
  • فرآیند دانلود را در اسکریپت‌ های مدیریتی یا نصب خودکار گنجاند.

در ادامه، با سه روش قدرتمند پاورشل برای انجام این کار آشنا می‌شویم.

روش اول: دانلود فایل با Invoke-WebRequest

یکی از ساده‌ترین و در عین‌ حال انعطاف‌ پذیرترین روش‌ها برای دانلود فایل در پاورشل، استفاده از دستور Invoke-WebRequest است. این cmdlet از نسخه PowerShell 3 به بعد معرفی شد و برای ارسال درخواست‌ های HTTP/HTTPS و دریافت پاسخ از وب‌ سرورها به کار می‌رود.

مثال ساده:

Invoke-WebRequest -Uri “https://example.com/file.zip” -OutFile “C:\Downloads\file.zip”

با اجرای این دستور، فایل مورد نظر از آدرس مشخص‌شده دانلود و در مسیر خروجی ذخیره می‌شود.

مزایای استفاده از Invoke-WebRequest

1- سادگی و شفافیت: تنها با دو پارامتر اصلی (-Uri و -OutFile) می‌توانید دانلود را انجام دهید.

2- پشتیبانی از کوکی‌ ها و نشست‌ ها (Sessions): با استفاده از پارامترهای -WebSession یا -Session می‌توانید در دانلودهای متوالی از نشست HTTP استفاده کنید.

3- تعامل با API ها: این روش برای دانلود داده‌ های JSON یا XML از REST API ها نیز قابل استفاده است.

معایب استفاده از Invoke-WebRequest

با وجود سادگی، این روش محدودیت‌هایی نیز دارد:

  • سرعت پایین‌تر نسبت به سایر روش‌ها، زیرا پاسخ HTTP ابتدا در حافظه ذخیره و سپس روی دیسک نوشته می‌شود.
  • وابستگی به Internet Explorer Engine در نسخه‌های قدیمی پاورشل (ویندوز سرور Core از این ویژگی پشتیبانی نمی‌کند).
  • مصرف بالای حافظه RAM در زمان دانلود فایل‌ های بزرگ.

پیشنهاد استفاده

اگر در حال دانلود فایل‌ های کوچک (چند مگابایت) هستید یا نیاز به حفظ Session دارید، Invoke-WebRequest انتخابی عالی است. اما اگر به دنبال سرعت بالاتر و مصرف کمتر منابع هستید، باید روش‌های دیگر را بررسی کنید.

روش دوم: استفاده از System.Net.WebClient

دومین روش کلاسیک برای دانلود فایل در پاورشل، استفاده از شیء دات‌نتی System.Net.WebClient است. این روش از زمان ویندوز XP در دسترس بوده و به‌دلیل سادگی در اسکریپت‌ نویسی محبوبیت بالایی دارد. System.Net.WebClient  در .NET Core و بعد از آن Deprecated شده و باید از HttpClient  استفاده شود.

نمونه کد:

$url = “https://example.com/file.zip”

$output = “C:\Downloads\file.zip”

$webclient = New-Object System.Net.WebClient

$webclient.DownloadFile($url, $output)

با اجرای این سه خط کد، فایل مورد نظر از اینترنت دانلود و در مسیر مشخص ذخیره می‌شود.

مزایای WebClient

1- سرعت بالا: WebClient فایل را مستقیماً از جریان (Stream) HTTP به دیسک منتقل می‌کند.

2- پشتیبانی کامل از نسخه‌های Core ویندوز: برخلاف Invoke-WebRequest، برای اجرا به هیچ موتور مرورگری نیاز ندارد.

3- اجرای ساده در یک خط کد: مناسب برای استفاده در اسکریپت‌ های نصب یا به‌روزرسانی خودکار.

معایب WebClient

  • فاقد قابلیت نمایش وضعیت پیشرفت دانلود (Progress).
  • در حالت عادی، به‌صورت همزمان (Synchronous) اجرا می‌شود و سایر دستورات را تا پایان دانلود متوقف می‌کند.
  • کنترل و مدیریت کمتری بر فرآیند HTTP ارائه می‌دهد.

پیشنهاد استفاده

روش System.Net.WebClient برای کاربرانی که به دنبال دانلود سریع و بدون نیاز به کنترل‌های پیچیده هستند، بهترین گزینه است. این روش در سرورهای Windows Server Core نیز به‌صورت کامل قابل استفاده است.

روش سوم: استفاده از Start-BitsTransfer

سومین و حرفه‌ای‌ترین روش، استفاده از دستور Start-BitsTransfer است.
BITS یا Background Intelligent Transfer Service یک سرویس داخلی ویندوز است که به‌صورت بهینه فایل‌ ها را در پس‌زمینه دانلود یا آپلود می‌کند، بدون اینکه پهنای باند شبکه را اشغال کند.

BITS در برخی نسخه‌های Windows Home ممکن است محدودیت داشته باشد.

نمونه کد:

$url = “https://example.com/file.zip”

$output = “C:\Downloads\file.zip”

Import-Module BitsTransfer

Start-BitsTransfer -Source $url -Destination $output

برای اجرای غیرهمزمان (Asynchronous):

Start-BitsTransfer -Source $url -Destination $output -Asynchronous

مزایای Start-BitsTransfer

1- بیشترین سرعت و پایداری در بین سه روش.

2- قابلیت ادامه دانلود (Resume) در صورت قطع اتصال شبکه.

3- قابلیت محدودسازی پهنای باند برای جلوگیری از اشغال کل ظرفیت اینترنت.

4- پشتیبانی از دانلودهای پس‌زمینه (Background) بدون ایجاد اختلال در سایر وظایف سیستم.

معایب Start-BitsTransfer

  • ممکن است سرویس BITS در برخی نسخه‌های ویندوز غیرفعال باشد.
  • اجرای آن در ماشین‌هایی با تنظیمات خاص (مثل محیط‌های Hardened Server) ممکن است نیاز به مجوز ادمین داشته باشد.
  • در اسکریپت‌ های خودکار باید بررسی شود که سرویس BITS فعال است:
    Get-Service -Name BITS

پیشنهاد استفاده

اگر قصد دارید فایل‌ های بزرگ یا چندین فایل را به‌صورت همزمان دانلود کنید، روش Start-BitsTransfer بهترین انتخاب است. این روش به‌ویژه در سناریوهای سازمانی، محیط‌ های ابری و سرورهای ویندوزی بسیار کارآمد است.

مقایسه نهایی سه روش

ویژگی‌هاInvoke-WebRequestSystem.Net.WebClientStart-BitsTransfer
سرعت دانلودمتوسطبالابسیار بالا
نیاز به ماژول اضافینداردندارددارد (BitsTransfer)
پشتیبانی از Windows Coreمحدودکاملکامل
قابلیت Resume دانلودنداردندارددارد
نمایش پیشرفت دانلودنداردندارددارد
پشتیبانی از کوکی و Sessionداردنداردندارد
مناسب برای فایل‌های بزرگخیربلهبله
قابلیت Asynchronousمحدوددارد (DownloadFileAsync)دارد

در این بخش از آموزش یاد گرفتیم که پاورشل با سه روش قدرتمند می‌تواند عملیات دانلود فایل را انجام دهد. هر کدام از این روش‌ها کاربرد مخصوص خود را دارند:

  • Invoke-WebRequest: مناسب برای اسکریپت‌ های ساده و نیازمند Session.
  • System.Net.WebClient: سریع، سبک و مناسب برای فایل‌ های بزرگ.
  • Start-BitsTransfer: پیشرفته‌ترین روش برای دانلودهای پس‌ زمینه با کنترل پهنای باند.

سکشن دوم: نمونه‌های عملی، مدیریت خطا، و بهینه‌ سازی دانلودها

در سکشن اول یاد گرفتیم که سه روش اصلی برای دانلود فایل‌ ها در PowerShell وجود دارد:
Invoke-WebRequest، System.Net.WebClient، و Start-BitsTransfer.
اکنون در سکشن دوم وارد بخش حرفه‌ای‌تر این آموزش می‌شویم و یاد می‌گیریم چگونه با استفاده از این دستورات، دانلودهای خود را خودکارسازی، بهینه و ایمن کنیم.

نمونه‌های عملی از دانلود فایل در PowerShell

مثال ۱: دانلود فایل ساده با Invoke-WebRequest

اگر بخواهید یک فایل کوچک (مثلاً فایل ZIP یا TXT) را دانلود کنید، می‌توانید از مثال زیر استفاده کنید:

$source = “https://example.com/update.zip”

$destination = “C:\Downloads\update.zip”

Invoke-WebRequest -Uri $source -OutFile $destination

Write-Host “دانلود با موفقیت انجام شد!”

در این مثال، فایل مستقیماً از وب‌ سایت مورد نظر دانلود و در مسیر مشخص‌ شده ذخیره می‌شود.

مثال ۲: دانلود چند فایل پشت سر هم

گاهی نیاز دارید چند فایل مختلف را از یک آدرس مشابه یا لیست دریافت کنید.
می‌توانید از ساختار حلقه استفاده کنید:

$files = @(

  “https://example.com/file1.zip”,

  “https://example.com/file2.zip”,

  “https://example.com/file3.zip”

)

foreach ($url in $files) {

  $filename = Split-Path $url -Leaf

  $path = “C:\Downloads\$filename”

  Invoke-WebRequest -Uri $url -OutFile $path

  Write-Host “دانلود فایل $filename با موفقیت انجام شد.”

}

با این اسکریپت، هر فایل به‌صورت جداگانه در پوشه مشخص‌ شده ذخیره می‌شود.

مثال ۳: دانلود فایل با WebClient به‌صورت همزمان (Async)

برای افزایش سرعت یا مدیریت چند دانلود همزمان، می‌توانید از متد DownloadFileAsync() استفاده کنید:

$client = New-Object System.Net.WebClient

$url = “https://example.com/bigfile.iso”

$output = “C:\Downloads\bigfile.iso”

$client.DownloadFileAsync($url, $output)

با این روش، فرآیند دانلود در پس‌ زمینه انجام می‌شود و PowerShell به اجرای سایر دستورات ادامه می‌دهد.

مثال ۴: دانلود با کنترل خطا و زمان‌بندی

در مثال زیر از Try/Catch برای کنترل خطاها استفاده شده است:

try {

    $url = “https://example.com/update.exe”

    $output = “C:\Downloads\update.exe”

    Invoke-WebRequest -Uri $url -OutFile $output -ErrorAction Stop

    Write-Host “دانلود فایل با موفقیت انجام شد.”

}

catch {

    Write-Host “خطایی در فرآیند دانلود رخ داده است:” $_.Exception.Message

}

در صورت بروز خطا، پیام مناسب در خروجی نمایش داده می‌شود بدون اینکه کل اسکریپت متوقف شود.

مدیریت پیشرفته دانلودها با Start-BitsTransfer

BITS یا Background Intelligent Transfer Service همانطور که گفتیم یکی از بهترین گزینه‌ها برای دانلود فایل‌ های بزرگ است.
در ادامه چند مثال کاربردی‌تر از استفاده‌ی آن را می‌بینید.

مثال ۱: دانلود با پهنای باند محدود

برای جلوگیری از اشغال کامل پهنای باند سرور، می‌توانید میزان دانلود را محدود کنید:

Start-BitsTransfer -Source “https://example.com/data.zip” -Destination “C:\Downloads\data.zip” -TransferPolicy Limited

مثال ۲: دانلود غیرهمزمان (Asynchronous)

Start-BitsTransfer -Source “https://example.com/bigfile.iso” -Destination “C:\Downloads\bigfile.iso” -Asynchronous

با پارامتر -Asynchronous فرآیند دانلود در پس‌ زمینه ادامه می‌یابد و کاربر می‌تواند دستورات دیگر را همزمان اجرا کند.

مثال ۳: بررسی وضعیت دانلودهای فعال

Get-BitsTransfer

این دستور تمام دانلودهای فعال و در حال انتظار را نشان می‌دهد. برای حذف یک دانلود خاص می‌توانید از:

Remove-BitsTransfer -Id <TransferID>

استفاده کنید.

نکات امنیتی هنگام دانلود با PowerShell

دانلود فایل از طریق خط فرمان همیشه باید با احتیاط انجام شود. چند نکته مهم برای امنیت:

  1. بررسی صحت فایل دانلودی
    بعد از دانلود، با استفاده از Get-FileHash می‌توانید از صحت و تطابق فایل مطمئن شوید:

Get-FileHash -Path “C:\Downloads\file.zip” -Algorithm SHA256

  1. دانلود فقط از منابع معتبر
    همیشه آدرس فایل را از منابع رسمی دریافت کنید تا از خطر بدافزارها جلوگیری شود.
  2. فعال کردن Execution Policy مطمئن
    اگر از اسکریپت‌ ها استفاده می‌کنید، مطمئن شوید Execution Policy در سطح مطمئن (مانند RemoteSigned) تنظیم شده است:

Set-ExecutionPolicy RemoteSigned

  1. عدم ذخیره رمز عبور در اسکریپت‌ ها
    در صورت نیاز به اعتبارسنجی HTTP، از SecureString استفاده کنید تا رمزها به‌صورت امن نگهداری شوند.

در سناریوهای سازمانی که نیاز به امنیت بیشتر، زیرساخت ایزوله و دسترسی کنترل‌ شده وجود دارد، اجرای اسکریپت‌ های پاورشل روی ابرخصوصی (VPC) بهترین انتخاب برای مدیریت ایمن دانلود فایل‌ هاست.

بهینه‌ سازی سرعت دانلود فایل‌ ها

اگرچه سرعت دانلود در پاورشل به عوامل مختلفی مانند پهنای باند، latency شبکه و قدرت سرور مقصد بستگی دارد، با رعایت چند نکته می‌توان عملکرد را بهبود داد:

  • استفاده از System.Net.WebClient برای دانلودهای تکی و بزرگ
  • فعال‌ سازی BITS برای مدیریت بهتر فایل‌ های حجیم
  • تنظیم مقدار BufferSize در WebRequest برای کنترل جریان داده
  • اجرای اسکریپت روی سیستم‌هایی با CPU و RAM کافی
  • اجتناب از همزمانی زیاد در دانلودها (Concurrency بیش از حد)

چه از سرورهای ابری برای مقیاس‌ پذیری سریع استفاده کنید و چه زیرساخت‌ های ابرخصوصی ابرآراد را برای پردازش امن ترجیح دهید، اجرای اسکریپت‌ های دانلود پاورشل روی این محیط‌ها سرعت، امنیت و قابلیت اتوماسیون را به‌طور چشمگیری افزایش می‌دهد.

مقایسه زمان دانلود بین روش‌ها

بر اساس تست‌های تجربی برای فایل ۱۰ مگابایتی در شرایط استاندارد:

روش دانلودزمان تقریبی (ثانیه)سرعت نسبی
Invoke-WebRequest۲۷ ثانیهکند
System.Net.WebClient۷ ثانیهسریع
Start-BitsTransfer۶ ثانیهبسیار سریع

بنابراین اگر کاربر حرفه‌ای ویندوز هستید و با فایل‌ های بزرگ سروکار دارید، پیشنهاد می‌شود BITS را برای سرعت و پایداری بیشتر به‌کار گیرید.

رفع خطاهای متداول

نوع خطادلیل احتمالیراه‌حل
Access Deniedمسیر خروجی نیاز به دسترسی ادمین دارداجرای پاورشل با Run as Administrator
The request was abortedقطع اتصال شبکه یا فیلتر DNSبررسی دسترسی اینترنت و آدرس منبع
SSL/TLS Errorنسخه TLS قدیمی یا گواهی نامعتبراجرای دستور [Net.ServicePointManager]::SecurityProtocol = “Tls12”
BITS Service Not Runningسرویس BITS غیرفعال استاجرای Start-Service BITS

ترکیب روش‌ها برای اسکریپت‌ های هوشمند

می‌توانید با ترکیب چند روش، اسکریپتی بنویسید که به‌صورت خودکار روش بهینه را انتخاب کند:

$url = “https://example.com/file.zip”

$output = “C:\Downloads\file.zip”

try {

    Start-BitsTransfer -Source $url -Destination $output -ErrorAction Stop

    Write-Host “دانلود با BITS انجام شد.”

}

catch {

    try {

        (New-Object System.Net.WebClient).DownloadFile($url, $output)

        Write-Host “دانلود با WebClient انجام شد.”

    }

    catch {

        Invoke-WebRequest -Uri $url -OutFile $output

        Write-Host “دانلود با Invoke-WebRequest انجام شد.”

    }

}

در این اسکریپت، پاورشل ابتدا تلاش می‌کند با BITS دانلود را انجام دهد، اگر سرویس فعال نبود، به سراغ WebClient و در نهایت Invoke-WebRequest می‌رود.

جمع‌بندی

در این دو سکشن از مقاله، یاد گرفتید که پاورشل ابزار قدرتمندی برای مدیریت و دانلود فایل‌ هاست و با سه روش اصلی زیر می‌توان هر نوع فایل را از اینترنت یا شبکه داخلی دریافت کرد:

1- Invoke-WebRequest، ساده و کاربردی برای فایل‌ های کوچک

2- System.Net.WebClient، سریع و سازگار با تمام نسخه‌های ویندوز

3- Start-BitsTransfer، بهترین گزینه برای دانلودهای بزرگ و حرفه‌ای

همچنین با نحوه‌ی مدیریت خطا، بررسی امنیت، بهینه‌ سازی سرعت و خودکارسازی فرآیند دانلود آشنا شدید.

سوالات متداول

1- برای دانلود فایل‌ های موازی از چه دستوری استفاده کنیم؟
می‌توانید از متد DownloadFileAsync() در WebClient یا پارامتر -Asynchronous در Start-BitsTransfer استفاده کنید.

2- اگر سرویس BITS غیرفعال بود چه باید کرد؟
دستور زیر را اجرا کنید:
Start-Service BITS

3- چطور سرعت دانلود را در پاورشل اندازه‌گیری کنیم؟
با ثبت زمان شروع و پایان:
$start = Get-Date
Invoke-WebRequest -Uri $url -OutFile $output
$time = (Get-Date) – $start
Write-Host “زمان دانلود:” $time.Seconds “ثانیه”

4- آیا امکان دانلود فایل از FTP در پاورشل وجود دارد؟
بله، WebClient از پروتکل FTP نیز پشتیبانی می‌کند:
$client.DownloadFile(“ftp://example.com/file.zip”, “C:\file.zip”)

5- کدام روش برای استفاده در سرورهای ویندوز Core بهتر است؟
روش System.Net.WebClient چون بدون نیاز به رابط گرافیکی و وابستگی به مرورگر کار می‌کند.

منابع

پیشنهاد مطالعه

آموزش جامع مدیریت IIS در پاورشل (PowerShell)

سکشن اول: نصب، پیش‌نیازها و ساخت اولین وب‌ سایت IIS با PowerShell ...

زمان مطالعه: 14 دقیقه

مطالب مرتبط

چک‌ لیست طلایی افزایش امنیت وردپرس؛ راهنمای جامع برای حفاظت از سایت در برابر حملات سایبری

23 آذر 1404

چگونه امنیت بخش‌های مدیریتی وردپرس را افزایش دهیم؟

20 آذر 1404

اقدامات ضروری پس از هک شدن وب‌ سایت وردپرس یا جوملا: راهنمای جامع تشخیص، بازیابی و پیشگیری از حملات سایبری

18 آذر 1404

آموزش کامل دستور Resolve-DnsName در پاورشل (PowerShell)

16 آذر 1404

آموزش جامع مدیریت IIS در پاورشل (PowerShell)

11 آذر 1404

آموزش اتصال به سرور مجازی ویندوز از طریق ریموت دسکتاپ (RDP)

9 آذر 1404

تفاوت سرور ابری با سرور مجازی (VPS) چیست؟

6 آذر 1404

کاربردهای VPS، مزایا و معایب سرور مجازی خصوصی

4 آذر 1404

ارتقاء امنیت زیرساخت‌ها و نظارت پیشرفته سازمانی: رویکرد یکپارچه مانیتورینگ مداوم و عملیات امنیت (SecOps)

2 آذر 1404

کارت گرافیک ابری (VGC): چطور رندر، هوش مصنوعی و تحلیل داده را در زمان واقعی امکان‌پذیر می‌کند؟

29 آبان 1404

هاردنینگ سرور مجازی (VPS): راهنمای کامل برای افزایش امنیت سرور شما

28 آبان 1404

یادگیری ماشین چیست و چه کاربردهایی دارد؟ Machine Learning به زبان ساده

25 آبان 1404
دنیای فناوری آراد را در شبکه های اجتماعی دنبال کنید:
محصولات
ابرخصوصی (VPC)
سرور ابری (VPS)
هوش مصنوعی ابری (AIaaS)
میزکار گرافیکی (GDaaS)
شبکه توزیع محتوا (CDN)
امنیت ابری (SECaaS)
راهکارها
راهکار کارخانجات ابر آراد
کسب و کارهای آنلاین
استارتاپ ها و شرکت های کوچک
شرکت های بزرگ و سازمان ها
قیمت گذاری
ماشین حساب
سطوح سرویس‌دهی(SLA)
سطوح پشتیبانی
دنیای فناوری آراد
درباره آراد
راهنمای سرویس‌ها
شرایط استفاده از خدمات
سیاست حفظ حریم خصوصی
توافق‌نامه‌ی سطح کیفیت خدمات
سوالات متداول
شرکای ابری
ارتباطات
تماس با پشتیبانی
تماس با آراد
ثبت تیکت
بلاگ
مشاوره تخصصی
درخواست سرویس
مونو ابر آراد
تماس:
شنبه تا چهارشنبه ساعت 8 الی 18 پنجشنبه 8 الی 14
025-32151
021-22905572-3
ثبت پارک علم و فناوری
ثبت نظام صنفی رایانه ای
مجوز اینماد

© ﮐﻠﯿﻪ ﺣﻘﻮق ﻣﺎدی و ﻣﻌﻨﻮی اﯾﻦ ﺳﺎﯾﺖ ﻣﺘﻌﻠﻖ ﺑﻪ دنیای فناوری آراد ﻣﯽﺑ‌ﺎﺷﺪ.

دنیای فناوری آراد را در شبکه های اجتماعی دنبال کنید:

محصولات

  • ابرخصوصی (VPC)
  • ابر گرافیکی (VGC)
  • سرور ابری (VPS)

راهکارها

  • دانش بنیان
  • کارخانجات صنعتی
  • کسب و کارهای آنلاین
  • استارتاپ‌ها و شرکت های کوچک
  • شرکت های بزرگ و سازمان ها

قیمت‌گذاری

  • شیوه قیمت گذاری
  • ماشین حساب
  • مقایسه ابرخصوصی و سرور ابری
  • مقایسه انواع پشتیبانی

دنیای فناوری آراد

  • درباره آراد
  • شرایط استفاده از خدمات
  • سیاست حفظ حریم خصوصی
  • توافق نامه سطح کیفیت خدمات
  • سوالات متداول
  • بلاگ

ارتباطات

  • تماس با پشتیبانی
  • تماس با فروش
  • ثبت تیکت
  • مشاوره تخصصی
  • درخواست سرویس
دنیای فناوری آراد | خدمات ابری پیشرفته و هوش‌مصنوعی - AradCloud

تماس:

شنبه تا چهارشنبه ساعت 8 الی 18 پنجشنبه 8 الی 14

025-32151
021-91093038
وزارت ارتباطات و فناوری اطلاعات سازمان فناوری اطلاعات ایراندانش بنیانپارک علم و فناوری استان قمسازمان نظام صنفی رایانه ای کشورنماد اعتماد الکترونیک
© ﮐﻠﯿﻪ ﺣﻘﻮق ﻣﺎدی و ﻣﻌﻨﻮی اﯾﻦ ﺳﺎﯾﺖ ﻣﺘﻌﻠﻖ ﺑﻪ دنیای فناوری آراد ﻣﯽﺑ‌ﺎﺷﺪ.
لوگو سفید ابر آراد
محصولات
ابر خصوصی (VPC)
سرور ابری (VPS)
هوش مصنوعی ابری (AIaaS)
میزکار گرافیکی (GDaaS)
شبکه توزیع محتوا (CDN)
امنیت ابری (SECaaS)
راهکارهای ابری
خدمات مالی
پلتفرم آموزش آنلاین
بانک ها و موسسات مالی
سازمان های صنعتی
آراد
بلاگ
مستندات
درباره آراد
تماس با آراد
ثبت تیکت