Я искал эту проблему по всему inte rnet и придумал несколько сообщений по этому поводу (например: Как отправить учетные данные в окно запроса с помощью Invoke-WebRequest ), но ни одна из них не кажется для работы в моем случае, вот так:
Я создал приглашение для входа на веб-сайт на локальном веб-сервере с .htpasswd и .htaccess (xampp Apache), и теперь я получаю всплывающее окно входа в систему:
![enter image description here](https://i.stack.imgur.com/Y6WTB.png)
Я могу войти с такими учетными данными:
пользователь: admin
пароль: admin123
Теперь я хотел бы, чтобы Powershell извлекал содержимое веб-сайта с помощью методов Invoke-WebRequest, Invoke-RestMethod или WebClient (или чего-то подобного). Заголовок можно увидеть здесь (basi c auth):
![enter image description here](https://i.stack.imgur.com/yiG34.png)
Однако в Powershell параметры -header и -credential оба возвращают 401 так что, очевидно, что-то не проходит правильно. Вот что я попробовал:
$user = "admin"
$pass = "admin123"
$pair = "${user}:${pass}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"
$headers = @{ Authorization = $basicAuthValue }
$securepass = $pass | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $securepass)
Invoke-RestMethod -uri "http://localhost/" -Headers $headers
Invoke-RestMethod -uri "http://localhost/" -Credential $cred
Invoke-RestMethod -uri "http://localhost/" -Headers $headers -credential $cred
Invoke-WebRequest -uri "http://localhost/" -Headers $headers
Invoke-WebRequest -uri "http://localhost/" -Credential $cred
Invoke-WebRequest -uri "http://localhost/" -Headers $headers -credential $cred
Спасибо!