返回顶部
首页 > 资讯 > 精选 >怎么用vbs检测Internet Explorer 中是否启用了ActiveX
  • 518
分享到

怎么用vbs检测Internet Explorer 中是否启用了ActiveX

2023-06-08 13:06:42 518人浏览 八月长安
摘要

这篇文章主要介绍了怎么用vbs检测Internet Explorer 中是否启用了ActiveX,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问:如何知道 Internet

这篇文章主要介绍了怎么用vbs检测Internet Explorer 中是否启用了ActiveX,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

问:

如何知道 Internet Explorer 中是否启用了 ActiveX?

答:

一定要问这个问题,是吗?实际上,这并不是一个特别难回答的问题,只是有点复杂。不过,那与配置 Internet Explorer 的方式紧密相关,而与通过编写一个脚本来检索此信息关系不大。

首先,Internet Explorer 没有管理对象模型;相反,我们能够通过编程的方式检索 Internet Explorer 设置和属性值的唯一方法就是通过编写一个脚本来从注册表中获取此信息。这相当容易;我们经常在本专栏中使用注册表读取的脚本。最为棘手的部分就是搞清楚需要读取哪个注册表值,并知道如何解释返回的数据。

注意:另一个棘手的部分在于知道您对哪个 ActiveX 设置感兴趣;不论好坏,Internet Explorer 有与 ActiveX 控件相关的多个设置。在今天的专栏中,我们假定您要读取此设置的值:运行 ActiveX 控件和插件

让我们先从搞清楚需要修改哪些注册表值开始。实际上,Internet Explorer 安全设置没有全局设置;相反,这些设置由 Internet Explorer 区域进行管理。有四个这样的安全区域;区域名及其值如下表所示:

区域名

区域值

Intranet 站点

1

受信任的站点

2

Internet 站点

3

受限制的站点

4

可在注册表的 HKEY_CURRENT_USER\ Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ 部分中找到 Internet Explorer 安全区域的设置;要访问某个特定区域,您需要访问与该区域对应的子项。要确定相应的子项,只需将区域值追加到前面的注册表路径即可。例如,要获取 Internet 站点区域(值 3)的设置,您需要访问以下注册表子项:

HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Internet Settings\Zones\3

您能看到 3 被追加到了末尾处。要访问 Intranet 站点区域(值 1)的设置?没问题:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1

找到正确的注册表子项后,您需要知道要读取哪个注册表值。遗憾的是(至少对于脚本编写者来说),这些注册表值的名称有点含糊;例如,我们感兴趣的名称为 1200。(为什么是这样呢?我们不知道。)如果您对使用脚本来读取/管理 Internet Explorer 设置感兴趣,那么,您可能希望阅读一下 Managing Internet Explorer Enhanced Security Configuration whitepaper(英文)。仅一部分文档会涉及脚本编写,但是,该部分的确将这些含糊的注册表值映射到了用户界面中的相应属性。当然,许多这样的设置都可在 Tweakomatic 中找到。(Tweakomatic 与白皮书不同,它会真正地为您编写脚本。)

那么,我们已准备最终编写一个脚本并真的在此执行一些操作吗?几乎是这样。您需要知道的另一件事就是配置信息作为双字节(数字)值被存储在注册表中。如果您知道 ActiveX 控件被配置为 3 而不是 65536,这会有所帮助吗?可能没有。不过,下表可能有所帮助:

注册表值

用户界面值

0

Enabled

1

Prompt

3

Disabled

65536

Administrator Approved

不,最后一个值并非印刷错误,它的确 65536。自己去想吧。

那好,现在我们就准备编写一个脚本。下面的这个示例脚本可检索 Intranet 站点区域(区域值 1)的设置信息:

HKEY_CURRENT_USER = &H80000001strComputer = "."Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1"ValueName = "1200"objReg.GetDWordValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValueWscript.Echo "Run ActiveX Controls and Plug-ins"If IsNull(dwValue) Then  Wscript.Echo "Intranet sites: The value is either Null or could not be found in the reGIStry."ElseIf dwValue = 0 Then  Wscript.Echo "Intranet sites: Enabled"ElseIf dwValue = 1 Then  Wscript.Echo "Intranet sites: Prompt"ElseIf dwValue = 3 Then  Wscript.Echo "Intranet sites: Disabled"ElseIf dwValue = 65536 Then  Wscript.Echo "Intranet sites: Administrator Approved"End If

我们首先定义一个名为 HKEY_CURRENT_USER 的常量并将其值设置为 &H80000001;这将告诉脚本我们要使用哪个注册表配置单元。然后我们连接到 WMI 服务;请注意,StdRegProv(标准注册表提供程序)类位于 root\default 命名空间中。(许多脚本编写者都认为该类与大多数 WMI 类一样,都位于 root\cimv2 中。事实并非如此。)

接下来我们将为一对变量赋值:

strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1"ValueName = "1200"

