Invoke-WebRequest или wget не могут загрузить файлы PS1 с URL - PullRequest
0 голосов
/ 22 апреля 2020

Я запускаю скрипт .ps1, который в основном загружает все файлы, которые он находит из удаленного URL. В URL включена поддержка просмотра каталогов в IIS, и я могу видеть все файлы в браузере.

Все файлы загружаются правильно, но при попытке загрузить любые файлы .ps1 происходит сбой, говоря: 404 - Файл или каталог не найден. Файл определенно есть.

wget $url/test.ps1 -outfile $destPath\test.ps1

и

Invoke-WebRequest -Uri $url/$basename -OutFile $destPath\$basename

, оба с ошибкой 404. Я проверил, что $ url, $ basename и $ destPath возвращают правильные значения. Я могу переименовать тот же файл в test.exe, и он отлично скачивает. Любой другой файл, который я пытаюсь загрузить, используя методы, описанные выше, работает (файлы txt, exe), но не файлы PS1. Я также заметил, что если у меня есть другие файлы с ext, такие как .xyz, он тоже содержит ошибки и не загружается. Может быть, какую-то настройку MIME-типа мне нужно настроить в IIS?

Или с этими командами происходит какой-то фильтр, который не позволяет загружать файлы сценариев powershell? Либо на локальной машине, либо на удаленной машине? Проверяет ли он настройки IE и нужно ли что-то включать или выключать?

Я даже пробовал этот скрипт, который также загружает файлы с веб-сайта, но та же проблема:

http://vcloud-lab.com/entries/powershell/microsoft-powershell-download-a-whole-folder-of-files-subfolders-from-the-web-directory

1 Ответ

0 голосов
/ 22 апреля 2020

Ааа, я понял. Пришлось добавить это внутри web.config:

<system.webServer>
    <directoryBrowse enabled="true" />
    <staticContent>
    <mimeMap fileExtension="*" mimeType="text/plain" /><!-- or application/octet-stream -->
    </staticContent>
</system.webServer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...