Windows 7'de proxy ayarları komut satırından nasıl değiştirilir?


Yanıtlar:


15

Normalde Denetim Masası üzerinden yapacağınız değişiklikleri yapacak bir kayıt defteri komut dosyası yapılandırmanız ve ardından proxy'yi etkinleştirmek için komut dosyasını birleştirmeniz gerekir. Ayrıca değişiklikleri devre dışı bırakmak için bir "geri al" kayıt defteri komut dosyasına da ihtiyacınız olacak.

Benim durumumda, iki script var, enable.reg ve disable.reg:

Proxy'yi etkinleştir:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"AutoConfigURL"="http://10.10.10.1/autoproxy/proxy.pac"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:16,00,00,00,05,02,00,00,0d,00,00,00,0e,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:36,00,00,00,46,1a,00,00,0d,00,00,00,0e,00,00,00,32,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

Proxy'yi devre dışı bırak:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"AutoConfigURL"=-

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:16,00,00,00,05,02,00,00,0d,00,00,00,0e,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:36,00,00,00,46,1a,00,00,0d,00,00,00,0e,00,00,00,32,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

"Disable" betiğinde, =-AutoConfigURL sonunda, anahtarı kayıt defterinden siler.

Yukarıda gördüğünüz değerlerin, bu cevabın amaçları için değiştirildiğini unutmayın. Gerçek hex değerleri çok daha uzun.

Bu komut dosyalarını kullanmak için, her biri için bir toplu iş dosyasım vardı ve şöyle bir şey gördüm:

@echo off
start /min reg import C:\Path\To\Registry\File\enable_proxy.reg

Bu komut satırından tamamen uygulanabilir.


Ben böyle bir şey yaparak sona erdi. Toplu komut dosyasından kayıt defterini nasıl değiştireceğimi bilmiyordum c#, bu yüzden kod yazdım .. :). neyse teşekkürler ..
Dişleri

Bu benim için işe yaramıyor. 'LAN Ayarları'nda işaretlenmiş ve işaretlenmemiş olan "otomatik yapılandırma komut dosyasını kullan" kutusunu gerçekten görmeli miyim?
Jonny,

@prongs Bu C # kodunu paylaşacağınızdan şüpheliyim ... doğru mu?
tisaconundrum

61

Basit ve çalışma çözümü http://www.ehow.com/how_6887864_do-proxy-settings-command-prompt_.html adresinden alındı.

Proxy kullanımını etkinleştirme komutu:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyEnable /t REG_DWORD /d 1 /f

Proxy kullanımını devre dışı bırakma komutu:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyEnable /t REG_DWORD /d 0 /f

Proxy adresini değiştirme komutu:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyServer /t REG_SZ /d proxyserveraddress:proxyport /f

Okunabilirliği arttırmak için satır devamı (^) ekledim. Ayrıca, bu durumda, sistem genelinde bir ayardan çok kullanıcı başına bir ayar gibidir.


3
IMO, bu sorunun asıl cevabı. Thanks @sayap
kmonsoor

4
+1. Bu benim için çok daha zarif bir çözüm.

3
Not: ^Karakterler komutların parçası değildir.
Joshua Drake

6
Ancak tarayıcılar, "LAN configuration" penceresini açana kadar gezinmez. En azından bu yöntemi kullandığımda başıma geliyor. Bunu, proxy'nin değiştiği tarayıcıları uyandırmak için yapıyorum, ancak bundan sonra bağlantı çalışır.
Marcos Cassiano

1
@Cricrazy bu aradığın şey sanırım
Narzard

27

NetSh kurtarmaya!

NetSh winhttp set proxy yardımcı olmalı. İşte komutlar:

netsh winhttp set proxy myproxy

netsh winhttp set proxy myproxy:80 "<local>bar"

netsh winhttp set proxy proxy-server="http=myproxy;https=sproxy:88" bypass-list="*.contoso.com"


Netsh kullanarak proxy'yi temizleme: netsh winhttp reset proxy
Kevin Driedger

