没有在该机执行windows脚本宿主的权限的处理办法

上传人:子 文档编号:43034787 上传时间:2018-06-04 格式:DOC 页数:15 大小:23.93KB
返回 下载 相关 举报
没有在该机执行windows脚本宿主的权限的处理办法_第1页
第1页 / 共15页
没有在该机执行windows脚本宿主的权限的处理办法_第2页
第2页 / 共15页
没有在该机执行windows脚本宿主的权限的处理办法_第3页
第3页 / 共15页
没有在该机执行windows脚本宿主的权限的处理办法_第4页
第4页 / 共15页
没有在该机执行windows脚本宿主的权限的处理办法_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《没有在该机执行windows脚本宿主的权限的处理办法》由会员分享,可在线阅读,更多相关《没有在该机执行windows脚本宿主的权限的处理办法(15页珍藏版)》请在金锄头文库上搜索。

1、没有在该机执行没有在该机执行 WindowsWindows 脚本宿主的权限的处理办法脚本宿主的权限的处理办法没有在该机执行 Windows 脚本宿主的权限的处理办法相关搜索: 宿主, 脚本, 权限, Windows, 办法没有在该机执行 windows 脚本宿主的权限。请与系统管理员联系.首先检查系统是否禁止使用了脚本运行,即打开“INTERNET 选项”的“安全”选项卡里“自定义级别” ,看看“ActiveX 控件及服务”禁用的选项。接着运行 regsvr32 scrrun.dll最后关键的一步就是看看注册表里的这个位置HKEY_LOCAL_MACHINESOFTWAREMicrosoftW

2、indows Script HostSettings在右边的窗口中是不是有个名为 Enabled 的 DWORD 键值,有的话把它删除或者把值该为 1 即可正常运行。早些年用过 DOS 系统的用户都知道,MS-DOS 操作系统允许普通用户编写批处理文件来实现简单的编程。它有效地简化了我们的工作,带给我们许多方便。当时甚至出现了一些专门编写批处理文件的程序员呢。 事实上,操作系统除了提供易于操作的使用界面外,还应当有一套内建的 Script(脚本)语言才算完整。从某种角度来说,批处理文件可以说就是 MS-DOS 下的脚本语言。到了 Windows 时代,虽然Windows 系统仍然保留了批处理,

3、但是批处理在 Windows 中就显得功能过于简单,无法满足用户的需要了比如修改注册表,批处理能做得到吗?事实上, Windows 98 之后的 Windows 系统,除了保留原来的批处理系统之外,开始加入了对脚本语言的支持,这就是“Windows Scripting Host” ,中文译名为“Windows 脚本宿主” ,简称 WSH。 WSH 本身并不是脚本语言,它是脚本语言的运行环境,WSH 支持的脚本语言有 JScript(微软版的 JavaScript,与真正 JavaScript不太一样)和 VBScript这个东东大家一定很熟悉啦,网页上常用。 WSH 的脚本引擎(Scripti

4、ng Engine)有两种方式,一种是Command 方式的 CScript.exe,另一种是 Windows 方式的WScript.exe。我们编写的脚本程序(扩展名为“.js”和“.vbs”的纯文本文件)必须通过这两者之一来加载运行。 虽然 WSH 支持 JScript 和 VBScript 语言,但仍然要配合 WSH 本身所提供的一些对象,以及对象的属性(Properties)和方法(Method)才能够发挥最大的效用。关于 JScript 和 VBScript 的程序设计我们这里就不多说了。我们现在还是把注意力放在 WSH 的对象上面。事实上,本文涉及的注册表编程就几乎不需要关于VBS

5、cript 的任何知识,我们只需简单地套用现成的语句就可以了。 WSH 中的对象主要有:WScirpt、WshArguments、WshShell、 WshUrlShortcut、WshNetwork、 WshSpecialFolders、WshCollection、 WshEnvironment、WshShort等。 每一个对象又都有各自的属性和方法。在这里我们仅就访问注册表所涉及的有关对象的方法和属性略做介绍。 首先是 WshShell 对象。该对象可用来设置系统环境变量以及修改注册表的数据。要修改注册表的数据,需要使用 WshShell 对象的三种方法: RegDelete(删除注册表数

6、据) 、RegWrite(写入或新建注册表数据)和 RegRead(读取注册表数据) 。 通常我们只需要用到前两种方法,它们具体的使用方法如下: 一、RegWrite(写入或新建注册表数据) * 新建子主键 语法为:WshShell.RegWrite “子主键名“ 例如,我们想新建一个子主键“HKEY_CURRENT_USERMyReg” ,可使用如下的语句: WshShell.RegWrite “HKCUMyReg“ 说明:子主键名必须以反斜线 () 结束,若不小心忘记输入了这个(),则该方法返回的是键值,即表示你是想在 HKEY_CURRENT_USER下建立了一个名叫 MyReg 的键值

7、了。这一点一定要十分注意! 注意引号里子主键的开头必须是下列根键名之一: HKEY_CURRENT_USER(可简写为 HKCU) 、HKEY_LOCAL_MACHINE (HKLM) 、HKEY_CLASSES_ROOT(HKCR) 、 HKEY_USERS 和HKEY_CURRENT_CONFIG * 在子主键下建立新的键值(或改写已有的键值的数据) 语法为:WshShell.RegWrite “子主键名键值名“,“键值的数据“,“键值的类型“ 例如我们想在子主键“HKEY_CURRENT_USERMyReg” 下新建一个字符串键值 KeyValue,设置键值的数据为“str” ,可使用如

