问:

请问这段vbs代码在如图所示系统中运行为什么会出现错误?正确的代码具体是什么,该怎么改?

答:
根据图片显示,这段VBS代码在Windows Server 2008系统中运行时报错:“ActiveX 组件无法创建对象”。
这个是因为在Windows Server 2008 中默认关闭了ActiveX运行环境。VBS脚本需要ActiveX来运行某些命令和组件,所以会出现这个错误。
要修正这个错误,有以下两种方案:
1. 启用ActiveX运行环境:
可以打开“服务器管理器”->“角色”->“添加角色”,选择“应用程序服务器”角色,在其“角色服务”下启用“COM+网络访问”和“Windows执行过程激活服务”。启用后需要重启服务器,VBS脚本就可以正常运行了。
2. 使用WSH代替ActiveX:
可以修改VBS代码使用Windows Script Host对象模型代替ActiveX。比如原代码使用的CreateObject可以改为使用WScript.CreateObject。
例如:
原代码:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "notepad"
修改后:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "notepad"
WScript对象可以在没有ActiveX的环境下执行命令和脚本,所以修改后VBS代码可以在Windows Server 2008正常运行。
除此之外,还需要注意VBS脚本的执行权限问题。在Windows Server 2008下,需要确保:
1) VBS脚本文件Integrity级别为“低”(低于“中”);
2) 执行VBS脚本的账号有“允许运行脚本”的用户权限; 
3) 执行VBS脚本的账号为“管理员”组成员。
只要确保以上三点,修改后的VBS脚本就可以在Windows Server 2008环境下正确执行。
综上,要修正原VBS代码的错误,主要是 two 个方面:1)启用ActiveX环境或使用WScript对象;2)检查VBS脚本执行权限。