<h2>Command Validation Tool</h2><br/><div style="overflow-x:auto"><p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong><span style="font-size: 14.0pt;">Command Validation Tool</span></strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>What is the problem?</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">There is no tool available, which allows users to run commands on range of IP Address(es). In the absence of such tool, the validation of commands on IP address(es) against the credentials present in the instance do not happen. In case of discovery failure, where certain commands did not execute as expected, majority of the times users are asked to perform such validations by running the command from the virtual machine where MID server is installed.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>What are we doing?</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">We have implemented an application, which allows users to run command(s) on a range of IP addresses belonging a certain operating system. Users also get to choose the MID server selection method for this operation. The output of this operation tells whether the execution is successful or not.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">All commands are available via a Command List, which is populated daily by parsing all the discovery patterns present in the instance. The Command List contains commands belonging to Shell, WMI and SNMP protocols.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>How it is being resolved?</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">With the introduction of the Command Validation Tool, which supports most popular operation types and protocols, users can run commands to validate them from within their ServiceNow instance.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Command Validation Tool supports the following operations:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Shell Command</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">WMI Query</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">SNMP Query (Tabular and Scalar)</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">SNMP Walk</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">HTTP GET (authenticated via Basic Authentication credentials)</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Following MID selection methods are available:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Specific MID Server</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Auto Select MID Server</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Try All Eligible MID Servers</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Users can provide IPv4 addresses as input in the following manner:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Comma separated IP Addresses</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">IP Range</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">IP Network</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Mix of all the above</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Every command validation results with the following information:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Status: Success/Failure</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">State: pending/processing/done</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Result: Response from device/Reason for failure</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Credentials used for command validation</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">In case of failure: <ol style="list-style-type: lower-alpha; margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">ServiceNow Discovery specific error code</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Steps to troubleshoot based on the error code</li></ol> </li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Requirements and Use Cases:</strong></p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Troubleshooting Discovery Failures</strong>: In case of failures in Discovery, Command Validation Tool can be used to re-run failed commands on the corresponding IP addresses using the corresponding MID servers. This can be used to detect the following:</li></ol> <ol style="list-style-type: lower-alpha; margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 72px; font-size: 12pt; font-family: Calibri, sans-serif;">Authentication issue</li><li style="margin: 0cm 0cm 0cm 72px; font-size: 12pt; font-family: Calibri, sans-serif;">Authorization/Permission Issue</li><li style="margin: 0cm 0cm 0cm 72px; font-size: 12pt; font-family: Calibri, sans-serif;">No valid credentials present</li><li style="margin: 0cm 0cm 0cm 72px; font-size: 12pt; font-family: Calibri, sans-serif;">IP not reachable from MID</li><li style="margin: 0cm 0cm 0cm 72px; font-size: 12pt; font-family: Calibri, sans-serif;">Command with wrong syntax</li><li style="margin: 0cm 0cm 0cm 72px; font-size: 12pt; font-family: Calibri, sans-serif;">Problems with MID configuration</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="2"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Onboarding New Infrastructure to ServiceNow Pattern Based Discovery</strong>: Command Validation Tool can be used to onboard new infrastructure as it gives the ability to validate all commands in a chosen pattern. By doing that, users can make sure that the new added IP addresses are discovered via Patterns without major failures.</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="3"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Bulk Execution of a Command</strong>: Command Validation Tool can be used to run any command (as long as it is available via the Command List) on a range of IPs to check for a certain configuration.</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Note</strong>: The application supports Domain Separation.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Feature Flow:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Command Validation Tool is available via the <a style="color: #0563c1; text-decoration: underline;" title="Pattern Designer Enhancements" href="https://store.servicenow.com/sn_appstore_store.do#!/store/application/f73627bf89228510f877b828becf35e9/2.0.0?referer=%2Fstore%2Fsearch%3Flistingtype%3Dallintegrations%25253Bancillary_app%25253Bcertified_apps%25253Bcontent%25253Bindustry_solution%25253Boem%25253Butility%25253Btemplate%26q%3Dpattern%2520designer%2520enhancmenets&sl=sh" target="_blank" rel="noopener noreferrer">"Pattern Designer Enhancements" store app</a>.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">To get Command Validation Tool, first install Pattern Designer Enhancements via the list of plugins:</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=acb05a85db70e150b5d6e6be13961920" width="460" height="259" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">After the application is installed, once you refresh and search for ‘Command Validation Tool’ in the navigation menu, you will notice the relevant menu items:</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=0db0da85db70e150b5d6e6be139619b5" width="347" height="209" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Under Command Validation Tool, notice 4 modules:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Create New: To create a new Command Validation Task, which represent a single execution entity of Command Validation.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Command Validation Tasks: To see the list of tasks</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Command Validation Task Results: To see the list of Command Validation Task Results.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Commands List: Contains all commands (of type SHELL, WMI and SNMP) parsed from patterns.</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Creating a new Command Validation Task:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Clicking ‘Create New’ opens the following form:</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=b0b09a85db70e150b5d6e6be1396193a" width="435" height="199" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The following information in required:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Mid Server Selection Method:</strong> Choose either of the 3 options which are: <ol style="list-style-type: lower-alpha; margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Specific mid server: you will be required. To choose the specific MID Server via the MID Server field.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Auto Select mid server: first checks if the give IP has an affinity for a certain MID server by querying dscy_credentials_affinity table. If there is no affinity, it then selects the MID server whose configurational parameters have desired IP Range and Application set to include ‘Discovery’.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Try all eligible mid servers: will select all MID servers which has affinity to the given IP Address and those whose configurational parameters have desired IP Range and Application set to include ‘Discovery’.</li></ol> </li></ol> <p style="margin: 0cm 36pt 0.0001pt 0cm; text-align: right; direction: rtl; unicode-bidi: embed; font-size: 12pt; font-family: Calibri, sans-serif;"><span style="font-family: Arial, sans-serif;"> </span></p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="2"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>OS Class</strong>: Concerned OS (CMDB CI) class to which the IP addresses belongs. Users are expected to provide the correct OS Class, as this information is used by MID Server to decide which ports and protocol implementations to consider, when executing the command. Note that in case the wrong OS Class is provided, command execution will fail. Example: Choose Linux Server (cmdb_ci_linux_server) as OS Class when all IPs you entered as input are Linux servers.</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="3"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Command Type</strong>: The type of command, you want to execute on the IP addresses. It can be Shell, WMI query, SNMP query, SNMP Walk or HTTP GET.</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;">Notes:</p> <ol style="list-style-type: lower-alpha; margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 24px; font-size: 12pt; font-family: Calibri, sans-serif;">Choose Command Type in such a way that it can be run on the chosen OS Server. The chosen IP Addresses should belong to the chosen OS Type. For example: you can’t run WMI Query on Linux Server.</li><li style="margin: 0cm 0cm 0cm 24px; font-size: 12pt; font-family: Calibri, sans-serif;">HTTP Get command type only works when the credentials of API call is present as Basic Auth credentials. Token based credentials are not yet supported for this operation. This is also conveyed via field messages.</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="4"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>IP Addresses</strong>: Provide IP4 addresses as input in the following manner: <ol style="list-style-type: lower-alpha; margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="4"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Comma separated IP Addresses</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">IP Range (1.1.1.1-1.1.1.100)</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">IP Network (1.1.1.1/28)</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Comma separated IP Addresses, IP Range, and IP Network.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">IP and port (for HTTP Get command only)</li></ol> </li></ol> <p style="margin: 0cm 0cm 0cm 16pt; text-indent: 20pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 16pt; text-indent: 20pt; font-size: 12pt; font-family: Calibri, sans-serif;">Notes:</p> <ol style="list-style-type: lower-alpha; list-style-position: inside;"><li style="text-indent: 20pt; font-size: 12pt; font-family: Calibri, sans-serif;"><span style="font-size: 12pt; font-family: arial, helvetica, sans-serif;">Users can provide IP Addresses, which were not yet discovered via discovery and are not available in CMDB. In this case, the customer should have proper credentials for the IP address, stored in the credentials table, for the command executions to be successful.</span></li><li style="text-indent: 20pt; font-size: 12pt; font-family: Calibri, sans-serif;"><span style="font-size: 12pt; font-family: arial, helvetica, sans-serif;">The IP range and IP network will only work when you have ‘<a href="sys_attachment.do?sys_id=8ba98f221bf75910f81c86ae6e4bcb40">ParseIPRanges</a>’ script-includes imported to your instance. Please refer to the Script include attached to this KB.</span></li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="5"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Commands</strong>: the list of commands to execute on the specified IP addresses, which can only be chosen from the Command List table. Clicking on search icon will show only those commands from Command List table as per the chosen ‘Command Type’ and ‘Applicable OS Class’ field.</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;">Notes:</p> <ol style="list-style-type: lower-alpha; margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 48px; font-size: 12pt; font-family: Calibri, sans-serif;">The field message for ‘Commands’ tells you when the Command List was last updated, or if it is empty then how to populate it.</li><li style="margin: 0cm 0cm 0cm 48px; font-size: 12pt; font-family: Calibri, sans-serif;">The syntax in which the command will be present in the Command List table is given below:</li></ol> <table class="MsoTableGrid" style="border-collapse: collapse; border: none; margin-left: 6.75pt; margin-right: 6.75pt; width: 83.1156%; height: 190px;" border="1" cellspacing="0" cellpadding="0" align="left"><tbody><tr style="height: 22.3984px;"><td style="width: 32.7707%; border: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Command Type</p> </td><td style="width: 37.6934%; border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Command Syntax</p> </td><td style="width: 29.5359%; border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">IP Syntax</p> </td></tr><tr style="height: 22.3984px;"><td style="width: 32.7707%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Shell</p> </td><td style="width: 37.6934%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">command</p> </td><td style="width: 29.5359%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">No change</p> </td></tr><tr style="height: 22.3984px;"><td style="width: 32.7707%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">WMI Query</p> </td><td style="width: 37.6934%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">["Namespace"][space]"WMI Query"</p> </td><td style="width: 29.5359%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">No change</p> </td></tr><tr style="height: 22.3984px;"><td style="width: 32.7707%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">SNMP Scalar Query</p> </td><td style="width: 37.6934%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">oid</p> </td><td style="width: 29.5359%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">No change</p> </td></tr><tr style="height: 44.7969px;"><td style="width: 32.7707%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 44.7969px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">SNMP Tabular Query</p> </td><td style="width: 37.6934%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 44.7969px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">oid[space][comma separated column number],</p> </td><td style="width: 29.5359%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 44.7969px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">No change</p> </td></tr><tr style="height: 22.3984px;"><td style="width: 32.7707%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">SNMP Walk*</p> </td><td style="width: 37.6934%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">oid</p> </td><td style="width: 29.5359%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">No change</p> </td></tr><tr style="height: 22.3984px;"><td style="width: 32.7707%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">HTTP GET*</p> </td><td style="width: 37.6934%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">httpEndpoint,</p> </td><td style="width: 29.5359%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 22.3984px;" valign="top"> <p style="text-align: center; margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">ip:port</p> </td></tr></tbody></table> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;">* Even though the tool has the capability to run ‘SNMP Walk’ and ‘HTTP GET’, the Command List table currently does not support them.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;" start="6"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Validate All Pattern Commands</strong>: Enable this checkbox if you want to run all the commands from a specific pattern against the specified IP(s). Once the user checks this, the ‘Commands’ field will be replaced by the ‘Pattern’ field and the Command validation task will be executed depending on the chosen pattern rather than commands.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Pattern</strong>: This field is hidden by default and shows only when ‘Validate All Pattern Commands’ checkbox is enabled. All the commands present in the selected pattern will be run against the specified IP(s). Currently, only Infrastructure and Application patterns are available to be chosen, as the Command List is populated with commands from these pattern types only.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Credential</strong>: Specify a specific credential to use for validating the commands via the command validation task. This is optional. If not chosen, then the MID Server selects the proper credential to use based on affinity and order.</li></ol> <p style="margin: 0cm 0cm 0cm 36pt; font-size: 12pt; font-family: Calibri, sans-serif;">Note: This feature is only supported from Utah release and onwards, and supports Shell, WMI and SNMP operations.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Once done, you can save the record, or immediately click on ‘Run Command Validation’ button to start command validation execution.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">After clicking the ‘Run Command Validation’ button, Command Validation Task Result records are created for every provided command, IP address and MID Server.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">For example: for 3 IP addresses, 2 commands and 1 MID Server configured in the task, 6 task results records are created.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Command Validation Task Result records are used to track the progress of Command Validation Task execution.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">State of the Command Validation Task Result Records:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Pending: Yet to be picked by scheduler and dispatched to MID server</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Processing: Scheduler has picked the record and dispatched to MID server for execution</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Done: The execution of command is completed, and result is created.</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Task progress and status can also be monitored within the task record.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Schedule Command Validation Probe launch Job:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The responsibility of this scheduled job to pick all pending Command Validation Task Results records, in a First-In-First-Out basis, on a regular interval (by default the scheduler is configured to run every 15 seconds) and send their content in batches (which is by default 10) to ECC queue via the Command Validation Probe. Users can customize the batch size and frequency as per their environment and instance and MID configuration.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=65b01e85db70e150b5d6e6be1396199f" width="444" height="236" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Use the following system property to configure the batch size:<span style="font-family: Arial, sans-serif;"> </span>command.validation.probe.batch.count</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Command List Table:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">This is introduced in Feb 2023 release.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The table holds shell commands, WMI queries and SNMP queries present inside all Infrastructure and Application patterns, including their shared libraries and extension sections.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The Command List acts as an Allow-List and is the pool of commands which customer can select while creating the Command Validation Task.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The Command List is also used when the user chooses to perform ‘Validate All Pattern Commands’, as the Command Validation Tool takes all the commands in the Command List belonging to the selected pattern.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The Command List table is delivered empty. It’s populated by one of two methods:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">A scheduled job, named “CVT-Populate CmdList and Mappings”, which runs once per day to keep the table up to date. Any changes made to patterns, either a step with new command is added or an existing step is deleted or modified, are being reflected by the end of the day, and no stale records are remained.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">Using the <u>‘Refresh Command List’</u> button present in the list view of the Command List table, for cases the user made some changes and wants the command list to immediately reflect them. Below is the screenshot of how the command list looks, with the ‘Refresh Command List’ button on top. Note that the population process takes a few minutes to complete.</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong><img src="/sys_attachment.do?sys_id=b9b01e85db70e150b5d6e6be139619e3" width="451" height="255" border="0" /></strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Notes:</p> <ol style="margin-bottom: 0cm; margin-top: 0px; list-style-position: inside;"><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">The Command List does not contain commands, which has temporary variables as part of it.</li><li style="margin: 0cm 0cm 0cm 0px; font-size: 12pt; font-family: Calibri, sans-serif;">The population process for the Command List only parses for commands of type SHELL, WMI and SNMP.</li></ol> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Cancel Command Validation Task:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">This ability is introduced in February 2023 store release.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Once a command validation task is submitted, "Cancel Command Validation Task" button appears in the Command Validation Task Results related list, at the bottom of the Command Validation Task form. Clicking the button cancels all Command Validation Task Result records in pending state by changing their state to "cancelled". For those records, Command Validation Probe will not launch.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Note that command validation task results records in processing state are not cancelled since they're already being processed by a MID Server till they’re eventually completed.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=fdb01a85db70e150b5d6e6be13961974" width="455" height="245" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Show Commands Action:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong> </strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">‘Show Command’ related link is visible only when the ‘Validate All Command Patterns’ field is checked, and the task record is saved. Clicking on ‘Show Commands’ shows the list of commands that is configured to get executed as per the selected pattern in the Command Validation Task. This should help users to figure out what all commands are executed once command validation is submitted.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=42b01e85db70e150b5d6e6be1396198d" width="451" height="220" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Troubleshooting Failed Command Execution</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Command Validation Tool gives users steps to troubleshoot in case command execution fails. Once Command Validation Task Result ends status “Failure”, opening the record's form exposes a related link by the name ‘Open Suggestions to troubleshoot failure’.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">When clicked, it opens a dialog box with suggestions on how to troubleshoot this failure. This suggestion is mapped to the error code present in the Command Validation Task Result record. Check the screenshot below.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Note that mappings of error codes to suggestions are delivered with the base system. There might be cases where error codes are not mapped to any suggestions. The message which appears in the dialog in such cases reflects that.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=c1b09a85db70e150b5d6e6be139619ce" width="452" height="171" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong>Working Example:</strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">In the screenshot below, we configured Command Validation Task to run two shell commands, ‘date’ and ‘hostname’, on an IP address which belongs to a Linux server.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">We chose a specific MID Server to run on and didn’t choose a specific credential – we let the MID Server to choose one for us.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">The execution of both commands succeeded, and for each we’re able to see the result.</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><img src="/sys_attachment.do?sys_id=0eb01e85db70e150b5d6e6be139619b7" width="451" height="241" border="0" /></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"><strong><u>Release Information</u></strong></p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;"> </p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Release: February 2023 Store</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Application version: 3.0.0</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Previous version: 2.0.0</p> <p style="margin: 0cm; font-size: 12pt; font-family: Calibri, sans-serif;">Note: This is the second release of this scoped application.</p></div>