8、下的语句: WshShell.RegWrite “HKCUMyRegKeyValue“, “str“ (注:键值为字符串值,可省去“键值类型“的声明) 若所建的为二进制值或 DWORD 值,数据为“1” ,则还必须声明键值的类型,如下: WshShell.RegWrite “HKCUMyRegKeyValue“,1,“REG_BINARY“ WshShell.RegWrite “HKCUMyRegKeyValue“,1,“REG_DWORD“ 注意二进制值和 DWORD 值的数据不能加引号,而字符串值的数据则必须加引号。 二、RegDelete(删除注册表数据) * 删除一个子主键 语法为:W

9、shShell.RegDelete “子主键名“ 例如,我们想删除子主键“HKEY_CURRENT_USERMyReg” ,可使用如下的语句: WshShell.RegDelete “HKCUMyReg“ * 删除子主键的某个键值 语法为:WshShell.RegDelete “子主键名键值名“ 例如,我们想删除子主键“HKEY_CURRENT_USERMyReg” 的键值 KeyValue,可使用如下的语句: WshShell.RegDelete “HKCUMyRegKeyValue“类似于 RegWrite,有一个“”号表示的是删除子主键,没有“”则表示要删除的是子主键下的键值。 除了 W

10、shShell 对象外,我们还必须了解一下 WScirpt 对象。WScirpt 对象即代表 Scripting Engine,只要启动 Engine 就会自动产生此对象。WScript 对象提供了创建和读取对象的方法。要使用 WSH 的其他对象(例如 WshShell 对象) ,就必须先用 WScript 对象的有关方法(CreateObject、GetObject)来创建和读取。 创建对象的语法如下: WScript.CreateObject(strProgID) 其中 strProgID 就是我们所要创建的对象的标识名。 例如:我们要使用 WshShell 对象及其属性和方法,首先就要用

11、WScript 对象的方法 CreateObject 来创建一个 WshShell 对象,语句如下: Set WSHShell = WScript.CreateObject(“WScript.Shell“) 举一个例子吧。大家都知道,如果你使用了“开始”菜单中的“运行” ,Windows 将在列表框里记录下你“作案” 的痕迹。其实这些数据是记录在注册表中HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionExplorerRunMRU 子键下,我们只要把这个子键删除,然后再重新建立,不就可以了吗? 现在我们可以来编写一个脚本了。以 VB

12、S 为例,我们可以用记事本新建一个文件,然后输入(其中“/”后的文字为注释,不必输入): /定义对象,要编辑注册表,我们需要使用 WSHShell 对象及其方法 Dim WSHShell /对象的方法 CreateObject 来创建 WSHShell 对象 Set WSHShell = WScript.CreateObject(“WScript.Shell“) /然后我们使用 WSHShell 对象的方法 RegDelete 来删除 HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionExplorerRunMRU 子键 WSHShe

13、ll.RegDelete “HKCUSoftwareMicrosoft WindowsCurrentVersionExplorerRunMRU“ /最后我们恢复该主键,并在该主键下恢复字符串值“MRUList” ,设置其数据为空串 WSHShell.RegWrite “HKCUSoftwareMicrosoft WindowsCurrentVersionExplorerRunMRUMRUList“,“ 程序到此结束,我们把文件另存为 CleanMRU.vbs 就可以了。现在我们就可以使用 Scripting Engine 来执行这个程序了。假设我们刚才把这个文件保存在 D:TEMP 里,我们就

14、可以使用“开始”菜单的“运行”Wcript.exe D:TEMPCleanMRU.vbs。重新启动,怎么样?“运行”里已经是空空如也了吧! 如果我们这样费尽心思地编了程序,最后还是得靠手工来运行,那还不如每次直接用注册表编辑器来操作呢!其实我们完全可以让它在每次开机时自动加载。这么一说,大家肯定都知道了我们可以使用注册表编辑器,在“HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRun”子主键下建立一个字符串值 “CleanMRU” ,设置其数据为“Wcript.exe D:TEMPCleanMRU.vbs“。嘿嘿,这样才算大功

15、告成。以后你每次开机,Windows 就会自动执行该脚本以清除 “运行”中的历史记录了。限于篇幅,本文仅仅介绍了 WSH 有关注册表修改部分的对象的初步使用。我们只要在脚本里加上一些简单的语句,就可以很方便地实现交互性的操作当然,这就需要大家掌握更多的关于 WSH和 VBScript 的知识。如果感兴趣的话,大家可以到微软网站下载有关 WSH 和 VBScript 的帮助文档,URL 分别是http:/ scripting/windowshost/wshdoc.exe 和http:/ vbsdoc.exe(都是中文) 。另外,在 Windows 的 Samples 目录下,有一个 WSH 文件夹,那里面有不少.vbs 和.js 例程,大家可以去打开来看看(鼠标右击图标,选择“编辑” ) ,相信一定会有不少收获的。最后,如果你的机器上已经安装了 Windows Scripting Host,而 VBS 程序仍然无法运行的话,很可能是你自己或其他应用程序修改了.VBS 的关联。据笔者所知,几乎每台机器上都装有的“超级解霸”就会修改.VBS 文件的关联。没关系的,你只要从“控制面板”“添加/删除程序”“Windows 安装程序”“附件”“详细资料”里先卸掉,然后再重新装上“Windows Scripting Host”就可以了首先,我的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号