Скачать файл встроенными средствами Windows

Сегодня я рассмотрю способы, посредством которых из-под Windows 10 Pro x64 Russian (Version: 10.0.14939) можно находясь в консоли командной строки загружать файлы из интернета, не применяя сторонних средств. Также все ниже указанное применимо и к другим Windows система: Windows 7,Server 2012 R2,Server 2016. Просто порой нужно иметь на вооружение навыки. А вообще, когда я разбирался очередную задумку, появилась еще одна в виде полностью консольного разворачивания задачи дабы потом сформировать скрипт, увеличивающий мою продуктивность.

Способ №1: Насколько я помню, когда изучал команды (все exe-файлы и что они делают) еще в Windows XP, то наткнулся на утилиту загрузки именуемую, как bitsadmin. Данная утилита по файлу справки поддерживает загрузку файлов при использовании: http & https, а также обращение к файлу вида file://

Синтаксис использования:

Bitsadmin /transfer <job_name> <type> /priority <low,normal,high,foreground> <remote_url> <local_url>

Что означают ключи в синтаксисе:

  • /transfer -> передача или отправка, т.е. можно скачать файлы или передать.
  • <job_name> -> произвольное именование вашего задания на скачивание файла
  • <type> -> может быть, как /DOWNLOAD & /UPLOAD. По умолчанию /DOWNLOAD, но я предпочитаю явно указывать что делаю.
  • /priority -> Приоритет у задачи, можно в нашем случае ставить любой.
  • <remote_url> -> удаленный путь до файла в интернете или локальной стеи
  • <local_url -> месторасположение на системе куда положить файл.

Пример:

123456789101112131415C:\Windows\system32>if not exist c:\test mkdir c:\test C:\Windows\system32>bitsadmin /transfer subinacl /download /priority normal https://download.microsoft.com/download/1/7/d/17d82b72-bc6a-4dc8-bfaa-98b37b22b367/subinacl.msi c:\test\subinacl.msi DISPLAY: ‘subinacl’ TYPE: DOWNLOAD STATE: TRANSFERRED PRIORITY: NORMAL FILES: 1 / 1 BYTES: 379392 / 379392 (100%) Transfer complete. C:\Windows\system32> C:\Windows\system32>dir c:\test\ | findstr /I “subinacl” 13.10.2018  06:45           379 392 subinacl.msi

Файл успешно скачан в указанную директорию test. Хочу заменить, что утилита не зависит от службы “Фоновая интеллектуальная служба передачи (BITS)”.

1C:\Windows\system32>rmdir /s /q “c:\test”

Способ №2: Получить файл применяя утилиту certutil

123456789101112131415C:\Windows\system32>if not exist c:\test mkdir c:\test C:\Windows\system32>certutil -urlcache -split -f “https://download.microsoft.com/download/1/7/d/17d82b72-bc6a-4dc8-bfaa-98b37b22b367/subinacl.msi” c:\test\subinacl.msi ****  Подключен  ****   000000  …   05ca00 CertUtil: -URLCache — команда успешно выполнена. C:\Windows\system32>dir c:\test\ | findstr /I “subinacl” 29.08.2019  11:08           379 392 subinacl.msi

-urlcache -> Показать или удалить URL-адреса в кэше

Способ №3: Получить файл применяя среду powershell:

123456789C:\Windows\system32>if not exist c:\test mkdir c:\test C:\Windows\system32>powershell -command get-host | findstr /I “Version” Version          : 5.1.14393.2189 C:\Windows\system32>powershell -command get-alias | findstr /I “curl” Alias           curl -> Invoke-WebRequest

Данный коммандлет Invoke-WebRequest поддерживается с PowerShell 3.0 и позволяет отправлять HTTP,HTTPS,FTP, FILE запросы на Web-страницы или Web-сервисы.

Загружаю файлы справки по использованию:

C:\Windows\system32>powershell -command update-help

Получаю

C:\Windows\system32>powershell -command get-help curl

Пример:

12345C:\Windows\system32>powershell -command curl -Method Default -uri https://download.microsoft.com/download/1/7/d/17d82b72-bc6a-4dc8-bfaa-98b37b22b367/subinacl.msi -outfile c:\test\subinacl.msi C:\Windows\system32>dir c:\test | findstr /I “subinacl” 29.08.2019  11:46           379 392 subinacl.msi

Как видите, встроенные средства – это Ваш навык по выходу из ситуации, когда других инструментов нет. Каждый системный администратор должен владеть тем, что есть под рукой, не прибегая к сторонним и не засоряя систему. Мне пока данных способов хватает, если я узнаю дополнительные, то дополню заметку. А пока у меня всё, с уважением автор блога Олло Александр aka ekzorchik.