调用WScript.Shell时产生Automation 服务器不能创建对象的错误

我们经常需要通过生成ActiveXObject("WScript.Shell");来调某一exe文件,

//设置网页打印的页眉页脚为空   

var HKEY_Root,HKEY_Path,HKEY_Key;    
     HKEY_Root="HKEY_CURRENT_USER";    
     HKEY_Path="//software//Microsoft//Internet Explorer\PageSetup\"; 
     function PageSetup_Null()   
      {    
        try {    
                var Wsh=new ActiveXObject("WScript.Shell");    
        HKEY_Key="header";    
        Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");    
        HKEY_Key="footer";    
        Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");    
        }  catch(e)
        {
        alert("Error:"+e.message+"。");
        }    
      }

//调用计算器

     var   wshShell   =   new   ActiveXObject("WScript.Shell");   
     wshShell.run("calc.exe");   

但是经常会报“automation服务器不能创建对象”的错误 
以下是解决方案

1、如果是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了, 
开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll即可

2、安全模式设置成“中”,如果javascript脚本中报这个错误, 
还应将IE的安全设置“不允许运行未标记为安全的activeX控件”启用即可。

注意如果您将相应的网站设成“受信任的站点”, 
必须对“受信任的站点”进行相应的IE安全设置,此时如果对“Internet”IE设置将是徒劳的。

3、有些脚本需要微软的 MSXML 控件才能进入。 
当使用 IE 5 以上版本的缺省安全模式时,会提示是否接受 MSXML 控件, 
如果接受,MSXML 将自动安装到您的机器上(得等上几分钟)。 
如果自动安装不成功,可以自行下载和安装 MSXML 3.0 SP7。 
有时是由于msxml 3服务被关掉了,使用regsvr32 msxml3.dll即可

原文地址:https://www.cnblogs.com/zjoch/p/5075516.html