ใน Windows 7 จะเปลี่ยนการตั้งค่าพรอกซีจากบรรทัดคำสั่งได้อย่างไร


46

ฉันจะเปลี่ยนการตั้งค่าพร็อกซีจากบรรทัดคำสั่งใน Windows 7 ได้อย่างไร

http_proxyฉันไม่ได้พูดคุยเกี่ยวกับเพียง ฉันต้องตั้งค่าพร็อกซีทั้งระบบ (การตั้งค่าในการตั้งค่าคุณสมบัติอินเทอร์เน็ต) ฉันจะทำอย่างไร


ในกรณีที่ proxy ต้องการการอนุญาตด้วย: stackoverflow.com/questions/26992886/…
Vadzim

คำตอบ:


15

คุณจะต้องกำหนดค่าสคริปต์รีจิสตรีที่จะทำการเปลี่ยนแปลงตามปกติผ่านแผงควบคุมจากนั้นจึงรวมสคริปต์เพื่อเปิดใช้งานพรอกซี คุณจะต้องมีสคริปต์รีจิสตรี "เลิกทำ" เพื่อปิดการใช้งานการเปลี่ยนแปลง

ในกรณีของฉันฉันมีสองสคริปต์ enable.reg และ disable.reg:

เปิดใช้งานพร็อกซี:

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

ปิดใช้งานพร็อกซี:

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

ในสคริปต์ "ปิดการใช้งาน" =-ในตอนท้ายของ AutoConfigURL จะลบคีย์ออกจากรีจิสทรี

โปรดทราบว่าค่าที่คุณเห็นด้านบนมีการปรับเปลี่ยนเพื่อจุดประสงค์ของคำตอบนี้ ค่าฐานสิบหกที่เกิดขึ้นจริงจะนานกว่ามาก

ในการใช้สคริปต์เหล่านี้ฉันมีไฟล์แบตช์สำหรับแต่ละไฟล์โดยมีลักษณะดังนี้:

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

ที่สามารถทำงานได้อย่างสมบูรณ์จากบรรทัดคำสั่ง


ฉันลงเอยด้วยการทำอะไรเช่นนี้ ฉันไม่ทราบวิธีจัดการกับรีจิสทรีจากชุดสคริปต์ดังนั้นฉันจึงเขียนc#โค้ดสำหรับสิ่งนี้ .. :) thanx anyways ..
ง่าม

ดูเหมือนจะไม่เหมาะกับฉัน ฉันควรเห็นกล่อง "ใช้สคริปต์การกำหนดค่าอัตโนมัติ" จริงหรือไม่ใน 'การตั้งค่า LAN'
Jonny

@prongs ฉันสงสัยว่าคุณจะแบ่งปันรหัส C # นั้นใช่ไหม?
tisaconundrum

61

วิธีแก้ปัญหาที่ง่ายและใช้งานได้มาจากhttp://www.ehow.com/how_6887864_do-proxy-settings-command-prompt_.html

คำสั่งเพื่อเปิดใช้งานการใช้พร็อกซี:

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

คำสั่งเพื่อปิดการใช้งานพร็อกซี:

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

คำสั่งเพื่อเปลี่ยนที่อยู่พร็อกซี:

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

ฉันได้เพิ่มความต่อเนื่องของบรรทัด (^) เพื่อให้อ่านง่ายขึ้น นอกจากนี้ในกรณีนี้มันเป็นเหมือนการตั้งค่าต่อผู้ใช้มากกว่าการตั้งค่าทั้งระบบ


3
IMO นี่คือคำตอบที่แท้จริงสำหรับคำถาม ขอบคุณ @sayap
kmonsoor

4
+1 นี่เป็นทางออกที่ยอดเยี่ยมกว่าสำหรับฉัน

3
หมายเหตุ: ^อักขระไม่ได้เป็นส่วนหนึ่งของคำสั่ง
Joshua Drake

6
แต่เบราว์เซอร์จะไม่นำทางจนกว่าคุณจะเปิดหน้าต่าง "การกำหนดค่า LAN" อย่างน้อยก็เกิดขึ้นกับฉันเมื่อฉันใช้วิธีนี้ ฉันทำสิ่งนี้เพื่อปลุกเบราว์เซอร์ที่พร็อกซีเปลี่ยนหลังจากนั้นการเชื่อมต่อก็ใช้งานได้
Marcos Cassiano

1
@Cricrazy นี่คือสิ่งที่คุณกำลังมองหาฉันคิดว่า
Narzard