正如您所看到的,变量 strKeyPath 包含 HKEY_CURRENT_USER 中的注册表路径(请勿在该路径中包含 HKEY_CURRENT_USER,否则,脚本将失败)。同时,将变量 ValueName 设置为 1200,该值恰好为我们要读取的注册表值。

然后我们调用 GetDWORDValue 方法,这样我们可读取注册表中的双字节值:

objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValue

请注意,我们需要向 GetDWORDValue 传递几个参数:

HKEY_CURRENT_USER,告诉脚本要使用哪个注册表配置单元的常量。

strKeyPath,包含注册表路径的变量。

ValueName,表示我们要读取的注册表值的变量。

dwValue,将结束存储从注册表中读取的值的“输出参数”。如果您正在想,“请稍等,我们没有为 dwValue 赋值,”您说对了。我们就是这样设计的:我们为输出参数赋值。相反,GetDWORDValue 将读取恰好存储在所讨论的注册表值 (1200) 中的任何值,然后该方法会将该值赋给 dwValue。

确实很不错,不是吗?

此时,我们可只回显从注册表中检索的值。不过,正如我们所指出的那样,该检索值将为诸如 1、3 或 65536 这样的值。因此,我们建立一个简单小巧的 If Then ElseIf 块以检查返回值,并回显一个更有意义的消息:

If IsNull(dwValue) Then  Wscript.Echo "Intranet sites: The value is either Null or could not be found in the registry."ElseIf dwValue = 0 Then  Wscript.Echo "Intranet sites: Enabled"ElseIf dwValue = 1 Then  Wscript.Echo "Intranet sites: Prompt"ElseIf dwValue = 3 Then  Wscript.Echo "Intranet sites: Disabled"ElseIf dwValue = 65536 Then  Wscript.Echo "Intranet sites: Administrator Approved"End If

您说对了:一旦您知道值存储在注册表中的什么位置以及如何将值存储在注册表中,这就相当容易了。

仅仅为了省去键入(和/或复制与粘贴)之苦,下面的脚本可返回所有四个安全区域的信息:

HKEY_CURRENT_USER = &H80000001strComputer = "."Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1"ValueName = "1200"objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValueWscript.Echo "Run ActiveX Controls and Plugins"If IsNull(dwValue) Then  Wscript.Echo "Intranet sites: The value is either Null or could not be found in the registry."ElseIf dwValue = 0 Then  Wscript.Echo "Intranet sites: Enabled"ElseIf dwValue = 1 Then  Wscript.Echo "Intranet sites: Prompt"ElseIf dwValue = 3 Then  Wscript.Echo "Intranet sites: Disabled"ElseIf dwValue = 65536 Then  Wscript.Echo "Intranet sites: Administrator Approved"End IfstrKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2"ValueName = "1200"objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValueIf IsNull(dwValue) Then  Wscript.Echo "Trusted sites: The value is either Null or could not be found in the registry."ElseIf dwValue = 0 Then  Wscript.Echo "Trusted sites: Enabled"ElseIf dwValue = 1 Then  Wscript.Echo "Trusted sites: Prompt"ElseIf dwValue = 3 Then  Wscript.Echo "Trusted sites: Disabled"ElseIf dwValue = 65536 Then  Wscript.Echo "Trusted sites: Administrator Approved"End IfstrKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3"ValueName = "1200"objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValueIf IsNull(dwValue) Then  Wscript.Echo "Internet sites: The value is either Null or could not be found in the registry."ElseIf dwValue = 0 Then  Wscript.Echo "Internet sites: Enabled"ElseIf dwValue = 1 Then  Wscript.Echo "Internet sites: Prompt"ElseIf dwValue = 3 Then  Wscript.Echo "Internet sites: Disabled"ElseIf dwValue = 65536 Then  Wscript.Echo "Internet sites: Administrator Approved"End IfstrKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\4"ValueName = "1200"objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValueIf IsNull(dwValue) Then  Wscript.Echo "Restricted sites: The value is either Null or could not be found in the registry."ElseIf dwValue = 0 Then  Wscript.Echo "Restricted sites: Enabled"ElseIf dwValue = 1 Then  Wscript.Echo "Restricted sites: Prompt"ElseIf dwValue = 3 Then  Wscript.Echo "Restricted sites: Disabled"ElseIf dwValue = 65536 Then  Wscript.Echo "Restricted sites: Administrator Approved"End If

运行脚本,将返回类似下面内容的输出:

Run ActiveX Controls and PluginsIntranet sites: EnabledTrusted sites: EnabledInternet sites: EnabledRestricted sites: Disabled

在此我们还能再做些什么吗?或许可以;毕竟我们还可配置此注册表值。但那是改天要讨论的内容了。

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么用vbs检测Internet Explorer 中是否启用了ActiveX”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么用vbs检测Internet Explorer 中是否启用了ActiveX

