2017-02-03 1 views
1

До сих пор я имел обыкновение использовать Invoke-WebRequest, как следует:Powershell Invoke-WebRequest данных с использованием смарт-карт аутентификации или авторизации существующих

Invoke-WebRequest -u $url -header $header 

в то время как $header содержит закодированное имя пользователя и пароль.

Поскольку веб-сайт переехал работать с Active Directory, данные смарт-карты в настоящее время используется для авторизации доступа

Как я могу использовать Invoke-WebRequest с помощью смарт-карт учетных данных?

Благодаря

ответ

1

Использование смарт-карт, в основном обрабатывается так же, как веб-сайт, который нуждается в сертификат.

Я использую приведенный ниже код для загрузки файлов из SharePoint с использованием аутентификации SmartCard, вам просто нужно изменить Invoke-WebRequest в соответствии с вашими требованиями.

Add-Type -AssemblyName System.Security 

# Filtering for cert requirements... 
$ValidCerts = [System.Security.Cryptography.X509Certificates.X509Certificate2[]](dir Cert:\CurrentUser\My | where { $_.NotAfter -gt (Get-Date) }) 

# You could check $ValidCerts, and not do this prompt if it only contains 1... 
$Cert = [System.Security.Cryptography.X509Certificates.X509Certificate2UI]::SelectFromCollection(
    $ValidCerts, 
    'Choose a certificate', 
    'Choose a certificate', 
    'SingleSelection' 
) | select -First 1 

$WebRequestParams = @{ 
    Uri = $Url  # Uri to file to download 
    OutFile = $Path # Path to where file should be downloaded (include filename) 
    Certificate = $Cert 
} 
Invoke-WebRequest @WebRequestParams 
+0

Привет, попробовал, как-то не работает ... Я все еще получаю ответ, что я отправил неправильные учетные данные – mrGo

Смежные вопросы