{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":32414,"path":"it-service-management/digital-end-user-experience-dex/dex-check-definitions-mac.md","title":"DEX check definitions for macOS","bundle":null,"doc_type":null,"release":"australia","body":"\n# DEX check definitions for macOS\n\nCheck definitions for macOS are predetermined sets of rules and criteria that assess the performance, security, and conformance of macOS devices. These checks can cover various aspects such as CPU usage, memory usage, battery details, and firewall status.\n\n**Note:** You can configure the check definitions and associated retrievable data. Some of the listed check definitions might retrieve data that contains or is considered personal information.\n\n## Check definitions — Application \\(Metrics\\)\n\nDEX provides the following check definitions, available while the application is running, except these listed below, which remain accessible even when the application isn’t running:\n\n-   os.mac.check-app-version\n-   os.mac.check-app-is-installed\n-   os.mac.check-app-last-access-time\n-   os.mac.check-app-last-updated\n\nIn the check definition parameters:\n\n-   appName = application name. For example, Webex.\n-   appSysId = sys\\_id of the application.\n-   primaryProcess = list of primary processes for the application separated by a pipe symbol \\( \\| \\). The first process that exists on the endpoint device is given priority. For example: Webex.app or Microsoft Teams.app \\| Microsoft Teams Classic.app.\n\n    **Note:** When determining priority based on process availability on an endpoint device, follow this logic: If the primary process for the Teams application is Microsoft Teams.app on one end-point device and it’s Microsoft Teams classic.app on another end-point device, then the process that is present on the endpoint device first is given precedence.\n\n-   secondaryProcesses = list of secondary processes for the application separated by a pipe symbol \\( \\| \\). For example: Cisco WebEx Start.app \\| webexmtaV2.app.\n\n<table id=\"table_yxf_q4d_hwb\"><thead><tr><th>\n\nCheck definition name\n\n</th><th>\n\nCheck definition parameters\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nos.mac.check-app-cpu-usage\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the amount of CPU resources being used by the primary process and secondary process of the application.\n\n.\n\n</td></tr><tr><td>\n\nos.mac.check-app-memory-usage\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the amount of memory resources being used by the primary process and secondary process of the application.\n\n</td></tr><tr><td>\n\nos.mac.check-app-listening-ports\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nRetrieves the port numbers that are open and through which incoming network traffic can reach the application.\n\n</td></tr><tr><td>\n\nos.mac.check-app-last-updated\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the time and date of the latest application update installation.**Note:** This check definition doesn’t require the application to be in a running state.\n\n</td></tr><tr><td>\n\nos.mac.check-app-version\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nRetrieves the version number of the application.**Note:**\n\n-   This check definition doesn't require the application to be in a running state.\n-   If an application doesn’t have a version, the check definition returns the string \"unversioned\" for that application.\n\n</td></tr><tr><td>\n\nos.mac.check-app-is-installed\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks if the application is installed or not on the device.**Note:** This check definition doesn’t require the application to be in a running state.\n\n</td></tr><tr><td>\n\nos.mac.check-app-is-running\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks whether the application is in a running state or not.\n\n</td></tr><tr><td>\n\nos.mac.check-app-uptime\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the uptime of the given application.\n\n</td></tr><tr><td>\n\nos.mac.check-app-last-access-time\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the most recent time when the application was executed or run.**Note:**\n\n-   This check definition doesn’t require the application to be in a running state.\n-   If the application hasn’t been run by the user within the last 7 days, the last access time is empty.\n\n</td></tr><tr><td>\n\nos.mac.check-app-io-usage-read\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the Read I/O \\(Input/Output\\) operations performed by the application's primary and secondary processes.\n\n</td></tr><tr><td>\n\nos.mac.check-app-io-usage-write\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nChecks the Write I/O \\(Input/Output\\) operations performed by the application's primary and secondary processes.\n\n</td></tr><tr><td>\n\nos.mac.check-app-domain-network-latency\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n-   --domain=&lt;domain of the application&gt;\n\n</td><td>\n\nFetches network latency of the application domain.\n\n</td></tr><tr><td>\n\nos.mac.check-app-crashes\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nFetches number of crashes and crash details of the application.\n\n</td></tr><tr><td>\n\nos.mac.check-app-freezes\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nFetches number of app freezes in the last 5 minutes and freeze details of the application.\n\n</td></tr><tr><td>\n\nos.mac.check-app-zscaler-service-status\n\n</td><td>\n\n-   --appName=&lt;application name&gt;\n-   --primaryProcess=&lt;primary process name&gt;\n-   --secondaryProcesses=&lt;list of secondary processes separated by a pipe symbol&gt;\n-   --appSysId=&lt;sys id of the application&gt;\n\n</td><td>\n\nRetrieves the Zscaler service status information.\n\n</td></tr></tbody>\n</table>## Check definitions — Device \\(Metrics\\)\n\nDEX provides the following types of check definitions for device.\n\n<table id=\"table_wtg_ydq_rwb\"><thead><tr><th>\n\nCheck definition name\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nos.mac.check-system-cpu-usage\n\n</td><td>\n\nChecks the CPU utilization.\n\n</td></tr><tr><td>\n\nos.mac.check-system-cpu-details\n\n</td><td>\n\nRetrieves the CPU name, number of physical and logical cores, and architecture information.\n\n</td></tr><tr><td>\n\nos.mac.check-system-memory-usage\n\n</td><td>\n\nChecks system memory utilization.\n\n</td></tr><tr><td>\n\nos.mac.check-system-last-access-time\n\n</td><td>\n\nChecks the last time that the current device was accessed. **Note:** This check definition works on locked and unlocked devices.\n\n</td></tr><tr><td>\n\nos.mac.check-system-uptime\n\n</td><td>\n\nChecks the amount of time elapsed since the system was last booted.\n\n</td></tr><tr><td>\n\nos.mac.check-system-time\n\n</td><td>\n\nChecks the current time in Coordinated Universal Time \\(UTC\\) using UNIX timestamp.\n\n</td></tr><tr><td>\n\nos.mac.check-system-device-crashes\n\n</td><td>\n\nRetrieves details of different crashes on your device.**Note:** This check fetches Kernel Panics present in the device logs in the last five minutes.\n\n</td></tr><tr><td>\n\nos.mac.check-system-device-details\n\n</td><td>\n\nRetrieves the type, model, and serial number of the chassis.\n\n</td></tr><tr><td>\n\nos.mac.check-system-device-events\n\n</td><td>\n\nRetrieves the details of events that occurred on the device during the specified time interval. Events for macOS include: Last boot, logged-in users, installed software, updated software, added users, and reset passwords.\n\n</td></tr><tr><td>\n\nos.mac.check-system-disk-details\n\n</td><td>\n\nRetrieves disk details such as total space, used space, and free space in bytes.\n\n</td></tr><tr><td>\n\nos.mac.check-system-disk-io-usage-read\n\n</td><td>\n\nRetrieves disk bytes read per second.\n\n</td></tr><tr><td>\n\nos.mac.check-system-disk-io-usage-write\n\n</td><td>\n\nRetrieves disk bytes written per second.\n\n</td></tr><tr><td>\n\nos.mac.check-system-disk-usage\n\n</td><td>\n\nRetrieves the disk used space as a percentage of the total space.\n\n</td></tr><tr><td>\n\nos.mac.check-system-os-details\n\n</td><td>\n\nRetrieves the name, version, platform, architecture, and installation date of the operating system.\n\n</td></tr><tr><td>\n\nos.mac.check-system-net-bytes-incoming\n\n</td><td>\n\nRetrieves the incoming network bytes per second across all network devices.\n\n</td></tr><tr><td>\n\nos.mac.check-system-net-bytes-outgoing\n\n</td><td>\n\nRetrieves the outgoing network bytes per second across all network devices.\n\n</td></tr><tr><td>\n\nos.mac.check-system-logged-in-users\n\n</td><td>\n\nRetrieves the detail of users currently logged in to the device.\n\n</td></tr><tr><td>\n\nos.mac.check-system-session-details\n\n</td><td>\n\nRetrieves the session time of currently logged-in users in minutes.\n\n</td></tr><tr><td>\n\nos.mac.check-system-network-details\n\n</td><td>\n\nRetrieves the network details, including Ethernet, Wi-Fi, and other relevant information.\n\n</td></tr><tr><td>\n\nos.mac.check-system-battery-details\n\n</td><td>\n\nRetrieves battery-related data, including the remaining battery percentage, the designed voltage, the estimated run time, and the battery's maximum capacity.**Note:**\n\n-   This check definition doesn't apply to virtual machines \\(VMs\\) or desktops because they don't have batteries.\n-   If current capacity is greater than designed capacity, the battery is rounded off to 100%.\n\n</td></tr><tr><td>\n\nos.mac.check-system-battery-charge-percentage\n\n</td><td>\n\nRetrieves the charge percentage of batteries present on the device.**Note:**\n\n-   This check definition doesn't apply to virtual machines \\(VMs\\) or desktops because they don't have batteries.\n-   If current capacity is greater than designed capacity, the battery is rounded off to 100%.\n\n</td></tr><tr><td>\n\nos.mac.check-system-firewall-enabled\n\n</td><td>\n\nChecks if the operating system firewall is active and enabled.\n\n</td></tr><tr><td>\n\nos.mac.check-system-pending-updates\n\n</td><td>\n\nChecks the status of pending software updates.\n\n</td></tr><tr><td>\n\nos.mac.check-system-admin-users\n\n</td><td>\n\nRetrieves all user accounts with local administrative privileges.\n\n</td></tr><tr><td>\n\nos.mac.check-system-reboot-details\n\n</td><td>\n\nRetrieves the reboot details for the device.\n\n</td></tr><tr><td>\n\nos.mac.check-system-os-setup-details\n\n</td><td>\n\nRetrieves the approximate OS age for the device.\n\n</td></tr><tr><td>\n\nos.mac.check-system-compliance-details\n\n</td><td>\n\nRetrieves the system’s compliance details. This includes the list of all configured apps and metric values that are non-compliant, and calculates a compliance rating based on that.\n\n **Note:**\n\n-   This check definition provides the following details:\n    -   **Condition for app to be said as compliant**: Every process mentioned in primary process should be running.\n    -   **Condition for metric value to be said as compliant**: Value should be matching with the configured expected value.\n-   The score is then calculated using this formula: Score = \\( Complaint Application + Compliant metric value\\) / \\(Total Applications and metric value - Failed Ones\\) \\*100\n\n</td></tr><tr><td>\n\nos.mac.check-system-vpn-details\n\n</td><td>\n\nGet the VPN details for your device.\n\n</td></tr><tr><td>\n\nos.mac.check-system-energy-consumption\n\n</td><td>\n\nGets Energy consumed by Mac machine in coming 5 minutes.**Note:** It's important to consider the following:\n\n-   /usr/bin/powermetrics must be added to sudo Permissions.\n-   The check takes approximately five minutes to get completed as it’s calculating energy consumed in the coming five minutes\n-   This check definition doesn't work if agent is installed with rosetta enabled on M1, M2, M3 machines.\n\n</td></tr><tr><td>\n\nos.mac.check-system-power-consumption\n\n</td><td>\n\nGets Power consumption for mac device.\n\n</td></tr><tr><td>\n\nos.mac.check-system-custom-query-on-change\n\n</td><td>\n\nExecutes the custom query provided in the parameters. Returns value only when changed.\n\n</td></tr><tr><td>\n\nos.all.check.internal.get-device-configuration-on-change\n\n</td><td>\n\nGets the configurations of a device. For example: sudo configured, debug on, agent user, and so on. Runs only if value changes.\n\n</td></tr><tr><td>\n\nos.mac.action-kill-zombie-orphan-process\n\n</td><td>\n\nTakes an app name as input, identifies zombie and orphan processes for that app using the app\\_process\\_data.sh script, and kills them. Returns output in the format \\{isSuccess: true/false, message: \"success/failure message\", output: \\{\"killedProcessPids\": \\[array of pids\\]\\}\\}\n\n</td></tr></tbody>\n</table>## Check definitions — Diagnostic Actions\n\nDEX provides the following types of check definitions for Diagnostic actions.\n\n<table id=\"table_tyx_nnj_swb\"><thead><tr><th>\n\nCheck definition name\n\n</th><th>\n\nCheck definition parameters\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nos.mac.check-app-process-ids\n\n</td><td>\n\n--process\\_name=&lt;process name&gt;\n\n</td><td>\n\nRetrieves the Process IDs \\(PIDs\\) of both the parent and all the child processes associated with the application.\n\n</td></tr><tr><td>\n\nos.mac.check-process-cpu\n\n</td><td>\n\nNone\n\n</td><td>\n\nRetrieves a list of all running processes along with their CPU usage percentage, CPU time, Process ID \\(PID\\), Parent Process ID \\(PPID\\), and name.\n\n</td></tr><tr><td>\n\nos.mac.check-process-memory\n\n</td><td>\n\nNone\n\n</td><td>\n\nRetrieves a list of all running processes along with their memory usage in kilobytes \\(KB\\), Process ID \\(PID\\), Parent Process ID \\(PPID\\), and name.\n\n</td></tr><tr><td>\n\nos.mac.check-process-data\n\n</td><td>\n\nNone\n\n</td><td>\n\nRetrieves the CPU usage, memory usage, and disk usage of all currently running processes.\n\n</td></tr><tr><td>\n\nos.mac.check-process-disk\n\n</td><td>\n\nNone\n\n</td><td>\n\nRetrieves a list of all running processes along with their disk usage in Bytes, Process ID \\(PID\\), Parent Process ID \\(PPID\\), and name.\n\n</td></tr><tr><td>\n\nos.mac.check-traceroute\n\n</td><td>\n\n--url=&lt;url&gt;--max\\_hops = &lt;default value is 65&gt;\n\n--timeout = &lt;default value is 5&gt;\n\n</td><td>\n\nRetrieves the IP address, domain name, and round-trip time \\(RTT\\) for each network hop.\n\n</td></tr><tr><td>\n\nos.mac.check-ping-test\n\n</td><td>\n\n--url=&lt;url&gt;\n\n</td><td>\n\nSends a ping request to the provided URL and returns the connectivity status, indicating whether the URL is reachable or not.\n\n</td></tr><tr><td>\n\nos.mac.check-services-data\n\n</td><td>\n\nservice\\_type =&lt;Type of service\\(one of user, system or all\\)\n\n</td><td>\n\nRetrieves the list of all services with PID, Service Name, Status, Service Type.\n\n</td></tr></tbody>\n</table>## Check definitions — Remedial Actions\n\nDEX provides the following types of check definitions for Remedial actions.\n\n<table id=\"table_ink_wb3_bzb\"><thead><tr><th>\n\nCheck definition name\n\n</th><th>\n\nCheck definition parameters\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nos.mac.action-kill-process\n\n</td><td>\n\n--pid=&lt;process id&gt;OR\n\n--process\\_name=&lt;executable file name&gt;\n\n**Note:** The process ID takes priority over the application name.\n\n</td><td>\n\nTerminates a running process or multiple processes specified by their Process ID \\(PID\\) or executable \\(.app\\) file name.\n\n</td></tr><tr><td>\n\nos.mac.action-restart-service\n\n</td><td>\n\n--service\\_name=&lt;service name&gt;\n\n</td><td>\n\nRestarts logged user services that take a service name as input to the system.\n\n</td></tr><tr><td>\n\nos.mac.action-execute-jamf-policy\n\n</td><td>\n\n--Policy ID - policy\\_id\n\n</td><td>\n\nExecute the Jamf policy either with a policy ID or with a predefined action. Predefined actions are set by the DEX admins in dex\\_jamf\\_policy table. The service desk agents are able to select and run the predefined actions as they might not have access to Jamf policy IDs. Jamf policy has information about the application name, package version information, action to be performed \\(for example, install or uninstall\\), information on enabled on self service, defined in the Jamf server.**Note:** Jamf client must be installed on the device to execute the Jamf policy.\n\n</td></tr><tr><td>\n\nos.mac.action-clear-app-cache\n\n</td><td>\n\nauto\\_close = &lt;True/False whether you want the process to be closed before clearing the cache&gt;process\\_name = &lt;Process name&gt;\n\napp\\_name = &lt;Application name&gt;\n\ncache\\_path = &lt;Path to the cache folder&gt;\n\n</td><td>\n\nClears the application cache.**Note:** Cache path is supported for Zoom, Microsoft Outlook, and Microsoft Teams. Enter cache path without the path to the user. For example, if the cache is at path C:\\\\User\\\\&lt;UserName&gt;\\\\AppData\\\\Roaming\\\\Zoom\\\\data enter AppData\\\\Roaming\\\\Zoom\\\\data.\n\n</td></tr><tr><td>\n\nos.mac.action-zscaler-zpa-reconnect\n\n</td><td>\n\nNone\n\n</td><td>\n\nResolves Zscaler connectivity issues.\n\n</td></tr><tr><td>\n\nos.mac.action-restart-one-drive\n\n</td><td>\n\nNone\n\n</td><td>\n\nRestarts one drive on the end-user's machine.\n\n</td></tr><tr><td>\n\nos.mac.action-clear-google-chrome-browsing-data\n\n</td><td>\n\nremove\\_web\\_data = &lt;True/False whether you want to remove the web data&gt;\n\n</td><td>\n\nRemoves all the browsing data on Google Chrome from all the Google Chrome profiles.\n\n</td></tr><tr><td>\n\nos.mac.action-purge-recycle-bin\n\n</td><td>\n\nNone\n\n</td><td>\n\nPurging Recycle Bin will clear all the files in the recycle bin.\n\n</td></tr><tr><td>\n\nos.mac.action-reset-google-chrome-settings\n\n</td><td>\n\nNone\n\n</td><td>\n\nThis action clears the settings and removes all the installed Google Chrome extensions on all the Google Chrome profiles.\n\n</td></tr><tr><td>\n\nos.mac.action-toggle-power-mode\n\n</td><td>\n\npower\\_mode - Automatic, High power, Low power.\n\n</td><td>\n\nThis action toggles through different power modes in a user mac device.\n\n</td></tr><tr><td>\n\nos.mac.action-elevate-temporary-admin\n\n</td><td>\n\nduration\n\n user\\_id = ID of the user\n\n</td><td>\n\nElevates temporary admin access to users for a period of time to perform specific tasks without compromising on security.\n\n</td></tr></tbody>\n</table>**Parent Topic:**[DEX Content Playbook reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-service-management/digital-end-user-experience-dex/dex-content-playbook-reference.md)\n\n"}}