Listing 1: FileTypes.vbs ' Declare the constants and variables. Const HKLM = &H80000002 strComputer = "." strClasses = "SOFTWARE\Classes" strCommand = "%SystemRoot%\System32\Notepad.exe %1" strExt = "AlwaysShowExt" strFlags = "EditFlags" ' Create a dictionary of file types. Set objDictionary = CreateObject("Scripting.Dictionary") objDictionary.CompareMode = 1 objDictionary.Add "jse", "1" objDictionary.Add "js", "1" objDictionary.Add "hta", "1" objDictionary.Add "shs", "1" objDictionary.Add "shb", "1" objDictionary.Add "vbe", "1" objDictionary.Add "vbs", "1" objDictionary.Add "wsc", "1" objDictionary.Add "sct", "1" objDictionary.Add "wsf", "1" objDictionary.Add "wsh", "1" objDictionary.Add "pdf", "2" objDictionary.Add "fdf", "2" objDictionary.Add "xfdf", "2" objDictionary.Add "lsl", "2" objDictionary.Add "lso", "2" objDictionary.Add "lss", "2" objDictionary.Add "iqy", "2" objDictionary.Add "rqy", "2" objDictionary.Add "xlk", "2" objDictionary.Add "xls", "2" objDictionary.Add "xlt", "2" objDictionary.Add "pot", "2" objDictionary.Add "pps", "2" objDictionary.Add "ppt", "2" objDictionary.Add "doc", "2" objDictionary.Add "dot", "2" objDictionary.Add "wbk", "2" objDictionary.Add "bat", "2" objDictionary.Add "ps", "2" objDictionary.Add "eps", "2" objDictionary.Add "rtf", "2" objDictionary.Add "wch", "2" objDictionary.Add "wcm", "2" objDictionary.Add "vss", "2" objDictionary.Add "vst", "2" objDictionary.Add "vsd", "2" objDictionary.Add "vsw", "2" objDictionary.Add "ad", "2" objDictionary.Add "adp", "2" objDictionary.Add "mdg", "2" objDictionary.Add "mde", "2" objDictionary.Add "dcr", "2" objDictionary.Add "dxr", "2" objDictionary.Add "dir", "2" objDictionary.Add "spl", "2" objDictionary.Add "swf", "2" objDictionary.Add "fls", "2" ' ******* BEGIN CALLOUT A ******* ' Bind to the registry. Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") ' Iterate through the dictionary entries. colFileTypes = objDictionary.Keys For Each StrFileType in colFileTypes FileTypeMgmt Next ' ******* END CALLOUT A ******* ' Modify the registry settings associated with the file type. Sub FileTypeMgmt strFTE = strClasses & "\." & strFileType objReg.GetStringValue HKLM, strFTE, , strValue If IsNull(strValue) = False Then strFT = strClasses & "\" & strValue objReg.SetStringValue HKLM, strFT, strExt, "" objReg.SetDWORDValue HKLM, strFT, strFlags, 0 If objDictionary.Item(strFileType) = 1 Then objReg.SetStringValue HKLM, strFT & "\Shell", , "Edit" objReg.CreateKey HKLM, strFT & "\Shell\Edit" objReg.SetStringValue HKLM, strFT & "\Shell\Edit", , " & Edit" objReg.CreateKey HKLM, strFT & "\Shell\Edit\command" objReg.SetExpandedStringValue HKLM, strFT & _ "\Shell\Edit\command", , strCommand End If End If End Sub