27

NetShเพื่อช่วยเหลือ!

NetSh winhttp set proxy น่าจะมีประโยชน์ นี่คือคำสั่ง:

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: netsh winhttp รีเซ็ตพร็อกซี
Kevin Driedger

9
ฉันคิดว่าสิ่งนี้ใช้ได้กับแอปพลิเคชันที่ใช้ไลบรารี WinHTTP เท่านั้น หลังจากการทดสอบอย่างรวดเร็วดูเหมือนว่าแอปพลิเคชันทั่วไปในระบบของฉันจะใช้สิ่งนั้น
sayap

4

ฉันทำมันใน C # แต่ปราชญ์เหมือนกันเขียนลงในรีจิสทรีดังนั้นคำแนะนำต่อไปนี้สามารถคาดการณ์ไปยังคำสั่ง line ได้ มันจะต้องทำสามสิ่ง:

  1. เขียนไปยังรีจิสทรี "การตั้งค่า HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet" บน ProxyEnable: 1 เพื่อเปิดใช้งาน, 0 เพื่อปิดการใช้งาน

  2. เขียนไปที่รีจิสทรี "การตั้งค่า HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet" บน ProxyServer: xxx.xxx.xxx.xxxx: yyyy (xxx ... คือ IP, yy .. is port)

  3. หลังจากดำเนินการตามขั้นตอนที่ 1 และ 2 คุณจะเขียนลงทะเบียนการเปิดใช้งานพรอกซีและ IP และพอร์ต แต่หากคุณเปิดเบราว์เซอร์คุณจะสังเกตเห็นว่ามันไม่เพียงพอคุณยังไม่สามารถนำทางได้ ขั้นตอนที่สามประกอบด้วยการเปลี่ยนรีจิสทรีที่เกี่ยวข้องกับการตั้งค่าการเชื่อมต่อ:

"Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Connections" บน "DefaultConnectionSettings"

โปรดสังเกตว่าแม้ว่า (อย่างน้อยสำหรับ W7) มี 204 ไบต์ในรีจิสทรีนี้คุณจะต้องแก้ไขไบต์ 8 (9th เนื่องจากไบต์ 0 เป็นครั้งแรก) ไบต์ 8 ค่าไม่เพียง แต่มีข้อมูลเกี่ยวกับการเปิดใช้งาน / ปิดใช้งานพร็อกซี แต่ยังเกี่ยวกับฟังก์ชันอื่น ๆ :

        //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. 

ในกรณีของฉัน 'การตั้งค่าตรวจจับอัตโนมัติ' จะเปิดใช้งานเสมอดังนั้นฉันจึงเปลี่ยนค่าของไบต์ 8 จาก 09 เป็น 0B และ viceversa เพื่อเปิดใช้งานและปิดใช้งานพรอกซี


1
ฉันพบคำตอบเกี่ยวกับ SO ที่อัปเดตการตั้งค่า DefaultConnectionSettings โดยใช้ PowerShell ฉันคิดว่ามันอาจจะมีประโยชน์สำหรับใครบางคน stackoverflow.com/a/15914470/1158180
paulH

2

สร้างแบตช์ไฟล์และวางเนื้อหาต่อไปนี้ (มันจะสลับสถานะพร็อกซี)

@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
นี่คล้ายกับคำตอบของ @ sayap มาก

-3

ฉันหวังว่าฉันจะชี้ให้คุณในทิศทางที่ถูกต้องที่นี่ แต่ถ้าคุณพยายามเข้าถึงการตั้งค่าพร็อกซีผ่าน "ตัวเลือกอินเทอร์เน็ต" เพียงแค่เปิดเมนูเริ่มและพิมพ์ "ตัวเลือกอินเทอร์เน็ต" (การตั้งค่าหรือแอปพลิเคชันใด ๆ ตัวอย่าง "พร็อกซี") จากนั้นคุณควรรู้จักเมนูนี้และสามารถเพิ่มการตั้งค่าที่ต้องการ


1
เพื่อน ... คุณไม่เห็นชื่อ proprely ... ฉันรู้ว่าคุณกำลังพยายามที่จะบอกฉัน ฉันต้องการที่จะทำจากบรรทัดคำสั่ง
ง่าม

คนที่ขอโทษดูเหมือนว่าเพื่อนจะช่วยให้คุณแก้ไขได้ทั้งหมด
ลุครัสเซลล์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.