Trong Windows 7, làm cách nào để thay đổi cài đặt proxy từ dòng lệnh?


46

Làm cách nào để thay đổi cài đặt proxy từ dòng lệnh trong Windows 7?

Tôi không nói về chỉ http_proxy. Tôi cần đặt cài đặt proxy toàn hệ thống (cài đặt proxy trong cài đặt thuộc tính Internet). Làm thế nào để làm điều đó?


Trong trường hợp proxy cũng yêu cầu ủy quyền: stackoverflow.com/questions/26992886/
Khăn

Câu trả lời:


15

Bạn sẽ cần định cấu hình tập lệnh đăng ký để thực hiện các thay đổi bạn thường làm thông qua Bảng điều khiển và sau đó hợp nhất tập lệnh để bật proxy. Bạn cũng sẽ cần một tập lệnh đăng ký "hoàn tác" để vô hiệu hóa các thay đổi.

Trong trường hợp của tôi, tôi có hai tập lệnh, enable.reg và vô hiệu hóa:

Kích hoạt Proxy:

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

Vô hiệu hóa Proxy:

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

Trong tập lệnh "vô hiệu hóa", =-ở cuối AutoConfigURL thực sự xóa khóa khỏi sổ đăng ký.

Lưu ý rằng các giá trị bạn thấy ở trên được sửa đổi cho mục đích của câu trả lời này. Các giá trị hex thực tế dài hơn nhiều.

Để sử dụng các tập lệnh này, tôi đã có một tệp bó cho mỗi tập lệnh, trông giống như thế này:

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

Đó là hoàn toàn khả thi từ dòng lệnh.


Tôi cuối cùng đã làm một cái gì đó như thế này. Tôi không biết cách thao tác đăng ký từ tập lệnh bó nên tôi đã viết c#mã cho việc này .. :). thanx anyways ..
prongs

Điều này dường như không làm việc cho tôi. Tôi thực sự có nên thấy hộp "sử dụng tập lệnh cấu hình tự động" được đánh dấu và bỏ chọn trong 'Cài đặt mạng LAN' không?
Jonny

@prongs Tôi nghi ngờ bạn sẽ chia sẻ mã C # đó ... phải không?
tisaconundrum

61

Giải pháp đơn giản và hiệu quả được truy xuất từ http://www.ehow.com/how_6887864_do-proxy-sinstall-command-prompt_.html

Lệnh kích hoạt sử dụng proxy:

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

Lệnh tắt sử dụng proxy:

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

Lệnh thay đổi địa chỉ proxy:

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

Tôi đã thêm tiếp tục dòng (^) để cải thiện khả năng đọc. Ngoài ra, trong trường hợp này, nó giống như cài đặt theo người dùng hơn là cài đặt toàn hệ thống.


3
IMO, đây là câu trả lời thực sự cho câu hỏi. Cảm ơn @sayap
kmonsoor

4
+1. Đây là một giải pháp thanh lịch hơn nhiều đối với tôi.

3
Lưu ý: Các ^ký tự không phải là một phần của lệnh.
Joshua Drake

6
Nhưng các trình duyệt không điều hướng cho đến khi bạn mở cửa sổ "Cấu hình LAN". Ít nhất điều này xảy ra với tôi khi tôi sử dụng phương pháp này. Tôi làm điều này để đánh thức các trình duyệt mà proxy đã thay đổi, chỉ sau đó, kết nối hoạt động.
Marcos Cassiano

1
@Cricrazy đây là những gì bạn đang tìm kiếm Tôi nghĩ
Narzard 7/07/2016

27

NetSh để giải cứu!

NetSh winhttp set proxy nên có ích Dưới đây là các lệnh:

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"


Xóa proxy bằng Netsh: proxy thiết lập lại Netsh winhttp
Kevin Driger

9
Tôi nghĩ rằng điều này chỉ áp dụng cho ứng dụng sử dụng thư viện WinHTTP. Sau khi thử nghiệm nhanh, có vẻ như không có ứng dụng phổ biến nào trên hệ thống của tôi sử dụng điều đó.
sayap

4

Tôi đã làm điều đó trong C #, nhưng philosphy là như nhau, ghi vào sổ đăng ký, vì vậy các hướng dẫn sau đây có thể được ngoại suy thành lệnh dòng. Nó sẽ được thực hiện ba điều:

  1. Ghi vào sổ đăng ký "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings", trên ProxyEnable: 1 để bật, 0 để tắt

  2. Ghi vào sổ đăng ký "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings", trên ProxyServer: xxx.xxx.xxx.xxxx: yyyy (xxx ... là IP, yy .. là cổng)

  3. Sau khi thực hiện bước 1 và 2, bạn sẽ có văn bản để đăng ký kích hoạt proxy và IP và cổng, nhưng nếu bạn mở trình duyệt, bạn sẽ thấy rằng nó không đủ, bạn chưa thể điều hướng. Bước thứ ba bao gồm thay đổi sổ đăng ký liên quan đến cài đặt kết nối:

"Phần mềm \ Microsoft \ Windows \ CurrentVersion \ Cài đặt Internet \ Kết nối" trên "DefaultConnectionS Settings".

Lưu ý rằng mặc dù (ít nhất là đối với W7) có 204 byte trong sổ đăng ký này, bạn chỉ phải sửa đổi byte 8 (thứ 9 vì byte 0 là đầu tiên). Giá trị Byte 8 không chỉ chứa thông tin về bật / tắt proxy mà còn về các chức năng khác:

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

Trong trường hợp của tôi, 'Tự động phát hiện cài đặt' luôn được bật, vì vậy tôi chuyển giá trị của byte 8 từ 09 sang 0B và ngược lại để bật và tắt proxy.


1
Tôi đã tìm thấy câu trả lời trên SO cập nhật cài đặt DefaultConnectionS Settings bằng powershell. Tôi nghĩ rằng nó có thể hữu ích cho ai đó. stackoverflow.com/a/15914470/1158180
paulH

2

Tạo một tệp bó và dán nội dung sau (Nó sẽ chuyển trạng thái Proxy),

@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
Điều này rất giống với câu trả lời của @ sayap.

-3

Tôi hy vọng tôi đang chỉ cho bạn đúng hướng ở đây, nhưng nếu bạn đang cố truy cập cài đặt proxy thông qua "Tùy chọn Internet", chỉ cần mở menu bắt đầu và nhập "tùy chọn internet" (bất kỳ cài đặt hoặc ứng dụng nào bạn cũng có thể tìm thấy theo cách này ví dụ "proxy"). Sau đó, bạn sẽ nhận ra menu này và có thể thêm các cài đặt cần thiết của bạn.


1
anh bạn ... bạn đã không nhìn thấy tiêu đề một cách chính xác ... Tôi biết những gì bạn đang cố nói với tôi. Tôi muốn làm điều đó từ dòng lệnh.
ngạnh

Xin lỗi người đàn ông, có vẻ như bạn thân đã sửa chữa tất cả các bạn
Luke Russell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.