# US 12,216,567 B2 · Test and automated remediation of depolyed computing products

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,216,567 B2
- Document ID: US12216567B2
- Status: Granted
- Kind: B2
- Application number: 18/361,383
- Filed: 2023-07-28
- Published: 2024-02-01
- Granted: 2025-02-04
- Earliest claimed: 2022-07-29
- Assignees: Ivanti, Inc.
- Applicants: Ivanti, Inc.
- Inventors: Paul Keith Branton; Jens Miltner
- Web page: https://patentgrep.com/patent/US12216567B2

## CPC

- G06F 11/1433: {during software upgrading}
- G06F 11/366: {using diagnostics (G06F11/0703 takes precedence)}
- G06F 8/61: Installation
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of evaluating a computer-implemented product that is deployed on one or more endpoints. The method includes identifying a first program and a second program of a product deployed on a first endpoint of multiple endpoints. The method includes implementing a diagnostic process at the first endpoint. The diagnostic process includes a first subroutine directed to the first program and a second subroutine directed to a second program. The subroutines each execute installation and functional parameter tests of the programs. Responsive to the first subroutine indicating that the first program is operational, the method includes outputting data that the first subroutine passed. Responsive to the second subroutine returning an unexpected result, the method includes outputting data indicating details of the unexpected result and implementing a remediation that modifies the second program or a condition at the first endpoint to mitigate the unexpected result.

## Claims

### Claim 1

A method of evaluating computer-implemented product that is deployed on one or more endpoints, the method comprising:
identifying a first program and a second program of a product deployed on a first endpoint of one or more endpoints;
implementing a diagnostic process at the first endpoint, the diagnostic process including plurality of subroutines, wherein a first subroutine of the plurality of subroutines is directed to the first program and a second subroutine is directed to a second program, and wherein the first and second subroutines each execute a set of installation and functional parameter tests of the first and second programs, respectively;
itemizing results of the first subroutine and the second subroutine according to a corresponding program;
in response to the results of the first subroutine indicating that the first program is installed and operational at the first endpoint, outputting data indicating the first program successfully passed the first subroutine; and
in response to a first test of the set of installation and functional parameter tests of the second subroutine returning an unexpected result:
outputting data indicating the second program failed the second subroutine and details of the first test and the unexpected result; and
implementing a remediation specific to the unexpected result and the first test, the remediation being configured to modify the second program or a condition at the first endpoint to mitigate the unexpected result and enable the second program to pass the first test.

### Claim 2 (depends on 1)

The method of claim 1, further comprising causing display of:
a selectable instruction configured to initiate at least a portion of the remediation in a user interface;
a first icon associated with the first program that indicates that the first program successfully passed the first subroutine; and
a second icon associated with the second program that indicates that the data output by the second subroutine indicates that the second program failed the second subroutine.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first program includes an agent deployed at the first endpoint.

### Claim 4 (depends on 1)

The method of claim 1, wherein the set of installation and functional parameter tests include:
verifying locations of files and data of the first or the second programs;
verifying a profile of a user that implemented the first or the second programs;
identifying a time involved in carrying out a computing process in the first and the second programs;
verifying a version of the first or the second programs;
verify enrollment of the first or the second programs with a second system;
verify source of the first or the second programs; or
verify a vendor of the first or the second programs.

### Claim 5 (depends on 1)

The method of claim 1, wherein a first set of installation and functional parameter tests of the first subroutine and a second set of installation and functional parameter tests of the first subroutine includes at least each diagnostic is different for each program of the product.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first subroutine and the second subroutine are generated according to a script template.

### Claim 7 (depends on 1)

The method of claim 1, wherein one or both of the first subroutine or the second subroutine are signed scripts.

### Claim 8 (depends on 1)

The method of claim 1, further comprising in response to a determination that a second endpoint of the one or more endpoints is similar to the first endpoint, further implementing the remediation at the second endpoint without implementing the diagnostic process at the second endpoint.

### Claim 9 (depends on 1)

The method of claim 1, wherein the remediation includes one or more or a combination of:
reinstalling the second program;
downloading an agent;
requesting a certificate of a user or an updated certificate of a user;
communicating a notification to an administrator;
increasing a time to complete a computing process;
installing a patch or a product update; and
disabling the second program.

### Claim 10 (depends on 1)

The method of claim 1, wherein the diagnostic process is implemented prior to operation or installation of an agent on the first endpoint.

### Claim 11

One or more non-transitory computer-readable media having encoded therein programming code executable by one or more processors to perform or control performance of operations comprising:
identifying a first program and a second program of a product deployed on a first endpoint of one or more endpoints;
implementing a diagnostic process at the first endpoint, the diagnostic process including plurality of subroutines, wherein a first subroutine of the plurality of subroutines is directed to the first program and a second subroutine is directed to a second program, and wherein the first and second subroutines each execute a set of installation and functional parameter tests of the first and second programs, respectively;
itemizing results of the first subroutine and the second subroutine according to a corresponding program;
in response to the results of the first subroutine indicating that the first program is installed and operational at the first endpoint, outputting data indicating the first program successfully passed the first subroutine; and
in response to a first test of the set of installation and functional parameter tests of the second subroutine returning an unexpected result:
outputting data indicating the second program failed the second subroutine and details of the first test and the unexpected result; and
implementing a remediation specific to the unexpected result and the first test, the remediation being configured to modify the second program or a condition at the first endpoint to mitigate the unexpected result and enable the second program to pass the first test.

### Claim 12 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the operations further comprise causing display of:
a selectable instruction configured to initiate at least a portion of the remediation in a user interface;
a first icon associated with the first program that indicates that the first program successfully passed the first subroutine; and
a second icon associated with the second program that indicates that the data output by the second subroutine indicates that the second program failed the second subroutine.

### Claim 13 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the first program includes an agent deployed at the first endpoint.

### Claim 14 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the set of installation and functional parameter tests include:
verifying locations of files and data of the first or the second programs;
verifying a profile of a user that implemented the first or the second programs;
identifying a time involved in carrying out a computing process in the first and the second programs;
verifying a version of the first or the second programs;
verify enrollment of the first or the second programs with a second system;
verify source of the first or the second programs; or
verify a vendor of the first or the second programs.

### Claim 15 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein a first set of installation and functional parameter tests of the first subroutine and a second set of installation and functional parameter tests of the first subroutine includes at least each diagnostic is different for each program of the product.

### Claim 16 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the first subroutine and the second subroutine are generated according to a script template.

### Claim 17 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein one or both of the first subroutine or the second subroutine are signed scripts.

### Claim 18 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the operations further comprise in response to a determination that a second endpoint of the one or more endpoints is similar to the first endpoint, further implementing the remediation at the second endpoint without implementing the diagnostic process at the second endpoint.

### Claim 19 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the remediation includes one or more or a combination of:
reinstalling the second program;
downloading an agent;
requesting a certificate of a user or an updated certificate of a user;
communicating a notification to an administrator;
increasing a time to complete a computing process;
installing a patch or a product update; and
disabling the second program.

### Claim 20 (depends on 11)

The non-transitory computer-readable media of claim 11, wherein the diagnostic process is implemented prior to operation or installation of an agent on the first endpoint.
