我是PowerShell
的新手,每次去大学时我都厌倦了改变proxy settings
和proxy authentication
,有没有办法使用PowerShell命令来做到这一点,比如使用PowerShell脚本输入代理地址和端口以及身份验证,而不是使用图形窗口InternetOptions>Connections>LanSettings
(我假设存在),如果是,我该怎么办呢?
我搜索了网络和StackOverflow,但我得到了不同的答案,并没有针对我想要的目标。
答案 0 :(得分:1)
我很感兴趣,所以我写了一篇应该有所帮助的POSH CmdLet。通过搜索谷歌有很多参考资料,如何做到这一点,所以信息就在那里。我发现的大多数解决方案都不符合标准的Powershell编码惯例,所以我无法自拔。试试吧。这对“自动检测设置”没有任何作用。你自己就是那个人。但是,这会启用/禁用代理设置:
function Modify-ProxySettings() {
[CmdLetBinding(SupportsShouldProcess=$True)]
Param (
[Parameter(Mandatory=$False)][String]$Proxy,
[Parameter(Mandatory=$False)][String]$Port,
[ValidateSet("Disable","Enable")]
[Parameter(Mandatory=$True)][String]$Action
)
Begin {
$RegKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
if ($Action.Equals("Enable") -and ([String]::IsNullOrEmpty($Proxy) -and [String]::IsNullOrEmpty($Port))) {
throw New-Object System.Exception "Proxy and Port must be defined when enabling"
}
}
Process {
if ($Action.Equals("Enable")) {
Set-ItemProperty -Path $RegKey -Name ProxyEnable -Value 1
Write-Verbose -Message "Set: $RegKey\ProxyEnable to Enabled(1)"
Set-ItemProperty -Path $RegKey -Name ProxyServer -Value "$Proxy`:$Port"
Write-Verbose -Message "Set: $RegKey\ProxyServer to $Proxy`:$Port"
Write-Host "Proxy Enabled with $Proxy`:$Port"
} elseif ($Action.Equals("Disable")) {
Set-ItemProperty -Path $RegKey -Name ProxyEnable -Value 0
Write-Verbose -Message "Set: $RegKey\ProxyEnable to Disabled(0)"
Set-ItemProperty -Path $RegKey -Name ProxyServer -Value ""
Write-Verbose -Message "Proxy server and port removed"
Write-Host "Proxy Disabled"
}
}
}
Modify-ProxySettings -Action Disable #Disables
Modify-ProxySettings -Action Enable -Proxy someproxy.com -Port 1337 #Enables
一些验证捕获: