结合了WSH和WMI的VBScript脚本放在html文件中怎么提示不能创建对象?GetObject没有问题吧?各位达人进来LOOK.....................

时间:2021-05-10 07:31:16
代码如下(示例),关键在于WMI的GetObject好像没有被识别?
各位看看怎么回事?分不够我再加!
谢了~


================
<HTML>
<HEAD>
<TITLE>测试按钮事件</TITLE>
<SCRIPT Language="VBScript">
<!--
   Function myRegistry()

'创建一个WSH对象
Dim OperationRegistry
'Set OperationRegistry=WScript.CreateObject("WScript.Shell")
Set OperationRegistry = CreateObject("WScript.Shell")

'读注册表RegRead
'object.RegRead(strName)
Dim strIEversion
strIEversion=OperationRegistry.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version")

If StrComp(strIEversion,"6.0.2800.1106") < 0 Then
MsgBox ("对不起,您的IE版本还未升级到6.0.2800.1106,请尽快升级!")
Exit Function
End If

'下面使用WMI语言
Dim strComputer
strComputer = "." '在 WMI 语言中,点代表本地计算机名(当然也可以用WSH从注册表读)。
Dim wbemServices
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")
For Each wbemObject In wbemObjectSet
WScript.Echo "Total Physical Memory (kb):" & wbemObject.TotalPhysicalMemory
Next

   End Function

-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="Form1">
   <INPUT TYPE="Button" NAME="Button1" VALUE="修改IE设置" onclick="myRegistry()">

</FORM>
</BODY>
</HTML>

21 个解决方案

#1


放在网上运行,权限不够吧
在本机就应该可以

#2


不知道哦,好像不能操作注册表吧!

#3


Set objWMIService = GetObject _
        ("winmgmts:\\" & strComputer & "\root\cimv2")
更多信息可以参考
http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey1101.mspx

#4


不行啊,蒋大哥,按照你提供的信息和我上能google到的所有信息都试遍了,没反应,我干脆去掉了wsh的部分,你看看,就最简单的那段都不行,通不过。怎么这样子??

-----------
<HTML>
<HEAD>
<TITLE>测试按钮事件</TITLE>
<SCRIPT Language="VBScript">
<!--
Sub test()


strComputer = "."
'Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")

Set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")

For Each wbemObject In wbemObjectSet
WScript.Echo "Total Physical Memory (kb):" & wbemObject.TotalPhysicalMemory
Next

End Sub
-->
</SCRIPT>

</HEAD>
<BODY>
<FORM NAME="Form1">
   <INPUT TYPE="Button" NAME="Button1" VALUE="ok" onclick="test()">
</FORM>
</BODY>
</HTML>

-----------

非常郁闷啊!

#5


脚本中心的内容我搜了但是始终不得其法。
http://www.51js.com/viewthread.php?tid=11046&sid=k5MB1w7M
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/creating_active_server_pages_for_wmi.asp
http://www.access911.net/72FAB21E10DCEBF3.htm
还有您提供的那个url,可还是不明白,问遍身边所有的朋友,上网问也没结果,呜呜呜

#6


你写的是HTA还是HTM?这两个默认的权限不一样的

#7


蒋兄来ASP抢分??呵呵,好象这次有是MVP吧??

楼主有没有装豪杰??

这个问题我问特种兵的时候他是是这个的原因,我一直还没有试验过,把vbs的解析改回来

#8


无论是hta和htm都用不了,这个是正常的

#9


to 蒋大哥:

我是写的是html呀,我需要借助wsh+wmi 实现一些功能,到时候是要放在 B/S 结构的系统上供用户使用的。
hta目前我来说,还用不上。

to 兔子 :

为什么你说hta用不了呢?我上面的网址链接里明明有可以的代码呀。而且 wmisdk 里asp都能实现为什么html不行?没道理。
我到时候可能会放在jsf里。

#10


因为在我这里,我的hta和htm都不能用wsh,弄得偶很郁闷,所以我问过了特种兵,这么看来你跟我的情况

还不太一样的

#11


老蒋跟偶们有时差的,估计到晚上才上线

#12


如果你不自己写浏览器的话,用IE不太可能在默认安全设置下在页面上运行WMI组件……
参考http://msdn.microsoft.com/workshop/security/szone/overview/overview.asp

#13


我想如果用vb写得,调用webbrowser控件应该就木问题了

#14


WMI 是各什么东西?能讲讲吗?

#15


应该是权限问题。你在VB里写同样的代码可以运行!

#16


我回来了!今天迟了。

第一,我不需要用VB写,我要做的就一件事,用html+vbs或者js的方式来使用wsh+wmi,实现帮助用户做好一系列设置。如果需要的话我直接写脚本已经实现了!但是,我必须用web的方式实现!

