Dim Def,Wshsell,FN,fso,Report,SysF,SS const HKEY_CLASSES_ROOT = &H80000000 Set fso = Wscript.CreateObject("Scripting.FilesystemObject") Set Wshshell = Wscript.CreateObject("Wscript.Shell") Wshshell.Run "regedit /e /a Report.txt" & " " & "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",, True Set Report = fso.OpenTextFile("Report.txt",8 , true) Report.WriteLine "-----------------" strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") strKeyPath = "*\shellex\ContextMenuHandlers" oReg.EnumKey HKEY_CLASSES_ROOT, strKeyPath, arrSubKeys For Each subkey In arrSubKeys On error Resume Next Err.Clear Def = Wshshell.RegRead ("HKCR\" & strKeyPath & "\" & subkey & "\") On Error Resume Next FN = Wshshell.RegRead("HKCR\CLSID\" & Def & "\InprocServer32\") If not FN Then FN = Wshshell.RegRead("HKCR\CLSID\" & subkey & "\InprocServer32\") End IF FN = WshShell.ExpandEnvironmentStrings(FN) Msg = Msg & vbcrlf & "Subkey --- " & subkey & vbcrlf & Def & vbcrlf & FN & vbcrlf Err.Clear Def = "" FN = "" Next Report.WriteLine "HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers" Report.WriteLine Report.Write Msg '--------------------- Dim Mess Report.WriteLine Report.WriteLine "=====================" Report.WriteLine strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") strKeyPath = "Folder\shellex\ColumnHandlers" oReg.EnumKey HKEY_CLASSES_ROOT, strKeyPath, arrSubKeys For Each subkey In arrSubKeys On error Resume Next Err.Clear On Error Resume Next FN = Wshshell.RegRead("HKCR\CLSID\" & subkey & "\InprocServer32\") FN = WshShell.ExpandEnvironmentStrings(FN) Mess = Mess & vbcrlf & "Subkey --- " & subkey & vbcrlf & FN & vbcrlf Err.Clear FN = "" Next Report.WriteLine "HKEY_CLASSES_ROOT\Folder\shellex\ColumnHandlers" Report.WriteLine Report.Write Mess Report.Writeline Report.WriteLine "==============================" Dim SU ,s ,f,f1, C SU = Wshshell.SpecialFolders("AllUsersStartup") Report.WriteLine SU Set f = fso.getFolder(SU) Set fc = f.files For Each f1 in fc Set C = fso.GetFile(f1) s = s & C.name & vbcrlf Next Report.Writeline Report.Write s '----------------------------- Report.Writeline "==============================" SU = Wshshell.SpecialFolders("Startup") Report.WriteLine SU Set f = fso.getFolder(SU) Set fc = f.files For Each f1 in fc Set C = fso.GetFile(f1) s = s & C.name & vbcrlf Next Report.Writeline Report.Write s '----------------------------- Report.Writeline "==============================" dim Q, cpl, Sys ,Maker Sys = fso.GetSpecialFolder(1) Report.Writeline Sys & " cpl files" Report.Writeline set f = Fso.getFolder(Sys) set fc =f.files for each f1 in fc IF LCASE(Right(fso.GetFileName(f1),4)) = ".cpl" Then Q = f1.path Q = Replace (Q, "\", "\\") Set cpl = GetObject("winmgmts:root\cimv2").Get _ ("CIM_DataFile.Name=""" & Q & """") Maker = cpl.Manufacturer Q = Replace (Q, "\\", "\") On error resume next Report.write vbcrlf & f1.name & Space(30 - len(f1.name)) & Maker Err.Clear End IF Next Report.close WshShell.run "Notepad Report.txt" Set fso = Nothing Set Maker = Nothing Set Report = Nothing Set cpl = Nothing Set f = Nothing Set fc = Nothing Set C = Nothing Set oReg = Nothing Set Wshshell = Nothing