本文链接: https://www.lsjlt.com/news/254236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用vbs检测Internet Explorer 中是否启用了ActiveX
    这篇文章主要介绍了怎么用vbs检测Internet Explorer 中是否启用了ActiveX,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问:如何知道 Internet ...
    99+
    2023-06-08
  • 怎么用vbs实现重新启动Internet Explorer
    本篇内容主要讲解“怎么用vbs实现重新启动Internet Explorer”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用vbs实现重新启动Internet Explorer”吧!复制代码...
    99+
    2023-06-08
  • 怎么在vbs中使用Internet Explorer 屏蔽密码
    怎么在vbs中使用Internet Explorer 屏蔽密码?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Set objExplorer = W...
    99+
    2023-06-08
  • 怎么用VBS检测Guest状态
    这篇文章主要介绍“怎么用VBS检测Guest状态”,在日常操作中,相信很多人在怎么用VBS检测Guest状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用VBS检测Guest状态”的疑惑有所帮助!接下来...
    99+
    2023-06-08
  • 怎么用vbs实现自动检查代理是否可用
    本篇内容介绍了“怎么用vbs实现自动检查代理是否可用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将下面代码中的地址改一下,存为ieprox...
    99+
    2023-06-08
  • linux怎么检测远程主机端口是否开启
    在Linux系统中,可以使用以下方法来检测远程主机端口是否开启: 使用telnet命令:telnet是一个常用的网络工具,可以用来...
    99+
    2024-03-12
    linux
  • php怎么检测数组中是否有空值
    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在php中,可以利用array_filter()、count()函数和“==”运算符来检测数组中是否有空值。实现步骤:步骤1:利用array_filter()...
    99+
    2024-04-02
  • 使用python怎么检测给定路径是否存在
    本篇文章为大家展示了使用python怎么检测给定路径是否存在,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本...
    99+
    2023-06-14
  • php怎么检测数组中是否有指定值
    3种方法:1、用foreach语句和“==”运算符,语法“foreach($arr as $v){if($v==指定值){//存在}}”。2、用in_array(),语法“in_array("指定值",数组)”,返回TR...
    99+
    2024-04-02
  • PHP中怎么检测url是否被百度收录
    PHP中怎么检测url是否被百度收录,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 public function c...
    99+
    2024-04-02
  • php怎么检测键名是否位于数组中
    本篇内容介绍了“php怎么检测键名是否位于数组中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先来看看如何检测键名是否位于数组中?其实很简...
    99+
    2023-06-20
  • Linux中怎么快速检测网站是否宕机
    在Linux中可以使用以下几种方法快速检测网站是否宕机: 使用ping命令:在终端中输入ping ,如果能够成功接收到响应,说明...
    99+
    2023-10-21
    Linux
  • Shell中怎么检测进程是否正在运行
    今天就跟大家聊聊有关Shell中怎么检测进程是否正在运行,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码如下:#!/bin/bashps_out=`ps -ef | grep $1...
    99+
    2023-06-09
  • 怎么使用yum命令检查是否安装了PHP7
    今天小编给大家分享一下怎么使用yum命令检查是否安装了PHP7的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,我们需要打...
    99+
    2023-07-05
  • 怎么用VBS检测U盘插入与弹出事件
    这篇文章主要介绍怎么用VBS检测U盘插入与弹出事件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!可以说,对WMI的掌握程度的多少直接决定了你的VBS水平高低。看过网上普遍流传VBS版U盘小偷程序,基本上都是靠无限循环...
    99+
    2023-06-08
  • php怎么检测数组中是否包含某字符串
    两种检测方法:1、使用in_array函数检测,可以查找数组中是否包含指定类型的值,语法“in_array('字符串',数组,true)”,如果返回值为TRUE则包含,反之则不包含。2、使用array_search()函数检...
    99+
    2022-08-08
    php数组 php
  • Linux系统中怎么检查是否适合使用
    这篇文章给大家介绍Linux系统中怎么检查是否适合使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么时候更换系统?当有充分的理由时,将系统切换到 Linux 系统是很有意义的。这对 Windows 用户将系统更换到...
    99+
    2023-06-16
  • linux中怎么用shell检查文件是否存在
    在Linux中,您可以使用shell脚本来检查文件是否存在。以下是使用Shell脚本检查文件存在的示例代码: #!/bin/bash...
    99+
    2023-10-26
    linux shell
  • php怎么检测字符串中是否包含指定字符
    两种检测方法:1、利用strpos()检测指定字符在字符串中第一次出现的位置,语法“strpos(字符串,字符,开始位置)”,如果返回代表位置的数字则表示包含,如果返回FALSE则表示不包含。2、利用strrpos()检测指定字符在字符串中...
    99+
    2022-07-04
    php
  • php怎么检测数组中是否有符合条件的值
    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在php中,可以使用array_filter()和count()函数来检测数组中是否有符合条件的值检测步骤:步骤1:自定义一个回调函数用于设置处理数组元素的条...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作