自动安装筛选器vbs脚本

                                                                                自动安装筛选器vbs脚本

'参数:

'1:将筛选器更换为新的dll(MyFilter_new)

'2:与1相反,恢复

'3:加载新的筛选器

'4 :卸载筛选器

 

Err.clear
 On Error Resume Next

    Dim ret,strFilterName,choose,objArgs
 choose =0
 Set objArgs = WScript.Arguments
 If  objArgs.Count >0  Then
     choose =  CInt(objArgs(0))
  wscript.echo choose
 End If

 Dim  WshShell
 Set  WshShell = CreateObject("WScript.Shell")

    If choose<=2 And choose >=1 Then
  WshShell.Run "iisreset /stop" , 0, True
  wscript.echo "stop"
 ElseIf choose<=4 And choose >=3 Then
  ChangeRight("D:/WebHostingAdmin/MyFilter.dll")
 End If

 ret = True
 Select Case True    
  Case choose = 1 : ret =SetNewFilter :wscript.echo "set my filter"
  Case choose = 2 : ret =ReSetFilter  :wscript.echo "reset"
  Case choose = 3 : ret =AddFilter("MyFilter")    :wscript.echo "add filter"
  Case choose = 4 : ret =DelFilter("MyFilter")    :wscript.echo "del filter"
  Case Else : wscript.echo "error input"
 End Select         
 
    If choose<=2 And choose >=1 Then
  ChangeRight("D:/WebHostingAdmin/MyFilter.dll")
  WshShell.Run "iisreset /start" , 0, True
  wscript.echo "start"
 End If

 Set WshShell=Nothing

Function SetNewFilter
 Err.clear
 On Error Resume Next
 Dim  fso
 Set  fso = CreateObject("Scripting.FileSystemObject")
 If IsObject(fso)<>True Then
  wscript.echo "CreateObject error"
 End If

 fso.MoveFile "D:/WebHostingAdmin/MyFilter.dll" , "D:/WebHostingAdmin/MyFilter_bak.dll"
 If Err.number <>0 Then
  wscript.echo "MoveFile error"
 else
  wscript.echo "MoveFile"
 End if
 
 fso.MoveFile "D:/WebHostingAdmin/MyFilter_new.dll", "D:/WebHostingAdmin/MyFilter.dll"
 If Err.number <>0 Then
  wscript.echo "copy error"
 Else
  wscript.echo "copy"
 End If

 Set fso=Nothing 
 SetNewFilter = true
End Function


Function ReSetFilter
 Err.clear
 On Error Resume Next
 Dim  fso
 Set  fso = CreateObject("Scripting.FileSystemObject")
 If IsObject(fso)<>True Then
  wscript.echo "CreateObject error"
 End If
 
 fso.MoveFile "D:/WebHostingAdmin/MyFilter.dll" , "D:/WebHostingAdmin/MyFilter_new.dll"
 If Err.number <>0 Then
  wscript.echo "MoveFile error"
 else
  wscript.echo "MoveFile"
 End if

 fso.MoveFile "D:/WebHostingAdmin/MyFilter_bak.dll" , "D:/WebHostingAdmin/MyFilter.dll"
 If Err.number <>0 Then
  wscript.echo "MoveFile error"
 else
  wscript.echo "MoveFile"
 End if

 Set fso=Nothing

 ReSetFilter = true
End Function

'修改文件权限
Function ChangeRight(fldr )
    Err.clear
    On Error Resume Next
    '修改文件权限
    Dim  ret, acls,WshShell
    acls = "cmd /c echo y| cacls " & fldr & " /t /g Administrators:F Everyone:R"

    set WshShell = CreateObject("WScript.Shell")
    ChangeRight= Wshshell.run (acls, 0, True)
    set WshShell = Nothing
 wscript.echo "ChangeRight end"
end Function


Function AddFilter( ByVal strFilterName)
    Dim objFilters,objAddFilter
    Dim strLoadOrder
    Dim strDelName
 Dim intStartFilt

    Err.clear
    On Error Resume Next

    Set objFilters = GetObject("IIS://LocalHost/W3SVC/Filters")
 if IsObject(objFilters) <> true Then 
     wscript.echo "GetObject Filters"
  AddFilter =false
 End if

    strLoadOrder = objFilters.FilterLoadOrder
 wscript.echo strLoadOrder

 wscript.echo "create IIsFilter start"

 Set objAddFilter = objFilters.Create( "IIsFilter", strFilterName )
 if IsObject(objAddFilter) <> true Then
     wscript.echo "create IIsFilter error"
  AddFilter =false
 End If
 wscript.echo "create IIsFilter end" 

 objAddFilter.FilterPath = "D:/WebHostingAdmin/MyFilter.dll"
 objAddFilter.FilterDescription = "MyFilter Filter"
    'objAddFilter.NotifySecurePort = True
    'objAddFilter.NotifyNonSecurePort = True
    'objAddFilter.NotifyLog = True
    'objAddFilter.NotifyEndOfNetSession = true
    objAddFilter.NotifyOrderLow = True
   
 objAddFilter.setinfo
 objFilters.setinfo
 wscript.echo "set property end" 

    If strLoadOrder <> "" Then
       If Right(strLoadOrder, 1) <> "," Then
          strLoadOrder = strLoadOrder & ","
       End If
    End If

 strLoadOrder = strLoadOrder & strFilterName
 wscript.echo strLoadOrder
 objFilters.FilterLoadOrder= strLoadOrder
    objFilters.SetInfo
 
 wscript.echo "set order end" 
    Set objFilters = Nothing
    Set objAddFilter = Nothing

 'reset iis
 Dim  WshShell
 Set  WshShell = CreateObject("WScript.Shell")
 WshShell.Run "iisreset /noforce" , 0, True
 Set WshShell = Nothing

End Function


Function DelFilter ( ByVal strFilterName)
    Dim objFilterProps, objFilters
    Dim strLoadOrder
    Dim intStartFilt
   
 Err.clear
    On Error Resume Next

    Set objFilters = GetObject("IIS://LocalHost/W3SVC/Filters")
 if IsObject(objFilters) <> true Then 
     wscript.echo "GetObject Filters"
  AddFilter =false
 End If
 
    strLoadOrder = objFilters.FilterLoadOrder
 wscript.echo strLoadOrder

    If strLoadOrder <> "" Then
       If Right(strLoadOrder, 1) <> "," Then
          strLoadOrder = strLoadOrder & ","
       End If
       intStartFilt = InStr(strLoadOrder, strFilterName)
       strLoadOrder = Mid(strLoadOrder, 1, intStartFilt - 1) & _
          Mid(strLoadOrder, intStartFilt + Len(strFilterName) + 1, _
             Len(strLoadOrder))
       objFilters.FilterLoadOrder= strLoadOrder
       objFilters.SetInfo
       objFilters.Delete "IIsFilter", strFilterName
    wscript.echo "del filter end"
    objFilters.SetInfo
    End If
 wscript.echo strLoadOrder
 wscript.echo "set order end"
    Set objFilters = Nothing

 'reset iis
 Dim  WshShell
 Set  WshShell = CreateObject("WScript.Shell")
 WshShell.Run "iisreset /noforce" , 0, True
 wscript.echo "restart"
 Set WshShell = Nothing

End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值