【问题标题】:Set proxy settings and proxy authentication设置代理设置和代理身份验证
【发布时间】:2014-03-06 13:34:36
【问题描述】:

我是 PowerShell 的新手,每次上大学时我都厌倦了更改 proxy settingsproxy authentication,有没有办法使用 PowerShell 命令来做到这一点,比如使用 PowerShell 脚本输入代理地址和端口和身份验证,而不是使用图形窗口InternetOptions>Connections>LanSettings(我假设存在),如果是,我该怎么做?

我已经搜索了网络和 StackOverflow,但我得到了不同的答案,这些答案并没有针对我想要的。

【问题讨论】:

    标签: windows internet-explorer powershell proxy


    【解决方案1】:

    我很感兴趣,所以我写了一个小 POSH CmdLet,应该会有所帮助。通过在 Google 上搜索有很多关于如何执行此操作的参考资料,因此信息就在那里。我发现的大多数解决方案都不是真正的标准 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
    

    一些验证捕获:

    • 操作是强制性的,只需要“禁用”或“启用”。为简单起见,使用制表符完成
    • 如果选择“启用”,则需要代理和端口

    【讨论】:

    • 一个陷阱:代理设置是在加载wininet层时初始化的,所以这些不会立即生效。您可以创建一个 iexplore com 对象并销毁它以强制重新加载 wininet 层。
    猜你喜欢
    • 2010-10-17
    • 2013-06-01
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2016-10-13
    相关资源
    最近更新 更多