我必须通过 PowerShell 检索代理服务器地址和端口,以便使用该Invoke-Webrequest -uri http://some-site.com -Proxy
命令。预期输出应如下所示http://proxy-server.com:端口。
我有一个 PowerShell 函数可以检索代理服务器地址和端口,所以我们可以在脚本中使用它吗?
答案1
以下是实现我的目标的 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
}
}
}
希望这可以帮助 !
答案2
[System.Net.WebProxy]::GetDefaultProxy() | select address
[System.Net.WebProxy]
是一个对象,它的一个静态方法是GetDefaultProxy()
。select
为我们展示了所有列中我们感兴趣的内容,它是地址。
答案3
同一主机:
Get-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
来源:https://www.mowasay.com/2016/08/windows-check-proxy-settings-from-powershell/
远程主机:
Invoke-Command -ComputerName Member01, Server01 {Get-ItemProperty -Path 'HKLM:\SOFTWARE\VMware, Inc.\VMware Tools\' -Name InstallPath | select InstallPath
}
来源:http://vcloud-lab.com/entries/powershell/powershell-get-registry-value-data
答案4
首先获取 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