Скачать файл встроенными средствами 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 ->
месторасположение на системе куда положить файл.
Пример:
123456789101112131415 | C:\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)
”.
1 | C:\Windows\system32>rmdir /s /q “c:\test” |
Способ №2: Получить файл применяя утилиту certutil
123456789101112131415 | C:\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:
123456789 | C:\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
Пример:
12345 | C:\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.