将VBScript从WinXP移植到Win7的问题

时间:2010-02-07 16:47:40

标签: windows-7 vbscript

附加的VBScript显示所有可用的WiFi网络 它在WinXP上工作正常,但在Win7上不起作用。 在WinXP上,它显示了所有可用WiFi网络的列表,但是在WIn7上它显示了一个空列表。 有什么问题?

on error resume next 
set objSWbemServices = GetObject("winmgmts:\\.\root\wmi") 
set colInstances = objSwbemServices.ExecQuery("SELECT * FROM MSNDis_80211_BSSIList") 
for each obj in colInstances 
    if left(obj.InstanceName, 4) <> "WAN " and right(obj.InstanceName, 8)     <> "Miniport" then 
        for each rawssid in obj.Ndis80211BSSIList 
            ssid = "" 
            for i=0 to ubound(rawssid.Ndis80211SSid) 
                decval = rawssid.Ndis80211Ssid(i) 
                if (decval > 31 AND decval < 127) then 
                    ssid = ssid & Chr(decval) 
                end if 
            next 
            wscript.echo ssid 
        next 
    end if 
next

我是VBScript的新手所以请保持温和。

1 个答案:

答案 0 :(得分:3)

[我会评论,但没有足够的代表:P] Visual Studio将允许您调试VBScript,以便您可以确定导致问题的特定行。

导航到包含该脚本的目录,然后运行'wscript .vbs // D // X',然后选择Visual Studio作为调试器。然后,您可以浏览每一行,了解正在发生的事情(source)。

当我执行此脚本(具有正常和提升权限)时,我从查询“SELECT * FROM MSNDis_80211_BSSIList”中收到一个空数组。这可能是问题产生的地方;可能在Windows 7中不推荐使用源代码(MSNDis_80211_BSSIList)并重命名。

谷歌还透露了可能包含WMI新增功能的最新驱动程序(例如英特尔Wifi驱动程序)之间的可能关联。