Мне нужно получить адрес и порт прокси-сервера через PowerShell, поэтому я могу использовать Invoke-Webrequest -uri http://some-site.com -Proxy
команда. Ожидаемый результат должен выглядеть так: http://proxy-server.com:port.
Есть ли функция PowerShell для получения адреса и порта прокси-сервера, чтобы мы могли использовать ее в сценарии?
Вот функция PowerShell для достижения моей цели:
function Get-InternetProxy
{
<#
.SYNOPSIS
Determine the internet proxy address
.DESCRIPTION
This function allows you to determine the the internet proxy address used by your computer
.EXAMPLE
Get-InternetProxy
.Notes
Author : Antoine DELRUE
WebSite: http://obilan.be
#>
$proxies = (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyServer
if ($proxies)
{
if ($proxies -ilike "*=*")
{
$proxies -replace "=","://" -split(';') | Select-Object -First 1
}
else
{
"http://" + $proxies
}
}
}
Надеюсь это поможет !
[System.Net.WebProxy]::GetDefaultProxy() | select address
[System.Net.WebProxy]
является объектом, и одним из его статических методов является GetDefaultProxy()
. В select
показывает нам из всех столбцов то, что нас интересует, и это адрес.
Сначала вы получаете настройки IE. Затем воспользуйтесь настройками прокси, если они активны.
если ($ IESettings.ProxyEnable -eq 1)
$IESettings = Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
$Proxy = "http://$(($IESettings.ProxyServer.Split(';') | ? {$_ -match 'ttp='}) -replace '.*=')"
Invoke-WebRequest 'http://some-site.com' -ProxyUseDefaultCredentials -Proxy $Proxy