none
powershell ie настройка прокси RRS feed

  • Вопрос

  • настраиваю прокси в ie c помощью скрипта.

    # https://hidemy.name/ru/proxy-list/?maxtime=200#list
    
    $regKey='HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
    $proxyServerToDefine = 'http=145.239.80.105:3128;https=145.239.80.105:3128'
    Write-Host 'Получаем настройки proxy server …'
    $proxyServer = Get-ItemProperty -path $regKey -ErrorAction SilentlyContinue 
    $proxyServer 
    
    if ( [string]::IsNullOrEmpty($proxyServerToDefine) )
    {
    	Write-Host -ForegroundColor Yellow 'Proxy включен'
        Set-ItemProperty -path $regKey ProxyEnable -value 0
        Remove-ItemProperty -path $regKey -name ProxyServer
        Write-Host -ForegroundColor Yellow 'Proxy отключен'
    }
    else
    {	
        Write-Host -ForegroundColor Yellow 'Proxy выключен'
        Set-ItemProperty -path $regKey ProxyEnable -value 1
        Set-ItemProperty -path $regKey ProxyServer -value $proxyServerToDefine
        Write-Host -ForegroundColor Yellow 'Proxy включен'
    }

    Мой фаерфокс использует системные настройки прокси.

    И после того как скрипт отработал. Настройки эти не применяются пока руками не запустить ie.

    Подскажите как поправить скрипт чтобы не надо было запускать ie

    Может быть есть что нибудь более красивое нежели

    start 'c:\Program Files\Internet Explorer\iexplore.exe'

    1 ноября 2017 г. 10:28

Ответы

  • https://github.com/majkinetor/posh/blob/master/MM_Network/Update-Proxy.ps1

    function refresh-system() {
        $signature = @'
    [DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
    public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
    '@
    
        $INTERNET_OPTION_SETTINGS_CHANGED   = 39
        $INTERNET_OPTION_REFRESH            = 37
        $type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru
        $a = $type::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
        $b = $type::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0)
        return $a -and $b
    }

    • Помечено в качестве ответа korggrodno3 1 ноября 2017 г. 12:22
    1 ноября 2017 г. 11:15
    Отвечающий