Miss adjustment feature for services

Hi, I’ve been trying this wonderful software for the first time today.

So far this looks what I have been searching for some time, particularly a program for uninstall old services.

What I could not see was a simple feature (like in Windows) in manage the settings for a service.

Could this be possible to include in future versions please?

Also to have a feature for check which services and drivers that are in use and not would be great as well.

Appreciate this software very much!
Thanks for helping us Comodo

Right after I wrote this post I started a new session of the program once again.
Don’t know for sure what made the failure but after I closed CPM my Windows told me that Windows updates been closed off even I didn’t touched these settings or visit security center in XP Pro Sp3 x86.
Perhaps valuable information to mention if it’s useful.

Thank you for the support,

Could you please be more specific? Are you saying that windows updates were turned off before you started CPM, and after you closed it’s instance they were turned on without your intervention?


Hi Dorin, thanks for your reply.

Not really. You see, direct after I closed CPM I became warned that Windows updates had been turned off in my system. That made me suspicious if this had been done by something in CPM as it has the feature connected with all the services in Windows. And as I also mentioned before, I never touched or made any changes in my installed services before CPM was shut down. It just happened by itself.
After this I had to turn on Windows updates back to normal again manually inside the security center.

About the feature for services settings: hmmmm… let’s see what feature holds for it!:slight_smile:

Sounds terrific!

Looking forward in see this improvement in future versions of CPM :slight_smile:
For instance, Nirsoft ServiWin have this ability so why shouldn’t CPM doesn’t come with this.
Think alot of users might like a feature like this that simplify the task a bit.

Further on regarding the issue I had with Windows Update in the security center and wrote about earlier…
The problem has now repeated itself a couple of more times were my settings for Windows Update become Disabled when closing CPM after a session.

During that time I wrote here earlier, I was using one old copy of Windows XP Professional Sp3 x86 on a machine with only 32bit support. The problem repeated itself also more than this afterwords I wrote my post. Last week I had to reinstall this OS and decided to make a clean install on the same machine.
It’s now updated with all recently updates and today just before I’m writing this lines I decided make a new try with CPM in see if there might be a difference in comparison with the old OS.

Unfortunately, I couldn’t blame on my old OS because the issue is back when run CPM on a new installed copy of Win XP Pro Sp3 x86.

In both cases the failure repeated itself and happened after I closed CPM and shut the software off. Not after every single session but spontaneous approximately between every two or third time I’ve been using it. I receive notification from my system that Windows Updates has been disabled and doesn’t work.
When this occur, I can also see when open the options for Windows Update that it’s been turned Off.
The setting I’m using always is to “ask me before it does anything”.

With other words, it looks like this software enjoy “steal focus” from the system.

  1. Already during the setup the installer do not come with a simple question to allow the user to restart the system after their own will. It just take over and force the restart to come right away without the user gives one single chance in saving their work they doing. Change this please as it’s not userfriendly.

  2. Next compatibility issue I faced when using it is that the GUI doesn’t want to cope with the screen.
    It always starts in “maximized” (even it is set to open in “normal”) window which appear too big for my screen resolution (800-600).
    Because it shows up to big, I can not reach the buttons in make the window smaller to fit.
    Then I have to double click the border in get it back to fit the screen.

  3. But the fun doesn’t stop there. Lets say you wish to switch to another window in the Taskbar which has the auto-hide function active when it’s idle. On my desk I can not call it up and get access to it because CPM steal all the focus.
    In make it work, I have to minimize CPM from the buttons on top of the window to get it down to the Taskbar.

  4. In my copy I can’t see anything inside CPM menu-panel “Windows Updates”, which doesn’t specifies Installed updates. If open the menu-panel for “Programs”, I’m able to find some of my installed updates but only Framework and a few Hotfixes but far away from all.

Perhaps something like this might give any idea, using this script myself on regular basis.

'Copy following in to a simple text-file and name the file InstalledSoftware.vbs (or anything else)
'To run it, just hit it twice.

'InstalledSoftware.vbs - Lists installed software shown in Registry Uninstall key.
'Including installed updates shown in AddRemove Program.
'This script should run on Windows 2000, XP, Vista and Windows 7 as is.
'Windows 9X and NT where WMI and current scripting engine are installed.

'Capability to probe a Remote computer only available on NT to NT type
'Operating Systems, and only if the local computer is logged in with the
'same ID and PassWord as the remoted computer.

'Output is to tab delimited text file which can be imported to newer
'versions of Excel and converted to a handy spreadsheet.

Option Explicit

Dim sTitle
sTitle = "InstalledSoftware.vbs Overview in Detail"
Dim StrComputer
strComputer = InputBox("Enter I.P. or name of computer to check for " & _
                       "installed software (leave blank to check " & _
                       "local system)." & vbcrlf & vbcrlf & "Remote " & _
                       "checking only from NT type OS to NT type OS " & _
                       "with same Admin level UID & PW", sTitle)