9
Bunun yalnızca WinHTTP kitaplığını kullanan uygulama için geçerli olduğunu düşünüyorum. Hızlı bir testten sonra, sistemimde bunu kullanan herhangi bir yaygın uygulama gibi görünmüyor.
sayap

4

C # ile yaptım, ancak felsefe aynı, kayıt defterine yazıyor, bu yüzden aşağıdaki talimatlar satır komutuna eklenebilir. Üç şey yapılır:

  1. ProxyEnable'da "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings" Kayıt Defterine yaz: 1 etkinleştirmek, 0 devre dışı bırakmak

  2. ProxyServer'da "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings" Kayıt Defterine Yazın: xxx.xxx.xxx.xxxx: yyyy (xxx ... IP, yy .. bağlantı noktasıdır)

  3. Adım 1 ve 2'yi gerçekleştirdikten sonra, proxy ile IP ve port aktivasyonunu kayıt altına almak için yazmış olacaksınız, ancak tarayıcıyı açarsanız bunun yeterli olmadığını göreceksiniz, henüz gezinemezsiniz. Üçüncü adım, bağlantı ayarlarıyla ilgili kayıt defterini değiştirmekten oluşur:

"DefaultConnectionSettings" ta "Yazılım \ Microsoft \ Windows \ CurrentVersion \ Internet Ayarları \ Bağlantılar".

Her ne kadar (en azından W7 için) bu kayıt defterinde 204 bayt olmasına rağmen, sadece bayt 8'i değiştirmek zorundasınız (9 bayt 0 olduğu için 9). Bayt 8 değeri yalnızca proxy etkinleştirme / devre dışı bırakma hakkında değil aynı zamanda diğer işlevler hakkında da bilgi içerir:

        //09 when only 'Automatically detect settings' is enabled 
        //03 when only 'Use a proxy server for your LAN' is enabled
        //0B when both are enabled
        //05 when only 'Use automatic configuration script' is enabled
        //0D when 'Automatically detect settings' and 'Use automatic      configuration script' are enabled
        //07 when 'Use a proxy server for your LAN' and 'Use automatic configuration script' are enabled
        //0F when all the three are enabled. 
        //01 when none of them are enabled. 

Benim durumumda, 'Ayarları otomatik olarak algıla' her zaman etkindir, bu yüzden byte 8'in değerini 09'dan 0B'ye ve viceversa'yı proxy'yi etkinleştirmek ve devre dışı bırakmak için değiştiririm.


1
SO üzerinde powershell kullanarak DefaultConnectionSettings ayarını güncelleyen bir cevap buldum. Birileri için faydalı olabileceğini düşündüm. stackoverflow.com/a/15914470/1158180
paul

2

Bir toplu iş dosyası oluşturun ve aşağıdaki içeriği yapıştırın (Proxy durumunu değiştirir),

@echo off

FOR /F "tokens=2* delims=    " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable') DO SET currentProxy=%%B
rem ECHO currentProxy=%currentProxy%

if %currentProxy%==0x1 (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
echo Proxy Disabled
) else (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
echo Proxy Enabled
  )

pause

1
Bu @ sayap'ın cevabına çok benziyor.

-3

Umarım sizi burada doğru yöne işaret ediyorum, ancak proxy ayarlarına "İnternet seçenekleri" üzerinden erişmeye çalışıyorsanız, başlat menüsünü açmanız ve "internet seçeneğini" yazmanız yeterlidir (herhangi bir ayarı veya uygulamayı da bu şekilde bulabilirsiniz) örnek "vekil"). Daha sonra bu menüyü tanımanız ve gerekli ayarlarınızı ekleyebilmeniz gerekir.


1
dostum ... unvanı çok iyi görmedin ... Bana ne söylemeye çalıştığını biliyorum. Komut satırından yapmak istiyorum.
Çatalak

üzgünüm dostum, dostum yine de düzeltti gibi gözüküyor
Luke Russell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.