Skip to content

Improve and document the way Npcap installer (particluarly silent OEM installer) handles existing installs #523

@fyodor

Description

@fyodor

This is most relevant to Nmap OEM and its silent installer since the free/demo Npcap always runs interactively where it can ask the user what they want to do for a given install. Though our decisions here may touch upon or modify the interactive installer experience a bit too.

First let 's look at the current behavior. When the current Nmap OEM installer runs in silent mode (without other options), it always installs UNLESS a newer version of Npcap OEM is already installed. This means it re-installs if the same version of Npcap OEM is already installed, and it will also "downgrade" itself automatically from a newer version of non-OEM Npcap. If you specify /downgrade=yes, then it will also install over newer versions of the OEM version of Npcap.

While this works for many users, there are a few concerns:

  • This doesn't provide a way for products to easily "ensure that Npcap is installed and that it's at least this version" or "ensure that exactly this version of Npcap OEM is installed" by simply running the installer. That doesn't work right now because the installer currently will uninstall and reinstall itself even if the exact same version of Npcap is already installed with the same options. That takes a long time compared to just noticing that the same Npcap is already installed and then exiting.
  • The default of "downgrading" from non-OEM to an earlier OEM version while not downgrading if both versions are OEM is questionable. The practical differences between Npcap and Npcap OEM are almost entirely in the installer and how they report themselves. Other than that, an installed copy of Npcap OEM functions roughly identically to an installed copy of free/demo Npcap. So it makes little sense to treat them so differently.

What we probably want to do instead is:

  • Change the default silent install logic so it only installs if one of the following is true:
    • Npcap (any edition--free or OEM) is not installed
    • An older version of any Npcap edition is installed
    • The same version of Npcap is installed but with selected options which vary in a material way (like admin mode vs. no admin-mode or raw wifi sniffinger versus not).
  • Keep the /downgrade=yes option available which would downgrade newer existing versions of Npcap or Npcap OEM to the one that is being installed. While we work extremely hard on compatibility and think that leaving the existing newer version would usually be better, we can understand why some companies might want to ensure that exactly the version they tested with is installed. Note that this would still not install if exactly the same version is already installed with the same material options.
  • Add a new /force=yes option which tells Npcap to ALWAYS uninstall any previous version and install itself no matter what. This might be valuable if you have a broken install for some reason. Microsoft feature releases have in the past caused that sort of breakage, and of course it could happen from filesystem corruption or botched attempts to fix something else, etc.
  • Make "=yes" the default for options so people can just specify /downgrade or /force if desired. Or we could make it fail. I just wouldn't want one of these options to seem to work and then for it to not work when needed. If someone specifies /force or /downgrade by themselves, I think it's safe to say they want it set to yes.
  • Document this new behavior in the Npcap install guide. Right now we don't even have /downgrade documented there.

The key advantages of these changes would be:

  • Remove the arguably pointless or even detrimental default of downgrading new (free/demo version) Npcap to older copies of OEM.
  • Allow companies to more easily ensure they get the version of Npcap they want by running the silent installer each time their software starts up. With the current installer that takes too long since it would uninstall and reinstall the same version of itself each time. With these changes, execution will generally only take a fraction of a second to determine that the same version of Npcap with the same material installation options is already installed and then it will quit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions