Python通過wmi修改dns,通過windows的執行wbemtest.exe測試wql查詢語句
阿新 • • 發佈:2018-12-02
可以使用 win鍵+R,開啟執行對話方塊,輸入wbemtest.exe測試可查詢wmi物件與wql語句
修改需要【管理員許可權】執行
//外掛
pip install pywin32
pip install wmi
# -*- coding: utf-8 -*- # change windows cmd to utf-8: chcp 65001 # chcp 852 import wmi print 'get ip by using wmi ...' print '查詢並修改dns ...' wmiService = wmi.WMI() print 'All NetWork InterFace:' wql = "SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=True" # netCardAll = wmiService.query(wql) netCardAll = wmiService.Win32_NetworkAdapterConfiguration(IPEnabled=True) if len(netCardAll) < 1: print '沒有找到可用的網路介面卡' exit() for i in xrange(len(netCardAll)): print " Caption:", netCardAll[i].Caption, "Description:", netCardAll[i].Description print 'find one card:' wql = "SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=True and Caption like \"%Realtek%\"" oneNetCard = wmiService.query(wql) if len(oneNetCard) < 1: print '沒有找到可用的網路介面卡' exit() print "Enumerate all properties:" for s in oneNetCard: print list(s.properties) print "NetWork InterFace Info:" for i in xrange(len(oneNetCard)): print str(i+1)+" : ", "IP:", oneNetCard[i].IPAddress[0], "DNS:", oneNetCard[i].DNSServerSearchOrder[0] arrDNSServers = ['223.5.5.5'] returnValue = oneNetCard[0].SetDNSServerSearchOrder(DNSServerSearchOrder=arrDNSServers) intReboot = 0 if returnValue[0] == 0 or returnValue[0] == 1: print '設定DNS成功' intReboot += returnValue[0] else: print str(returnValue)+'修改失敗: DNS設定發生錯誤'
其他類似Win32_NetworkAdapterConfiguration的wmi物件
Win32_Processor // CPU 處理器 Win32_PhysicalMemory // 實體記憶體 Win32_Keyboard // 鍵盤 Win32_PointingDevice // 點輸入裝置,如滑鼠 Win32_DiskDrive // 硬碟驅動器 Win32_CDROMDrive // 光碟驅動器 Win32_BaseBoard // 主機板 Win32_BIOS // BIOS 晶片 Win32_ParallelPort // 並口 Win32_SerialPort // 串列埠 Win32_SoundDevice // 多媒體設定 Win32_USBController // USB 控制器 Win32_NetworkAdapter // 網路介面卡 Win32_NetworkAdapterConfiguration // 網路介面卡設定 Win32_Printer // 印表機 Win32_PrinterConfiguration // 印表機設定 Win32_PrintJob // 印表機任務 Win32_TCPIPPrinterPort // 印表機埠 Win32_POTSModem // MODEM Win32_POTSModemToSerialPort // MODEM 埠 Win32_DesktopMonitor // 顯示器 Win32_VideoController // 顯示卡細節。 Win32_VideoSettings // 顯示卡支援的顯示模式。 Win32_TimeZone // 時區 Win32_SystemDriver // 驅動程式 Win32_DiskPartition // 磁碟分割槽 Win32_LogicalDisk // 邏輯磁碟 Win32_LogicalMemoryConfiguration // 邏輯記憶體配置 Win32_PageFile // 系統頁檔案資訊 Win32_PageFileSetting // 頁檔案設定 Win32_BootConfiguration // 系統啟動配置 Win32_OperatingSystem // 作業系統資訊 Win32_StartupCommand // 系統自動啟動程式 Win32_Service // 系統安裝的服務 Win32_Group // 系統管理組 Win32_GroupUser // 系統組帳號 Win32_UserAccount // 使用者帳號 Win32_Process // 系統程序 Win32_Thread // 系統執行緒 Win32_Share // 共享 Win32_NetworkClient // 已安裝的網路客戶端 Win32_NetworkProtocol // 已安裝的網路協議