How To Turn Off Discovery Schedules or Stop Active Discoveries



In some cases, it may be necessary to stop discovery from running. This KB goes over a few case scenarios and how to stop discovery.

Note: Any sample script in this KB is given only as a starting point. Sample scripts should be tested first in a non production instance and modified to meet each instance's requirements if necessary.

Stop Active Discoveries

Using a list:

  1. Navigate to "Discovery > Status" (discovery_status).
  2. Search for statuses where "stateINStarting,Active" (Encoded query for state is one of Starting, Active).
  3. Select all records.
  4. Select "Cancel Discovery".

Using a fix script:

  1. Navigate to "System Definition > Fix Scripts".
  2. Click New.
  3. Define the fix script.
  4. Click "Run Fix Script" related link. The following could be used as a sample script:
    var dac = new SncDiscoveryCancel();
    var status = new GlideRecord('discovery_status');
    gs.log("Fix Script: Canceling discovery_status " + status.sys_id);

Stop Discoveries For Specific CI Types/Classes

Discovery can be stopped for certain classes after a CI is classified via the Discovery Configuration Console.

To stop a discovery after a CI has been classified:

  1. Go to "Discovery Definition > Configuration Console".
  2. Find the device class under "Devices" and set to active = false.
  3. In the following example we turn off "Network Printer" discovery.

    Configuration Console

Note: Turning off all device types in the configuration console will not disable discovery. The Shazzam and Classification phases will still run. Discovery will stop once the devices are classified.

Stop Discoveries From Running on Cloned Instances

As part of the cloning process, Post-clone cleanup scripts are run on the target instance. A Post-clone cleanup script can be used to keep discovery from running on a target instance.

To create a Post-clone cleanup script:

  1. Navigate to System Clone > Clone Definition > Cleanup Scripts and click New.
  2. Populate the "Name" and "Script" fields. The following could be used as a sample script:
    var schedules = new GlideRecord('discovery_schedule')
    schedules.addQuery('active', true);
    schedules.setValue('active', false);

Alternatively, use any of the previously mentioned methods to disable discovery once the cloning is complete.

Additional Information

Other relevant KB and documents: