{"id":20541210,"url":"https://github.com/netways/check_exchange_powershell","last_synced_at":"2025-04-14T08:39:25.886Z","repository":{"id":148513212,"uuid":"148129315","full_name":"NETWAYS/check_exchange_powershell","owner":"NETWAYS","description":"Icinga check plugin for Microsoft Exchange Monitoring","archived":false,"fork":false,"pushed_at":"2023-05-17T06:46:33.000Z","size":27,"stargazers_count":15,"open_issues_count":0,"forks_count":4,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-27T22:11:48.460Z","etag":null,"topics":["exchange","icinga","monitoring","plugin"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NETWAYS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-10T09:13:51.000Z","updated_at":"2025-02-16T11:53:02.000Z","dependencies_parsed_at":"2023-09-17T08:15:46.262Z","dependency_job_id":null,"html_url":"https://github.com/NETWAYS/check_exchange_powershell","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_exchange_powershell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_exchange_powershell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_exchange_powershell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_exchange_powershell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NETWAYS","download_url":"https://codeload.github.com/NETWAYS/check_exchange_powershell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248848216,"owners_count":21171324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exchange","icinga","monitoring","plugin"],"created_at":"2024-11-16T01:20:20.550Z","updated_at":"2025-04-14T08:39:25.874Z","avatar_url":"https://github.com/NETWAYS.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Icinga Check Microsoft Exchange\n===============================\n\nThis is a collection of Powershell Scripts designed to check a Microsoft Exchange Setup from\nIcinga 2 with the agent running on the Exchange Windows Servers.\n\n## Checks\n\nFor `CheckCommand` definitions see [icinga2-commands.conf](icinga2-commands.conf).\n\n## Credentials\n\n```\nGet-Credential | Export-CliXml \".\\MailboxCredential.xml\"\n\n# Needs to be stored in:\n# $PSScriptRoot\\MailboxCredential.xml\n\n# Can be adjusted with the parameter 'CredentialPath'\n```\n\n### check_exchange_health\n\nChecks the server health of Microsoft Exchange by calling `Get-ServerHealth`\n\n```\nOK: All 159 scenarios are fine\n```\n\n### check_exchange_queues\n\n```\nOK: All 10 queues are fine\n[OK] EX01\\Submission: Ready, deferred (0), locked (0), messages (0)\n[OK] EX01\\Shadow\\6: Ready, deferred (0), locked (0), messages (32)\n[OK] EX01\\50: Ready, deferred (0), locked (0), messages (0)\n[OK] EX01\\Shadow\\3: Ready, deferred (0), locked (0), messages (355)\n[OK] EX01\\8: Ready, deferred (0), locked (0), messages (0)\n[OK] EX01\\Shadow\\7: Ready, deferred (0), locked (0), messages (33)\n[OK] EX01\\4: Ready, deferred (0), locked (0), messages (0)\n[OK] EX01\\Shadow\\51: Ready, deferred (0), locked (0), messages (1)\n[OK] EX01\\5: Ready, deferred (0), locked (0), messages (0)\n[OK] EX01\\Shadow\\58: Ready, deferred (0), locked (0), messages (1)\n| 'EX01_Submission::deferred'=0;5;10;0 'EX01_Submission::locked'=0;5;10;0 'EX01_Submission::count'=0;20;50;0 'EX01_Shadow_6::deferred'=0;5;10;0 'F\nR02641VMA_Shadow_6::locked'=0;5;10;0 'EX01_Shadow_6::count'=32;;;0 'EX01_50::deferred'=0;5;10;0 'EX01_50::locked'=0;5;10;0 'EX01_50::count'=0;20;5\n0;0 'EX01_Shadow_3::deferred'=0;5;10;0 'EX01_Shadow_3::locked'=0;5;10;0 'EX01_Shadow_3::count'=355;;;0 'EX01_8::deferred'=0;5;10;0 'EX01_8::\nlocked'=0;5;10;0 'EX01_8::count'=0;20;50;0 'EX01_Shadow_7::deferred'=0;5;10;0 'EX01_Shadow_7::locked'=0;5;10;0 'EX01_Shadow_7::count'=33;;;0 'FR02\n641VMA_4::deferred'=0;5;10;0 'EX01_4::locked'=0;5;10;0 'EX01_4::count'=0;20;50;0 'EX01_Shadow_51::deferred'=0;5;10;0 'EX01_Shadow_51::locked'=0;5;\n10;0 'EX01_Shadow_51::count'=1;;;0 'EX01_5::deferred'=0;5;10;0 'EX01_5::locked'=0;5;10;0 'EX01_5::count'=0;20;50;0 'EX01_Shadow_58::deferred\n'=0;5;10;0 'EX01_Shadow_58::locked'=0;5;10;0 'EX01_Shadow_58::count'=1;;;0\n```\n\n### check_exchange_mailbox_databases\n\nChecks the availability and health of Exchange Databases with `Get-MailboxDatabase`\n\n```\nOK: All 1 databases are fine\n[OK] Mailbox Database 123456\n```\n\n### check_exchange_webservices\n\nChecks the availablitity of EWS and other web services with `Test-OutlookWebServices`\n\n**Note:** This require mailbox credentials - see script help inside.\n\n```\nOK: All 4 scenarios are fine\n[OK] OfflineAddressBook: Success\n[OK] AvailabilityService: Success\n[OK] ExchangeWebServices: Success\n[OK] AutoDiscoverOutlookProvider: Success\n| 'OfflineAddressBook::latency'=74ms;500;1000;0 'AvailabilityService::latency'=62ms;500;1000;0 'ExchangeWebServices::latency'=32ms;500;1000;0 'AutoDiscoverOutlookProvider\n::latency'=98ms;500;1000;0\n```\n\n### check_exchange_edge_synchronization\n\nChecks the status of Exchange Edge Synchronization by calling `Get-EdgeSubscription` and `Test-EdgeSynchronization`\n\n```\nOK: All 2 Edge Synchronizations are fine\n[OK] EX01: Normal, sync 1 minutes old\n[OK] EX02: Normal, sync 1 minutes old\n| 'EX01::sync_age'=28s;300;600;0 'EX02::sync_age'=28s;300;600;0\n```\n\n## Known Issues\n\n### Import-Clixml\n\n```\nCommand: Get-Credential | Export-CliXml .\\MailboxCredential.xml\n-\u003e\nImport-Clixml : Key not valid for use in specified state\n```\n\nSolution: Needs to run as user \"SYSTEM\" (Example: via `PsExec`).\n\n## Contributing\n\nFeel free to ask questions and open issues. Feedback is always welcome and appreciated.\n\n## License\n\n    Copyright (C) 2018 Markus Frosch \u003cmarkus.frosch@netways.de\u003e\n\t              2018 NETWAYS GmbH \u003cinfo@netways.de\u003e\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetways%2Fcheck_exchange_powershell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetways%2Fcheck_exchange_powershell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetways%2Fcheck_exchange_powershell/lists"}