web-dev-qa-db-ja.com

PowerShellを介してインターネットプロキシサーバーのアドレスを取得する

PowerShell経由でプロキシサーバーのアドレスとポートを取得する必要があるため、Invoke-Webrequest -uri http://some-site.com -Proxyコマンド。予想される出力は http://proxy-server.com:port のようになります。

プロキシサーバーのアドレスとポートを取得するPowerShell関数があるので、それをスクリプトで使用できますか?

5
Ob1lan

これが私の目標を達成するための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
        }
    }    
}

enter image description here

お役に立てれば !

9
Ob1lan

[System.Net.WebProxy]::GetDefaultProxy() | select address

_[System.Net.WebProxy]_はオブジェクトであり、その静的メソッドの1つはGetDefaultProxy()です。 selectは、すべての列から、私たちに興味のあるものを示しており、それがアドレスです。

7
aDoN

最初にIE設定を取得します。アクティブな場合はプロキシ設定を使用します。

if($ 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
1
Kirill Pashkov