windows-nt/Source/XPSP1/NT/admin/activec/test/script/extensions.vbs
2020-09-26 16:20:57 +08:00

198 lines
5.5 KiB
Plaintext

'********************************************************************
'*
'* File: ExtensionsTest.VBS
'* Created: March 2000
'*
'* Main Function: Adds snapins, enumerates extensions, enables
'* disables the extension snapins.
'* Usage: ExtensionTest.VBS
'*
'* Copyright (C) 2000 Microsoft Corporation
'*
'********************************************************************
OPTION EXPLICIT
'Define constants
'Declare variables
Dim mmc
Dim doc
Dim snapins
Dim Services
Dim ServicesExtensions
Dim ServicesExtension
Dim Compmgmt
Dim CompmgmtExtensions
Dim CompmgmtExtension
Dim message
Dim intRet
'get the various objects we'll need
Set mmc = wscript.CreateObject("MMC20.Application")
Set doc = mmc.Document
Set snapins = doc.snapins
'add services & compmgmt snapins
Set Services = snapins.Add("{58221c66-ea27-11cf-adcf-00aa00a80033}") ' Services snapin
Set Compmgmt = snapins.Add("{58221C67-EA27-11CF-ADCF-00AA00A80033}") ' Compmgmt snapin
EnumerateExtensions(Services)
EnumerateExtensions(Compmgmt)
DisableAnExtension Services, "Send"
Services.EnableAllExtensions(1)
message = "Please verify all extensions of " & Services.Name & "are enabled."
intRet = MsgBox(message, vbInformation, "Verify test")
' Now remove Services & try to disable the extension
RemoveSnapinAndEnableExtension Services, "Send"
Set mmc = Nothing
'********************************************************************
'*
'* Sub Welcome
'*
'********************************************************************
Sub Welcome()
Dim intDoIt
intDoIt = MsgBox(L_Welcome_MsgBox_Message_Text, _
vbOKCancel + vbInformation, _
L_Welcome_MsgBox_Title_Text )
If intDoIt = vbCancel Then
WScript.Quit
End If
End Sub
'********************************************************************
'*
'* Sub EnumerateExtensions(objSnapin)
'* Purpose: Enumberates the extensions of the given snapin.
'* Input: objSnapin given snapin.
'*
'* Output: Results of the enumeration are either printed on screen or saved in strOutputFile.
'*
'********************************************************************
Sub EnumerateExtensions(objSnapin)
ON ERROR RESUME NEXT
Dim Extensions
Dim Extension
Dim SnapinName
Dim ExtensionNames
Dim count
Dim OtherData
Set Extensions = objSnapin.Extensions
count = Extensions.Count
If count > 0 Then
SnapinName = objSnapin.Name
OtherData = "Vendor : " + objSnapin.Vendor
OtherData = OtherData + ", Version : " + objSnapin.Version
OtherData = OtherData + ", CLSID : " + objSnapin.SnapinCLSID
intRet = MsgBox(OtherData, vbInformation, "About Information for " & SnapinName)
For Each Extension in Extensions
ExtensionNames = ExtensionNames + Extension.Name
ExtensionNames = ExtensionNames + ","
EnumerateExtensions(Extension)
Next
ExtensionNames = ExtensionNames + "."
intRet = MsgBox(ExtensionNames, vbInformation, "Extensions for " & SnapinName)
End If
End Sub
'********************************************************************
'*
'* Function FindExtension(objSnapin,strExtension)
'* Purpose: Finds an extension for given primary snapin with given name.
'* Input: objSnapin given snapin.
'* strExtension given extension name.
'*
'* Output: returns true if extension exists. objExtension carries the returned object.
'*
'********************************************************************
Function FindExtension(objSnapin, strExtension, objExtension)
Dim Extensions
Dim Extension
Set Extensions = objSnapin.Extensions
For Each objExtension in Extensions
If InStr(objExtension.Name, strExtension) Then
FindExtension = true
Exit Function
End If
Next
FindExtension = false
End Function
'********************************************************************
'*
'* Sub DisableAnExtension(objSnapin, strExtensionName)
'* Purpose: Disables and extension of objSnapin with given name.
'* Input: objSnapin given snapin.
'*
'* Output: Verify if the snapis is disabled.
'*
'********************************************************************
Sub DisableAnExtension(objSnapin, strExtensionName)
Dim Extension
If FindExtension(objSnapin, strExtensionName, Extension) Then
ObjSnapin.EnableAllExtensions(0)
Extension.Enable(0)
message = "Please verify disabling of " & Extension.Name & " extension of " & objSnapin.Name & "."
intRet = MsgBox(message, vbInformation, "Verify test")
Else
message = "Extension for " & objSnapin.Name & " with name " & strExtensionName & " does not exist."
intRet = MsgBox(message, vbInformation, "Verify test")
End If
End Sub
'********************************************************************
'*
'* Sub RemoveSnapinAndEnableExtension(objSnapin, strExtensionName)
'* Purpose: Finds the extension with given name, removes primary &
'* accesses extension. This will fail as primary is gone.
'* Input: objSnapin given snapin.
'*
'* Output: Verify error message is returned on enabling.
'*
'********************************************************************
Sub RemoveSnapinAndEnableExtension(objSnapin, strExtensionName)
ON ERROR RESUME NEXT
Dim Extension
If FindExtension(objSnapin, strExtensionName, Extension) Then
snapins.Remove objSnapin
Extension.Enable(1)
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.clear
Else
message = "Extension for " & objSnapin.Name & " with name " & strExtensionName & " does not exist."
intRet = MsgBox(message, vbInformation, "Verify test")
End If
End Sub