Powershell: Net.Webclient - не получает ответ из интрасети в зависимости от компьютера

Приветствую всех,

У меня самая странная проблема, для которой мне нужны ваши идеи помощи, как подойти к проблеме.

Итак, у меня есть сценарий загрузки, который извлекает контент из внутренней сети компании с помощью объектов Webclient. Для этого требуются учетные данные, и он работает примерно на 80% компьютеров. Сценарий извлекает список, используя .DownloadString а затем анализирует и получает некоторые файлы, используя .DownloadFile,

На машинах, которые не будут работать с начальной .DownloadString зависает, пока не появится тайм-аут и не возвращается $null, Учетные данные пользователя не имеют отношения к этим типам компьютеров, а это означает, что пользователь, работающий на другом компьютере, не сможет работать на этом компьютере. Адреса, если они введены в браузер, возвращают содержимое.

Говоря в коде, я пытаюсь это так:

$wc = new-object System.Net.WebClient
$wc.Credentials = new-object System.Net.NetworkCredential($user, $pass, $domain)
$old_eap = $ErrorActionPreference
$ErrorActionPreference = "Stop"
try
    {
    $tmp = $wc.DownloadString($url)
    if ([String]::IsNullOrEmpty($tmp))
    {
        throw "Intranet server did not return directory listing"
    }
    Return $tmp #the code is actually part of a function...
    }
catch
    {
    write-error $_.Exception.Message
    Return $null
    }
finally
    {
    $ErrorActionPreference = $old_eap
    }

Я понятия не имею, кроме как искать измененные настройки между различными машинами. Но какие настройки могут иметь отношение к поведению Webclient? Есть идеи? Я серьезно застрял...

Я забыл... Чтобы сделать вещи немного проще, я застрял с версией 2.0, и мы пока не можем обновить. Облом...

Заранее спасибо Алекс

1 ответ

Возможно, попробуйте использовать xmlhttp в качестве клиента. Ниже приведен пример использования.

$url = "https://example.com/"
$http = New-Object -ComObject Msxml2.XMLHTTP
$user = "Domain\username"
$pwd = "password"

$utf = [System.Text.Encoding]::UTF8


$http.open("GET", $url, $false, $user, $pwd)
$http.send()
$result = $utf.GetString($http.responseBody)
Другие вопросы по тегам