|

本帖最后由 jingyi11023995 于 2024-3-27 15:34 编辑
目前能找到的设置IP地址的方法是CMD或者VBS的方式,wmi的没有,经过多天努力和尝试,终于得到正确代码,希望能帮到大家。
.版本 2
.程序集变量 DescriptionArr, 文本型, , "0"
.程序集变量 PhysicalAdapterArr, 文本型, , "0"
’使用示例:
wmi_枚举网卡描述和是否物理网卡 (DescriptionArr, PhysicalAdapterArr)‘先执行这个,获取到相关信息数组
根据网卡描述找到Index (“TP-LINK Wireless USB Adapter”)'测试
wmi_修改IP地址和网关和子网掩码和DNS (“TP-LINK Wireless USB Adapter”, { “192.168.0.138” }, { “255.255.255.0” }, { “192.168.0.1” }, { “202.96.128.86”, “202.96.128.166” })测试
wmi_IP设置为自动获取 (“TP-LINK Wireless USB Adapter”)测试
wmi_DNS设置为自动获取 (“TP-LINK Wireless USB Adapter”)测试
文本_是否IP格式()'精易没有这个,建议也加入
|
wmi_枚举网卡描述和是否物理网卡 | 整数型 | | |
网卡描述数组 | 文本型 | | | | 是否物理网卡数组 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | objWbemLocator | 对象 | | | objWMIService | 对象 | | | colClasses | 对象 | | | Properties | 对象 | | | NewEnum | 对象 | | | objClass | 对象 | | | hreslut | 整数型 | | | Variant | 变体型 | | | pcFetched | 整数型 | | | value | 文本型 | | | 重定义数组 (网卡描述数组, 假, 0 )重定义数组 (是否物理网卡数组, 假, 0 ) 如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, ))  objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “root\CIMV2”, , , , , , )  如果真 (objWMIService. 是否为空 () = 假)  colClasses = objWMIService. 对象型方法 (“ExecQuery”, “SELECT * FROM Win32_NetworkAdapter”)  如果真 (colClasses. 是否为空 () = 假)   NewEnum = colClasses. 对象型方法 (“_NewEnum”, )   如果真 (NewEnum. 是否为空 () = 假)    循环判断首 ()     hreslut = IEnumVARIANT_Next (取对象指针 (NewEnum ), 1, 取变体型指针 (Variant ), pcFetched )     如果真 (hreslut = 0 )      objClass = Variant. 取对象 ()      Properties = objClass. 读对象型属性 (“Properties_”, )      value = Properties. 对象型方法 (“Item”, “Description”). 读文本属性 (“value”, )          加入成员 (网卡描述数组, value )      value = Properties. 对象型方法 (“Item”, “PhysicalAdapter”). 读文本属性 (“value”, )          加入成员 (是否物理网卡数组, value )      objClass. 清除 ()      Variant. 清除 ()    处理事件 ()    循环判断尾 (pcFetched = 1 )    NewEnum. 清除 ()  colClasses.清除 () objWMIService.清除 () objWbemLocator.清除 () 调试输出 (网卡描述数组, 是否物理网卡数组 )返回 (取数组成员数 (网卡描述数组 ))
|
wmi_修改IP地址和网关和子网掩码和DNS | 文本型 | | |
Description | 文本型 | | | | IPAddress | 文本型 | | | | SubnetMask | 文本型 | | | | Gateways | 文本型 | | | | DNS | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | objWbemLocator | 对象 | | | objWMIService | 对象 | | | objShare | 对象 | | | objInParam网址 | 对象 | | | objInParam网关 | 对象 | | | objInParamDNS | 对象 | | | objOutParams | 对象 | | | var | 变体型 | | | bool | 逻辑型 | | | 变体 | 变体型 | | | index | 整数型 | | | 判断 (文本_是否IP格式 (IPAddress [1 ]) = 假) 返回 (“输入IP有误,正确示例:192.168.1.138”)  判断 (文本_是否IP格式 (SubnetMask [1 ]) = 假)返回 (“输入掩码有误,正确示例:255.255.255.0”)   判断 (文本_是否IP格式 (Gateways [1 ]) = 假)返回 (“输入网关有误,正确示例:192.168.1.1”)    判断 (文本_是否IP格式 (DNS [1 ]) = 假 或 文本_是否IP格式 (DNS [2 ]) = 假) 返回 (“输入DNS有误,正确示例:{ ” + #引号 + “202.96.128.86” + #引号 + “, ” + #引号 + “202.96.128.166” + #引号 + “ }” + #引号 )   index = 根据网卡描述找到Index (Description ) 如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, ))  objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “\root\CIMV2”, , , , , , )  如果真 (objWMIService. 是否为空 () = 假)  objShare = objWMIService. 对象型方法 (“Get”, “Win32_NetworkAdapterConfiguration.Index='” + 到文本 (index ) + “'”)  如果真 (objShare. 是否为空 () = 假)   objInParam网址 = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “EnableStatic”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )       变体. 赋值 (IPAddress, )    bool = objInParam网址. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “IPAddress”). 写属性 (“value”, 变体 )  调试输出 (objInParam网址. 取错误 (), bool )   变体. 赋值 (SubnetMask, )    bool = objInParam网址. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “SubnetMask”). 写属性 (“value”, 变体 )  调试输出 (objInParam网址. 取错误 (), bool )     objOutParams = objShare. 对象型方法 (“ExecMethod_”, “EnableStatic”, objInParam网址 )   如果真 (objOutParams. 是否为空 () = 假)    var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )   调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ())        objOutParams. 清除 ()         objInParam网关 = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “SetGateways”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )   变体. 赋值 (Gateways, )    bool = objInParam网关. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “DefaultIPGateway”). 写属性 (“value”, 变体 )  调试输出 (objInParam网关. 取错误 (), bool )   objOutParams = objShare. 对象型方法 (“ExecMethod_”, “SetGateways”, objInParam网关 )     objOutParams = objShare. 对象型方法 (“ExecMethod_”, “EnableStatic”, objInParam网址 )   如果真 (objOutParams. 是否为空 () = 假)    var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )   调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ())        objOutParams. 清除 ()         objInParamDNS = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “SetDNSServerSearchOrder”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )   变体. 赋值 (DNS, )   bool = objInParamDNS. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “DNSServerSearchOrder”). 写属性 (“value”, 变体 )  调试输出 (objInParamDNS. 取错误 (), bool )     objOutParams = objShare. 对象型方法 (“ExecMethod_”, “SetDNSServerSearchOrder”, objInParamDNS )   如果真 (objOutParams. 是否为空 () = 假)    var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )   调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ())        objOutParams. 清除 ()       objShare. 清除 () objWMIService.清除 () objWbemLocator.清除 () 返回 (“”)
|
wmi_IP设置为自动获取 | | | |
Description | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | objWbemLocator | 对象 | | | objWMIService | 对象 | | | objShare | 对象 | | | objInParam | 对象 | | | objOutParams | 对象 | | | var | 变体型 | | | index | 整数型 | | |
index = 根据网卡描述找到Index (Description ) 如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, ))  objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “\root\CIMV2”, , , , , , )  如果真 (objWMIService. 是否为空 () = 假)  objShare = objWMIService. 对象型方法 (“Get”, “Win32_NetworkAdapterConfiguration.Index='” + 到文本 (index ) + “'”)  如果真 (objShare. 是否为空 () = 假)   objInParam = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “EnableDHCP”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )       objOutParams = objShare. 对象型方法 (“ExecMethod_”, “EnableDHCP”, objInParam )   如果真 (objOutParams. 是否为空 () = 假)    var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )   调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ())        objOutParams. 清除 ()  objShare.清除 () objWMIService.清除 () objWbemLocator.清除 ()
|
wmi_DNS设置为自动获取 | | | |
Description | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | index | 整数型 | | | objWbemLocator | 对象 | | | objWMIService | 对象 | | | objShare | 对象 | | | objInParam | 对象 | | | objOutParams | 对象 | | | var | 变体型 | | |
index = 根据网卡描述找到Index (Description ) 如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, ))  objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “\root\CIMV2”, , , , , , )  如果真 (objWMIService. 是否为空 () = 假)  objShare = objWMIService. 对象型方法 (“Get”, “Win32_NetworkAdapterConfiguration.Index='” + 到文本 (index ) + “'”)  如果真 (objShare. 是否为空 () = 假)   objInParam = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “SetDNSServerSearchOrder”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )       objOutParams = objShare. 对象型方法 (“ExecMethod_”, “SetDNSServerSearchOrder”, objInParam )   如果真 (objOutParams. 是否为空 () = 假)    var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )   调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ())     objOutParams. 清除 ()  objShare.清除 () objWMIService.清除 () objWbemLocator.清除 ()
arr = 分割文本 (ip, “.”, ) 判断 (取数组成员数 (arr ) ≠ 4 ) 返回 (假)   计次循环首 (4, i ) 判断 (文本_是否为数字 (arr [i ]) = 假 或 到整数 (arr [i ]) < 0 或 到整数 (arr [i ]) > 255 ) 返回 (假)      计次循环尾 ()返回 (真)
|
|