第二,我认为还是有办法实现的——虽然我没有实现。如果说wmi涉及安全问题的话,wsh同样存在这个问题。而且在WMISDK里既然有asp的实现示例,同时在网上也看到有人实现过,那么我坚信:办法是有,只是怎么实现的问题。

现在没办法了,我只好用wsh先写一下了。估计这么多位高手都搞不定,这个也不是一时半会能解决的。唉,就是觉得很遗憾。

#17


反正偶在xp+sp2下是没成功过,但2000上就木问题:(

2003偶木用过

#18


突然想起来,兔子大虾,你说 在2000上没问题??
那你的意思是,你成功过了??

收到回个话哈,不需要偶发消息给你吧~~

#19


关注

#20


我的wsh现在是成功的了

不过你的wmi的代码没运行成功,估计是这个对象不存在吧,在机器上

#21


wsh我也能成功啊,说了半天还不是wmmi哦:(

#1


放在网上运行,权限不够吧
在本机就应该可以

#2


不知道哦,好像不能操作注册表吧!

#3


Set objWMIService = GetObject _
        ("winmgmts:\\" & strComputer & "\root\cimv2")
更多信息可以参考
http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey1101.mspx

#4


不行啊,蒋大哥,按照你提供的信息和我上能google到的所有信息都试遍了,没反应,我干脆去掉了wsh的部分,你看看,就最简单的那段都不行,通不过。怎么这样子??

-----------
<HTML>
<HEAD>
<TITLE>测试按钮事件</TITLE>
<SCRIPT Language="VBScript">
<!--
Sub test()


strComputer = "."
'Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")

Set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")

For Each wbemObject In wbemObjectSet
WScript.Echo "Total Physical Memory (kb):" & wbemObject.TotalPhysicalMemory
Next

End Sub
-->
</SCRIPT>

</HEAD>
<BODY>
<FORM NAME="Form1">
   <INPUT TYPE="Button" NAME="Button1" VALUE="ok" onclick="test()">
</FORM>
</BODY>
</HTML>

-----------

非常郁闷啊!

#5


脚本中心的内容我搜了但是始终不得其法。
http://www.51js.com/viewthread.php?tid=11046&sid=k5MB1w7M
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/creating_active_server_pages_for_wmi.asp
http://www.access911.net/72FAB21E10DCEBF3.htm
还有您提供的那个url,可还是不明白,问遍身边所有的朋友,上网问也没结果,呜呜呜

#6


你写的是HTA还是HTM?这两个默认的权限不一样的

#7


蒋兄来ASP抢分??呵呵,好象这次有是MVP吧??

楼主有没有装豪杰??

这个问题我问特种兵的时候他是是这个的原因,我一直还没有试验过,把vbs的解析改回来

#8


无论是hta和htm都用不了,这个是正常的

#9


to 蒋大哥:

我是写的是html呀,我需要借助wsh+wmi 实现一些功能,到时候是要放在 B/S 结构的系统上供用户使用的。
hta目前我来说,还用不上。

to 兔子 :

为什么你说hta用不了呢?我上面的网址链接里明明有可以的代码呀。而且 wmisdk 里asp都能实现为什么html不行?没道理。
我到时候可能会放在jsf里。

#10


因为在我这里,我的hta和htm都不能用wsh,弄得偶很郁闷,所以我问过了特种兵,这么看来你跟我的情况

还不太一样的

#11


老蒋跟偶们有时差的,估计到晚上才上线

#12


如果你不自己写浏览器的话,用IE不太可能在默认安全设置下在页面上运行WMI组件……
参考http://msdn.microsoft.com/workshop/security/szone/overview/overview.asp

#13


我想如果用vb写得,调用webbrowser控件应该就木问题了

#14


WMI 是各什么东西?能讲讲吗?

#15


应该是权限问题。你在VB里写同样的代码可以运行!

#16


我回来了!今天迟了。

第一,我不需要用VB写,我要做的就一件事,用html+vbs或者js的方式来使用wsh+wmi,实现帮助用户做好一系列设置。如果需要的话我直接写脚本已经实现了!但是,我必须用web的方式实现!

第二,我认为还是有办法实现的——虽然我没有实现。如果说wmi涉及安全问题的话,wsh同样存在这个问题。而且在WMISDK里既然有asp的实现示例,同时在网上也看到有人实现过,那么我坚信:办法是有,只是怎么实现的问题。

现在没办法了,我只好用wsh先写一下了。估计这么多位高手都搞不定,这个也不是一时半会能解决的。唉,就是觉得很遗憾。

#17


反正偶在xp+sp2下是没成功过,但2000上就木问题:(

2003偶木用过

#18


突然想起来,兔子大虾,你说 在2000上没问题??
那你的意思是,你成功过了??

收到回个话哈,不需要偶发消息给你吧~~

#19


关注

#20


我的wsh现在是成功的了

不过你的wmi的代码没运行成功,估计是这个对象不存在吧,在机器上

#21


wsh我也能成功啊,说了半天还不是wmmi哦:(