If IsEmpty(strComputer) Then WScript.Quit
strComputer = Trim(strComputer)
If strComputer = "" Then strComputer = "."

'Wscript.Echo GetAddRemove(strComputer)

Dim sCompName : sCompName = GetProbedID(StrComputer)

Dim sFileName
sFileName = sCompName & "_" & GetDTFileName() & "_Software.txt"

Dim s : s = GetAddRemove(strComputer)

If WriteFile(s, sFileName) Then
  'optional prompt for display
  If MsgBox("Finished processing.  Results saved to " & sFileName & _
            vbcrlf & vbcrlf & "Do you want to view the results now?", _
            4 + 32, sTitle) = 6 Then
    WScript.CreateObject("WScript.Shell").Run sFileName, 9
  End If
End If

Function GetAddRemove(sComp)
  Dim cnt, oReg, sBaseKey, iRC, aSubKeys
  Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
  Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
              sComp & "/root/default:StdRegProv")
  sBaseKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
  iRC = oReg.EnumKey(HKLM, sBaseKey, aSubKeys)

  Dim sKey, sValue, sTmp, sVersion, sDateValue, sYr, sMth, sDay

  For Each sKey In aSubKeys
    iRC = oReg.GetStringValue(HKLM, sBaseKey & sKey, "DisplayName", sValue)
    If iRC <> 0 Then
      oReg.GetStringValue HKLM, sBaseKey & sKey, "QuietDisplayName", sValue
    End If
    If sValue <> "" Then
      iRC = oReg.GetStringValue(HKLM, sBaseKey & sKey, _
                                "DisplayVersion", sVersion)
      If sVersion <> "" Then
        sValue = sValue & vbTab & "Ver: " & sVersion
        sValue = sValue & vbTab 
      End If
      iRC = oReg.GetStringValue(HKLM, sBaseKey & sKey, _
                                "InstallDate", sDateValue)
      If sDateValue <> "" Then
        sYr =  Left(sDateValue, 4)
        sMth = Mid(sDateValue, 5, 2)
        sDay = Right(sDateValue, 2)
        'some Registry entries have improper date format
        On Error Resume Next 
        sDateValue = DateSerial(sYr, sMth, sDay)
        On Error GoTo 0
        If sdateValue <> "" Then
          sValue = sValue & vbTab & "Installed: " & sDateValue
        End If
      End If
      sTmp = sTmp & sValue & vbcrlf
    cnt = cnt + 1
    End If
  sTmp = BubbleSort(sTmp)
  GetAddRemove = "INSTALLED SOFTWARE (" & cnt & ") - " & sCompName & _
                 " - " & Now() & vbcrlf & vbcrlf & sTmp 
End Function

Function BubbleSort(sTmp)
  'cheapo bubble sort
  Dim aTmp, i, j, temp
  aTmp = Split(sTmp, vbcrlf)  
  For i = UBound(aTmp) - 1 To 0 Step -1
    For j = 0 to i - 1
      If LCase(aTmp(j)) > LCase(aTmp(j+1)) Then
        temp = aTmp(j + 1)
        aTmp(j + 1) = aTmp(j)
        aTmp(j) = temp
      End if
  BubbleSort = Join(aTmp, vbcrlf)
End Function

Function GetProbedID(sComp)
  Dim objWMIService, colItems, objItem
  Set objWMIService = GetObject("winmgmts:\\" & sComp & "\root\cimv2")
  Set colItems = objWMIService.ExecQuery("Select SystemName from " & _
  For Each objItem in colItems
    GetProbedID = objItem.SystemName
End Function

Function GetDTFileName()
  dim sNow, sMth, sDay, sYr, sHr, sMin, sSec
  sNow = Now
  sMth = Right("0" & Month(sNow), 2)
  sDay = Right("0" & Day(sNow), 2)
  sYr = Right("00" & Year(sNow), 4)
  sHr = Right("0" & Hour(sNow), 2)
  sMin = Right("0" & Minute(sNow), 2)
  sSec = Right("0" & Second(sNow), 2)
  GetDTFileName = sMth & sDay & sYr & "_" & sHr & sMin & sSec
End Function

Function WriteFile(sData, sFileName)
  Dim fso, OutFile, bWrite
  bWrite = True
  Set fso = CreateObject("Scripting.FileSystemObject")
  On Error Resume Next
  Set OutFile = fso.OpenTextFile(sFileName, 2, True)
  'Possibly need a prompt to close the file and one recursion attempt.
  If Err = 70 Then
    Wscript.Echo "Could not write to file " & sFileName & ", results " & _
                 "not saved." & vbcrlf & vbcrlf & "This is probably " & _
                 "because the file is already open."
    bWrite = False
  ElseIf Err Then
    WScript.Echo err & vbcrlf & err.description
    bWrite = False
  End If
  On Error GoTo 0
  If bWrite Then
  End If
  Set fso = Nothing
  Set OutFile = Nothing
  WriteFile = bWrite
End Function