IP Library Granted Patent US 11,822,911
Granted Patent B1
US 11,822,911 · App. 16/898,957 · Granted Nov 21, 2023

Universal installer and uninstaller

Inventors: Ryan B. Benskin (Charlotte, NC); Jonathan D. Russell (Charlotte, NC); Lawrence T. Belton, Jr. (Charlotte, NC); Peter A. Makohon (Huntersville, NC); Timothy H. Morris (Lexington, NC); Jeremy B. Hairston, Sr. (Charlotte, NC)
Assignee: Wells Fargo Bank, N.A.
G06F8/61G06F8/62
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,822,911
App. No.
16/898,957
Granted
Nov 21, 2023
Kind
B1
Abstract

Provided are a universal software installer and/or uninstaller. The universal software installer determines a structure of the software to be installed and verifies all necessary software elements are applied or installed on the endpoint during the install. The universal software uninstaller determines a structure of the software to be uninstalled and verifies all related software elements are removed from the endpoint. The universal software installer and/or uninstaller is independent of an operating system platform executing on the endpoint.

Claims (37)

1. A system, comprising:

a processor coupled to a memory that includes instructions that, when executed by the processor, cause the processor to:

determine that a software product has been partially uninstalled from an endpoint by a first uninstall process;

search for a registry key of the partially uninstalled software product that remains on the endpoint after execution of the first uninstall process;

apply a probabilistic or statistic-based inference to determine that the registry key remains from the partially uninstalled software product after execution of the first uninstall process, wherein applying the probabilistic or statistic-based inference comprises:

identifying an operating system of the endpoint; and

identifying an item as the registry key of the partially uninstalled software product by using a trained machine-learning classifier to determine a probability that the item remains from an installation of the software product on the operating system of the endpoint, wherein the machine-learning classifier is trained using historical installation and uninstallation data of the software product on multiple endpoints to determine a probability that a target item remains from a previous installation; and

execute a second uninstall process to remove the registry key remaining from the partially uninstalled software product after execution of the first uninstall process.

2. The system of claim 1 , wherein the instructions further cause the processor to search the endpoint based on a profile of the endpoint, wherein the profile captures information regarding an uninstall on at least one other endpoint.

3. The system of claim 2 , wherein the other endpoint executes on a different platform than the endpoint.

4. The system of claim 1 , wherein the instructions further cause the processor to update with the registry key a profile of at least one of the endpoint or the partially uninstalled software product.

5. The system of claim 1 , wherein the instructions further cause the processor to identify the software product based on received user input.

6. The system of claim 1 , wherein the instructions further cause the processor to trigger removal of the registry key if the probability exceeds a threshold.

7. The system of claim 1 , wherein applying the probabilistic or statistic-based inference to determine that the registry key remains from the partially uninstalled software product after execution of the first uninstall process comprises:

determining, based on a file structure of an operating system of the endpoint, one or more artifacts included in an installation of the software product; and

identifying the registry key as being among the one or more artifacts that are included in the installation of the software product.

8. A method, comprising:

determining that a software product has been partially uninstalled from an endpoint by a first uninstall process;

searching an endpoint for a registry key of the partially uninstalled software product that remains on the endpoint after execution of an initial uninstall process to remove the software product from the endpoint;

applying a probabilistic or statistic-based inference to determine that the registry key remains from the partially uninstalled software product after execution of the initial uninstall process, wherein applying the probabilistic or statistic-based inference comprises:

identifying an operating system of the endpoint; and

identifying an item as the registry key of the partially uninstalled software product by using a machine-learning classifier to determine a probability that the item remains from an installation of the software product on the operating system of the endpoint, wherein the machine-learning classifier is trained using historical installation and uninstallation data of the software product on multiple endpoints to determine a probability that a target item remains from a previous installation; and

automatically executing a second uninstall process to remove the registry key of the partially uninstalled software product from the endpoint, based on the registry key remaining from the partially uninstalled software product.

9. The method of claim 8 , further comprising searching the endpoint based on a profile of the software product.

10. The method of claim 8 , further comprising searching the endpoint based on a profile of the endpoint.

11. The method of claim 8 , further comprising updating a profile associated with the software product or endpoint with the registry key.

12. The method of claim 8 , further comprising triggering removal of the registry key if the probability is greater than a threshold value.

13. The method of claim 8 , further comprising searching for an additional registry key based on the registry key.

14. A non-transitory computer-readable storage medium that stores executable instructions that, in response to execution by a processor, cause the processor to perform operations, comprising:

determining that a software product has been partially uninstalled from an endpoint by a first uninstall process;

searching an endpoint for registry key of the partially uninstalled software product that remains on the endpoint after execution of an initial uninstall process to remove the software product from the endpoint;

applying a probabilistic or statistic-based inference to determine that the registry key remains from the partially uninstalled software product after execution of the initial uninstall process, wherein applying the probabilistic or statistic-based inference comprises:

identifying an operating system of the endpoint; and

identifying an item as the registry key of the partially uninstalled software product by using a machine-learning classifier to determine a probability that the item remains from an installation of the software product on the operating system of the endpoint, wherein the machine-learning classifier is trained using historical installation and uninstallation data of the software product on multiple endpoints to determine a probability that a target item remains from a previous installation; and

automatically executing a second uninstall process to remove the registry key of the partially uninstalled software product from the endpoint, based on the registry key remaining from the partially uninstalled software product.

15. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising searching for the registry key based on a profile associated with at least one of the endpoint and the software product.

16. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising updating a profile associated with at least one of the software product or endpoint with the registry key.

Assignments (2)
ADDRESS CHANGE Recorded Jun 2, 2025
From: WELLS FARGO BANK, N.A.
To: WELLS FARGO BANK, N.A.
Reel/Frame 071769/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2020
From: BENSKIN, RYAN B.; RUSSELL, JONATHAN D.; BELTON, LAWRENCE T., JR.; MAKOHON, PETER A.; MORRIS, TIMOTHY H.; HAIRSTON, JEREMY B., SR.
To: WELLS FARGO BANK, N.A.
Reel/Frame 052910/0409 →
Continuity (1)
Continuation 15288319 · Oct 7, 2016