windows 脚本设定IE属性

Windows脚本简介

Windows脚本可以用来自动化管理计算机的设置。它是基于解释的,可以与windows shell资源进行交互.windows 脚本的下一代是power shell更功能强大更好用。

问题:

开发b/s程序,有时候会遇到由于安全问题要对IE 进行特别的设定。理想的情况是用户对ie比较熟悉,那么只要在帮助中写好说明,按说明设置IE就好了。但是实际的情况是大多是用户即使那么IE设定帮助也无法完成设定。那么,怎么办?让客服人员去帮助用户设定,对于b/s来说。客户群巨大,这样做不现实。如果有简单方法让用户去设定,这个问题也可以解决。比如下载个文件,双击执行,一切搞定。这个时候windows脚本就成了不二之选。

解决方法:

案例:

客户端设定IE的属性:

1.         把某个站点加到可信站点;

2.         对可信站点的未标记为安全activeX执行初始化,并关闭activeX初始化的提示信息

脚本如下:

 

 '----------------------------------------------------------------------------

 'IE 客户端设置脚本

 'write by hbb0b0

 '2009-09-04

 '----------------------------------------------------------------------------

IP="xxx.xxx.xxx.xxx"

    Const HKEY_CURRENT_USER = &H80000001

strComputer = "."

Set StdOut = WScript.StdOut

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!""" &_

strComputer & ""root"default:StdRegProv")

strKeyRanges = "Software""Microsoft""Windows""CurrentVersion""Internet Settings""ZoneMap""Ranges"

oReg.EnumKey HKEY_CURRENT_USER, strKeyRanges, arrSubKeys

    Dim strKeyName

    Dim strValue

hasIP=false

    '检查IP是否已添加到受信站点

For Each subkey In arrSubKeys

    '' StdOut.WriteLine subkey

      strKeyName=strKeyRanges+""""+subkey

      oReg.GetStringValue HKEY_CURRENT_USER,strKeyName,":Range",strValue

    ' StdOut.WriteLine "Name:" & subKey+ " value:" & strValue

      If strValue=IP Then

         hasIP=True

      Exit For

      End If

 

Next

    '如果IP没有添加到可信站点,则添加Ip到可信站点

If hasIP=false Then

 

 rangeName1=strKeyRanges+""""+"Range100"

    '' StdOut.WriteLine "hello" + rangeName1

 oReg.CreateKey HKEY_CURRENT_USER,rangeName1

 rangeName2=":Range"

    '' StdOut.WriteLine "hello" + rangeName2

 oReg.SetStringValue HKEY_CURRENT_USER,rangeName1,rangeName2,IP

 rangeName3="http"

 rangeName3Value=2

    '' StdOut.WriteLine "hello" + rangeName3

 oReg.SetDWORDValue HKEY_CURRENT_USER,rangeName1,rangeName3,rangeName3Value

    ' StdOut.WriteLine "可信站点已添加"+IP

End If

 

    '可信站点的允许不可信的activeX初始化

strKeyActiveX="Software""Microsoft""Windows""CurrentVersion""Internet Settings""Zones""2"

 

    '检查是否已设置了activeX初始化

    Dim str1201Value

hasActiveXInit=False

oReg.GetDWORDValue HKEY_CURRENT_USER,strKeyActiveX,1201,str1201Value

    ' StdOut.WriteLine strKeyActiveX+"""1201 :" +Cstr(str1201Value)

IF str1201Value=0 Then

     hasActiveXInit=True

End If

If hasActiveXInit=False Then

    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyActiveX,1201,0

     oReg.GetDWORDValue HKEY_CURRENT_USER,strKeyActiveX,1201,str1201NewValue

    ' StdOut.WriteLine strKeyActiveX+"""1201(new) :" +Cstr(str1201NewValue)

End If

 

    '设置关闭IE 可信站点的IE 提示

    '检查是否已关闭了activeX提示

    Dim str2201Value

hasActiveXWarning=False

oReg.GetDWORDValue HKEY_CURRENT_USER,strKeyActiveX,2201,str2201Value

    ' StdOut.WriteLine strKeyActiveX+"""2201 :" +Cstr(str2201Value)

IF str2201Value=0 Then

     hasActiveXWarning=True

End If

    '没有关闭activeX提示的话就关闭

If hasActiveXWarning=False Then

    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyActiveX,2201,0

     oReg.GetDWORDValue HKEY_CURRENT_USER,strKeyActiveX,2201,str2201NewValue

    ' StdOut.WriteLine strKeyActiveX+"""2201(new):" +Cstr(str2201NewValue)

End If

注意:

Windows 脚本宿主有两个版本:基于 Windows 的版本 (Wscript.exe),它提供用于设置脚本属性的属性单;另一个是基于命令提示符的版本 (Cscript.exe),它提供用于设置脚本属性的命令行开关。通过在命令提示符下键入 Wscript.exe Cscript.exe 可以运行其中某一个。

如果在Wcript中运行:

        Set StdOut = WScript.StdOut

        StdOut.WriteLine “hello world”

StdOut会报错,它一直为空。它只能在Cscript中被初始化。命令行执行模式下才有控制台输出对象。

原文地址:https://www.cnblogs.com/hbb0b0/p/1560341.html