Tôi cần bật/tắt giao diện mạng hoàn toàn từ tập lệnh trong Windows XP. Tôi đang tìm một giải pháp python, nhưng bất kỳ cách chung (ví dụ như WMI, một số dòng lệnh à la netsh, một số cửa sổ gọi) được chào đón và sẽ được điều chỉnh. Cảm ơn.Làm thế nào để bật/tắt giao diện mạng theo lập trình? (Windows XP)
Trả lời
Sử dụng netsh interface bộ Cách sử dụng giao diện [name =] IfName [[quản trị viên =] ENABLED | TÀN TẬT [kết nối =] LIÊN QUAN | ngắt kết nối [newname =] NewName]
Cố gắng bao gồm tất cả mọi thứ bên trong khung ngoài: giao diện netsh interface set name = "thename" admin = disabled connect = ngắt kết nối newname = "thename"
Xem thêm trang này MS KB: http://support.microsoft.com/kb/262265/ Bạn có thể làm theo một trong hai đề nghị của họ. Để tắt bộ điều hợp, bạn sẽ cần phải xác định cách để tham khảo thiết bị phần cứng. Nếu không có nhiều bộ điều hợp có cùng tên trên máy tính, bạn có thể tắt Mô tả cho giao diện (hoặc PCI ID hoạt động tốt). Sau đó, sử dụng devcon (disable | enable). Devcon là một giao diện điều khiển tiện ích cho Trình quản lý Thiết bị.
Công cụ devcon có thể điều khiển NIC chứ không phải trực tiếp giao diện. Đây là phiên bản dòng lệnh của applet Device Manager.
devcon disable (id or portion of name)
devcon enable (id or portion of name)
Dường như nó không hoạt động với giao diện mạng. "devcon bật wifi", trong đó wifi là tên của giao diện không dây trả lời: "Không có thiết bị nào được bật". – tzot
đây là VB.Net
Dim objectQuery As New ObjectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId IS NOT NULL")
Dim searcher As New ManagementObjectSearcher(scope, objectQuery)
Dim os As ManagementObject
Dim moColl As ManagementObjectCollection = searcher.Get()
Dim _list As String = ""
For Each os In moColl
Console.WriteLine(os("NetConnectionId"))
Next os
Điều đó sẽ nhận được tất cả các giao diện trên máy tính của bạn. Sau đó, bạn có thể làm netsh để vô hiệu hóa nó.
netsh interface set interface DISABLED
Tôi đã thử trong quá khứ tất cả các kết hợp mà netsh đề xuất: 'Giao diện thiết lập giao diện netsh [name =] wifi [admin =] DISABLED' với tham số" Tham số không chính xác "hoặc" Một hoặc nhiều thông số cần thiết không chính xác " tin nhắn. – tzot
wmi không hoạt động trên xp –
Tôi dường như không tìm thấy bất kỳ API cơ bản nào để kiểm soát giao diện trên MSDN, ngoài API của RAS, nhưng tôi không nghĩ chúng áp dụng cho kết nối không quay số. Như bạn tự đề xuất, netsh có thể là một tùy chọn, được cho là nó cũng có giao diện lập trình: http://msdn.microsoft.com/en-us/library/ms708353(VS.85).aspx
Nếu bạn muốn là Python tinh khiết, bạn có thể mở một bộ ống để giao tiếp với quá trình netsh.
Bạn có thể cần phải sử dụng WMI. Điều này có thể phục vụ như là một điểm khởi đầu tốt đẹp: http://msdn.microsoft.com/en-us/library/aa394595.aspx
Đó là một điểm khởi đầu tốt thực sự. Tôi đang giải quyết nó. Cảm ơn. – tzot
Cho đến nay tôi đã tìm thấy các giải pháp Python sau:
>>> import wmi; c=wmi.WMI()
>>> o=c.query("select * from Win32_NetworkAdapter where NetConnectionID='wifi'")[0]
>>> o.EnableDevice(1)
(-2147217407,)
được dịch, AFAIU, đến chung WMI lỗi 0x80041001. Có thể là quyền.
Rõ ràng tôi đang chạy này như là một thành viên của nhóm quản trị viên địa phương, và máy tính không phải là một phần của một miền. – tzot
Traceback (cuộc gọi gần đây nhất): Tệp "C: \ Python33 \ lib \ site-packages \ wmi.py", dòng 416, trong __call__ kết quả = self.ole_object.ExecMethod_ (self.method.Name) Tệp "
@HaifengLi: cảm ơn, nhưng tôi không làm Windows nữa, và cả đoạn mã trên không được thử nghiệm trên Python 3 (lưu ý ngày trả lời). – tzot
Tôi đã tìm thấy tập lệnh .VBS này trên internet. Nó có lợi thế mát mẻ của thực sự làm việc trên máy mà tôi không thể có được NETSH để làm việc cho mục đích này.
Const ssfCONTROLS = 3
sConnectionName = "Local Area Connection"
sEnableVerb = "En&able"
sDisableVerb = "Disa&ble"
set shellApp = createobject("shell.application")
set oControlPanel = shellApp.Namespace(ssfCONTROLS)
set oNetConnections = nothing
for each folderitem in oControlPanel.items
if folderitem.name = "Network Connections" then
set oNetConnections = folderitem.getfolder: exit for
end if
next
if oNetConnections is nothing then
msgbox "Couldn't find 'Network Connections' folder"
wscript.quit
end if
set oLanConnection = nothing
for each folderitem in oNetConnections.items
if lcase(folderitem.name) = lcase(sConnectionName) then
set oLanConnection = folderitem: exit for
end if
next
if oLanConnection is nothing then
msgbox "Couldn't find '" & sConnectionName & "' item"
wscript.quit
end if
bEnabled = true
set oEnableVerb = nothing
set oDisableVerb = nothing
s = "Verbs: " & vbcrlf
for each verb in oLanConnection.verbs
s = s & vbcrlf & verb.name
if verb.name = sEnableVerb then
set oEnableVerb = verb
bEnabled = false
end if
if verb.name = sDisableVerb then
set oDisableVerb = verb
end if
next
'debugging displays left just in case...
'
'msgbox s ': wscript.quit
'msgbox "Enabled: " & bEnabled ': wscript.quit
'not sure why, but invokeverb always seemed to work
'for enable but not disable.
'
'saving a reference to the appropriate verb object
'and calling the DoIt method always seems to work.
'
if bEnabled then
' oLanConnection.invokeverb sDisableVerb
oDisableVerb.DoIt
else
' oLanConnection.invokeverb sEnableVerb
oEnableVerb.DoIt
end if
'adjust the sleep duration below as needed...
'
'if you let the oLanConnection go out of scope
'and be destroyed too soon, the action of the verb
'may not take...
'
wscript.sleep 1000
- 1. Lập trình vô hiệu hóa/kích hoạt giao diện mạng
- 2. Đặt lại theo lập trình thời gian Windows XP IDLE
- 3. Làm thế nào để hủy bỏ tắt máy trong Windows (XP | Vista) theo chương trình?
- 4. Làm thế nào để xác định định hướng giao diện iPhone theo lập trình?
- 5. Làm cách nào để tạo giao diện mạng ảo trên Windows?
- 6. Ngôn ngữ lập trình nào được cài đặt trong Windows XP theo mặc định
- 7. Thông báo khi nào giao diện mạng sẵn sàng trên Windows
- 8. Mô phỏng giao diện mạng bằng Python?
- 9. Quản lý giao diện mạng Linux theo mã C
- 10. Lập trình cho giao diện. Làm thế nào để quyết định nơi cần thiết?
- 11. Làm thế nào để lập trình tạo một liên kết tệp hoạt động trong XP, Vista và Windows 7
- 12. Làm thế nào để cài đặt một dịch vụ windows theo lập trình trong C#?
- 13. Làm thế nào để chỉ định một giao diện mạng khi thực hiện các yêu cầu mạng từ Node.js?
- 14. Làm thế nào để theo dõi tệp .lnk theo lập trình
- 15. Tạo giao diện mạng ảo trong Linux?
- 16. Đăng ký chương trình Windows với giao thức mailto theo lập trình
- 17. Làm thế nào để tắt/bật mạng, chuyển sang Wifi trong trình giả lập Android?
- 18. Trình giả lập Windows Phone 7 Series có thể được chạy trên Windows XP không?
- 19. Ubuntu, xóa giao diện TAP mạng
- 20. Làm cách nào để tạo một ổ cắm đi đến giao diện mạng SPECIFIC?
- 21. C# khi nào lập trình cho giao diện?
- 22. xCode 4.3 làm thế nào để lập trình truy cập các bảng màu của trình tạo giao diện?
- 23. Lập trình các thống kê mạng cho mỗi quá trình trên Windows?
- 24. Làm thế nào để thiết lập ái lực bộ vi xử lý trên một thực thi trong Windows XP?
- 25. Môi trường lập trình giao diện web để thay thế hệ thống dựa trên Delphi cũ
- 26. Làm thế nào để hiển thị UITableView theo chương trình?
- 27. Làm cách nào để bắt đầu với lập trình giao diện phần cứng?
- 28. Tôi làm cách nào để truy cập Lịch sử Tệp Windows 8 theo cách lập trình?
- 29. Làm cách nào để in UTF-8 từ ứng dụng giao diện C++ trên Windows
Bao gồm tất cả các tùy chọn tạo ra thông báo sau: "Giao diện chuyên dụng không thể kết nối, ngắt kết nối, bật hoặc tắt." Nó sẽ hoạt động, nhưng không. Chưa thử nghiệm trên một máy tính khác; Tôi sẽ. Cảm ơn. – tzot
Tôi nhận được cùng một vấn đề lạ. Netsh dường như không hoạt động như dự định, trên hệ thống Windows XP này, tôi đang cố thực hiện điều này. –
bạn đã tìm thấy giải pháp cho lỗi 'giao diện chuyên dụng không thể ...'? – scape