Invoke-WebRequest: ange autentiseringsuppgifter för proxyn i PowerShell
Invoke-WebRequest har egna parametrar för autentiseringsuppgifter till proxyn. Uppgifterna för målet och en lyckad inloggning i webbläsaren ersätter dem inte.
För ett explicit proxykonto skickar du ett autentiseringsobjekt till -ProxyCredential:
$proxyAccount = Get-Credential
Invoke-WebRequest -Uri https://example.com/ -Proxy http://proxy.example:8080 -ProxyCredential $proxyAccountByt ut slutpunkten mot den godkända tjänsten. Get-Credential frågar efter ett konto i stället för att bädda in ett lösenord på kommandoraden. Kontot går till mellanhanden; målets autentiseringsuppgifter är en separat parameter och kan inte svara på en 407 från proxyn.
Om proxyns autentiseringsschema och processens identitet stöder integrerad autentisering väljer du -ProxyUseDefaultCredentials i stället. Kombinera det inte med explicita proxyuppgifter i samma begäran.
Kontrollera referensen för den PowerShell-version som kör skriptet. Windows PowerShell och moderna PowerShell skiljer sig i implementering och parametertillgänglighet; versioner som stöds erbjuder också -NoProxy för en explicit direkt begäran.
När samma skript beter sig annorlunda som en uppgift
Granska relevanta $PSDefaultParameterValues-poster och den proxykonfiguration som processen stöder. En profil kan vid sessionsstart lägga till kommandospecifika proxystandardvärden. En schemalagd uppgift kan hoppa över den profilen och köra som en annan identitet, trots att skriptfilen är oförändrad.
Jämför mål-URL, vald slutpunkt, nödvändig proxy-metod, PowerShell-version och explicita kontra standarduppgifter, med hemligheter maskerade. Om proxyautentiseringen lyckas och målet returnerar 401, undersök inloggningen till det målet i stället för att flytta proxylösenordet till parametern för ursprungsuppgifter.