diff --git a/apps/microsoft/exchange/2010/local/mode/activesyncmailbox.pm b/apps/microsoft/exchange/local/mode/activesyncmailbox.pm similarity index 94% rename from apps/microsoft/exchange/2010/local/mode/activesyncmailbox.pm rename to apps/microsoft/exchange/local/mode/activesyncmailbox.pm index c1f42edf8..1fb8c4868 100644 --- a/apps/microsoft/exchange/2010/local/mode/activesyncmailbox.pm +++ b/apps/microsoft/exchange/local/mode/activesyncmailbox.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::activesyncmailbox; +package apps::microsoft::exchange::local::mode::activesyncmailbox; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::activesyncmailbox; +use centreon::common::powershell::exchange::activesyncmailbox; sub new { my ($class, %options) = @_; @@ -82,7 +82,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::activesyncmailbox::get_powershell( + my $ps = centreon::common::powershell::exchange::activesyncmailbox::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -117,7 +117,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::activesyncmailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); + centreon::common::powershell::exchange::activesyncmailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/mode/databases.pm b/apps/microsoft/exchange/local/mode/databases.pm similarity index 96% rename from apps/microsoft/exchange/2010/local/mode/databases.pm rename to apps/microsoft/exchange/local/mode/databases.pm index 588838e46..a3110463d 100644 --- a/apps/microsoft/exchange/2010/local/mode/databases.pm +++ b/apps/microsoft/exchange/local/mode/databases.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::databases; +package apps::microsoft::exchange::local::mode::databases; use base qw(centreon::plugins::templates::counter); @@ -26,8 +26,8 @@ use strict; use warnings; use centreon::plugins::misc; use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold_ng); -use centreon::common::powershell::exchange::2010::databases; -use apps::microsoft::exchange::2010::local::mode::resources::types qw($copystatus_contentindexstate); +use centreon::common::powershell::exchange::databases; +use apps::microsoft::exchange::local::mode::resources::types qw($copystatus_contentindexstate); use JSON::XS; sub custom_mailflow_latency_perfdata { @@ -269,6 +269,7 @@ sub new { 'command-options:s' => { name => 'command_options', default => '-InputFormat none -NoLogo -EncodedCommand' }, 'ps-exec-only' => { name => 'ps_exec_only' }, 'ps-display' => { name => 'ps_display' }, + 'ps-server-filter:s' => { name => 'ps_server_filter' }, 'ps-database-filter:s' => { name => 'ps_database_filter' }, 'ps-database-test-filter:s' => { name => 'ps_database_test_filter' } }); @@ -280,13 +281,14 @@ sub manage_selection { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::databases::get_powershell( + my $ps = centreon::common::powershell::exchange::databases::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, no_mailflow => $self->{option_results}->{no_mailflow}, no_mapi => $self->{option_results}->{no_mapi}, no_copystatus => $self->{option_results}->{no_copystatus}, + filter_server => $self->{option_results}->{ps_server_filter}, filter_database => $self->{option_results}->{ps_database_filter}, filter_database_test => $self->{option_results}->{ps_database_test_filter} ); @@ -411,6 +413,10 @@ Print powershell output. Display powershell script. +=item B<--ps-server-filter> + +Filter mailboxes by database server name (regexp can be used. In Powershell). + =item B<--ps-database-filter> Filter database (only wilcard '*' can be used. In Powershell). diff --git a/apps/microsoft/exchange/2010/local/mode/imapmailbox.pm b/apps/microsoft/exchange/local/mode/imapmailbox.pm similarity index 94% rename from apps/microsoft/exchange/2010/local/mode/imapmailbox.pm rename to apps/microsoft/exchange/local/mode/imapmailbox.pm index de557a894..285d82d50 100644 --- a/apps/microsoft/exchange/2010/local/mode/imapmailbox.pm +++ b/apps/microsoft/exchange/local/mode/imapmailbox.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::imapmailbox; +package apps::microsoft::exchange::local::mode::imapmailbox; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::imapmailbox; +use centreon::common::powershell::exchange::imapmailbox; sub new { my ($class, %options) = @_; @@ -81,7 +81,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::imapmailbox::get_powershell( + my $ps = centreon::common::powershell::exchange::imapmailbox::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -115,7 +115,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::imapmailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); + centreon::common::powershell::exchange::imapmailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/mode/listdatabases.pm b/apps/microsoft/exchange/local/mode/listdatabases.pm similarity index 91% rename from apps/microsoft/exchange/2010/local/mode/listdatabases.pm rename to apps/microsoft/exchange/local/mode/listdatabases.pm index 3d186148d..526e5baa3 100644 --- a/apps/microsoft/exchange/2010/local/mode/listdatabases.pm +++ b/apps/microsoft/exchange/local/mode/listdatabases.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::listdatabases; +package apps::microsoft::exchange::local::mode::listdatabases; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::listdatabases; +use centreon::common::powershell::exchange::listdatabases; sub new { my ($class, %options) = @_; @@ -57,7 +57,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::listdatabases::get_powershell( + my $ps = centreon::common::powershell::exchange::listdatabases::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -92,7 +92,7 @@ sub run { severity => 'OK', short_msg => 'List databases:' ); - centreon::common::powershell::exchange::2010::listdatabases::list($self, stdout => $stdout); + centreon::common::powershell::exchange::listdatabases::list($self, stdout => $stdout); } $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); @@ -109,7 +109,7 @@ sub disco_show { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::listdatabases::get_powershell( + my $ps = centreon::common::powershell::exchange::listdatabases::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -124,7 +124,7 @@ sub disco_show { command_path => $self->{option_results}->{command_path}, command_options => $self->{option_results}->{command_options} ); - centreon::common::powershell::exchange::2010::listdatabases::disco_show($self, stdout => $stdout); + centreon::common::powershell::exchange::listdatabases::disco_show($self, stdout => $stdout); } 1; diff --git a/apps/microsoft/exchange/local/mode/mailboxes.pm b/apps/microsoft/exchange/local/mode/mailboxes.pm new file mode 100644 index 000000000..85654d439 --- /dev/null +++ b/apps/microsoft/exchange/local/mode/mailboxes.pm @@ -0,0 +1,280 @@ +# +# Copyright 2020 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::microsoft::exchange::local::mode::mailboxes; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::plugins::misc; +use centreon::common::powershell::exchange::mailboxes; +use JSON::XS; + +sub prefix_users_output { + my ($self, %options) = @_; + + return 'Users mailbox '; +} + +sub prefix_folders_output { + my ($self, %options) = @_; + + return 'Public folders mailbox '; +} + +sub prefix_database_output { + my ($self, %options) = @_; + + return "Database '" . $options{instance_value}->{name} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'users', type => 0, cb_prefix_output => 'prefix_users_output', skipped_code => { -10 => 1 } }, + { name => 'publicfolders', type => 0, cb_prefix_output => 'prefix_folders_output', skipped_code => { -10 => 1 } }, + { name => 'databases', type => 1, cb_prefix_output => 'prefix_database_output', message_multiple => 'All databases are ok' } + ]; + + foreach (('users', 'publicfolders')) { + $self->{maps_counters}->{$_} = [ + { label => $_ . '-soft-limit', nlabel => 'mailboxes.' . $_ . '.soft.limit.count', set => { + key_values => [ { name => 'soft_limit' } ], + output_template => 'over soft limit: %s', + perfdatas => [ + { template => '%d', min => 0 } + ] + } + }, + { label => $_ . '-hard-limit', nlabel => 'mailboxes.' . $_ . '.hard.limit.count', set => { + key_values => [ { name => 'hard_limit' } ], + output_template => 'over hard limit: %s', + perfdatas => [ + { template => '%d', min => 0 } + ] + } + }, + { label => $_ . '-quota-unlimited', nlabel => 'mailboxes.' . $_ . '.quota.unlimited.count', set => { + key_values => [ { name => 'unlimited' } ], + output_template => 'unlimited quota: %s', + perfdatas => [ + { template => '%d', min => 0 } + ] + } + }, + { label => $_ . '-total', nlabel => 'mailboxes.' . $_ . '.total.count', set => { + key_values => [ { name => 'total' } ], + output_template => 'total: %s', + perfdatas => [ + { template => '%d', min => 0 } + ] + } + } + ]; + } + + $self->{maps_counters}->{databases} = [ + { label => 'database-mailboxes-total', nlabel => 'database.mailboxes.total.count', set => { + key_values => [ { name => 'mailboxes' } ], + output_template => 'total mailboxes: %s', + perfdatas => [ + { template => '%d', min => 0, label_extra_instance => 1 } + ] + } + } + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1); + bless $self, $class; + + $options{options}->add_options(arguments => { + 'remote-host:s' => { name => 'remote_host' }, + 'remote-user:s' => { name => 'remote_user' }, + 'remote-password:s' => { name => 'remote_password' }, + 'no-ps' => { name => 'no_ps' }, + 'timeout:s' => { name => 'timeout', default => 50 }, + 'command:s' => { name => 'command', default => 'powershell.exe' }, + 'command-path:s' => { name => 'command_path' }, + 'command-options:s' => { name => 'command_options', default => '-InputFormat none -NoLogo -EncodedCommand' }, + 'ps-exec-only' => { name => 'ps_exec_only' }, + 'ps-display' => { name => 'ps_display' }, + 'ps-server:s' => { name => 'ps_server' }, + 'ps-database:s' => { name => 'ps_database' }, + 'ps-match-database:s' => { name => 'ps_match_database' }, + 'ps-match-server:s' => { name => 'ps_match_server' } + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + if (!defined($self->{option_results}->{no_ps})) { + my $ps = centreon::common::powershell::exchange::mailboxes::get_powershell( + remote_host => $self->{option_results}->{remote_host}, + remote_user => $self->{option_results}->{remote_user}, + remote_password => $self->{option_results}->{remote_password}, + ps_server => $self->{option_results}->{ps_server}, + ps_database => $self->{option_results}->{ps_database}, + ps_match_database => $self->{option_results}->{ps_match_database}, + ps_match_server => $self->{option_results}->{ps_match_server} + ); + if (defined($self->{option_results}->{ps_display})) { + $self->{output}->output_add( + severity => 'OK', + short_msg => $ps + ); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); + } + + $self->{option_results}->{command_options} .= " " . centreon::plugins::misc::powershell_encoded($ps); + } + + my ($stdout) = centreon::plugins::misc::execute( + output => $self->{output}, + options => { timeout => $self->{option_results}->{timeout} }, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options} + ); + if (defined($self->{option_results}->{ps_exec_only})) { + $self->{output}->output_add( + severity => 'OK', + short_msg => $stdout + ); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); + } + + my $decoded; + eval { + $decoded = JSON::XS->new->decode($stdout); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + $self->{users} = { + total => $decoded->{users}->{total}, + soft_limit => $decoded->{users}->{warning_quota}, + hard_limit => $decoded->{users}->{over_quota}, + unlimited => $decoded->{users}->{unlimited} + }; + $self->{publicfolders} = { + total => $decoded->{public_folders}->{total}, + soft_limit => $decoded->{public_folders}->{warning_quota}, + hard_limit => $decoded->{public_folders}->{over_quota}, + unlimited => $decoded->{public_folders}->{unlimited} + }; + + $self->{databases} = {}; + foreach my $name (keys %{$decoded->{group_by_databases}}) { + $self->{databases}->{$name} = { + name => $name, + mailboxes => $decoded->{group_by_databases}->{$name} + }; + } +} + +1; + +__END__ + +=head1 MODE + +Check mailboxes (quota and user mailboxes by database). + +=over 8 + +=item B<--remote-host> + +Open a session to the remote-host (fully qualified host name). --remote-user and --remote-password are optional + +=item B<--remote-user> + +Open a session to the remote-host with authentication. This also needs --remote-host and --remote-password. + +=item B<--remote-password> + +Open a session to the remote-host with authentication. This also needs --remote-user and --remote-host. + +=item B<--timeout> + +Set timeout time for command execution (Default: 50 sec) + +=item B<--no-ps> + +Don't encode powershell. To be used with --command and 'type' command. + +=item B<--command> + +Command to get information (Default: 'powershell.exe'). +Can be changed if you have output in a file. To be used with --no-ps option!!! + +=item B<--command-path> + +Command path (Default: none). + +=item B<--command-options> + +Command options (Default: '-InputFormat none -NoLogo -EncodedCommand'). + +=item B<--ps-exec-only> + +Print powershell output. + +=item B<--ps-display> + +Display powershell script. + +=item B<--ps-match-server> + +Filter mailboxes by server name (regexp can be used. In Powershell). + +=item B<--ps-match-database> + +Filter mailboxes by database name (regexp can be used. In Powershell). + +=item B<--ps-server> + +Select mailboxes by an uniq server name (In Powershell). + +=item B<--ps-database> + +Select mailboxes by an uniq database name (In Powershell). + +=item B<--warning-*> B<--critical-*> + +Thresholds. +Can be: 'users-soft-limit', 'users-hard-limit', 'users-quota-unlimited', 'users-total', +'publicfolders-soft-limit', 'publicfolders-hard-limit', 'publicfolders-quota-unlimited', 'publicfolders-total' +'database-mailboxes-total'. + +=back + +=cut diff --git a/apps/microsoft/exchange/2010/local/mode/mapimailbox.pm b/apps/microsoft/exchange/local/mode/mapimailbox.pm similarity index 93% rename from apps/microsoft/exchange/2010/local/mode/mapimailbox.pm rename to apps/microsoft/exchange/local/mode/mapimailbox.pm index 501eb12d1..38b915e0a 100644 --- a/apps/microsoft/exchange/2010/local/mode/mapimailbox.pm +++ b/apps/microsoft/exchange/local/mode/mapimailbox.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::mapimailbox; +package apps::microsoft::exchange::local::mode::mapimailbox; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::mapimailbox; +use centreon::common::powershell::exchange::mapimailbox; sub new { my ($class, %options) = @_; @@ -76,7 +76,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::mapimailbox::get_powershell( + my $ps = centreon::common::powershell::exchange::mapimailbox::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -109,7 +109,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::mapimailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); + centreon::common::powershell::exchange::mapimailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/mode/outlookwebservices.pm b/apps/microsoft/exchange/local/mode/outlookwebservices.pm similarity index 93% rename from apps/microsoft/exchange/2010/local/mode/outlookwebservices.pm rename to apps/microsoft/exchange/local/mode/outlookwebservices.pm index e474eac07..b8c1dea2a 100644 --- a/apps/microsoft/exchange/2010/local/mode/outlookwebservices.pm +++ b/apps/microsoft/exchange/local/mode/outlookwebservices.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::outlookwebservices; +package apps::microsoft::exchange::local::mode::outlookwebservices; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::outlookwebservices; +use centreon::common::powershell::exchange::outlookwebservices; sub new { my ($class, %options) = @_; @@ -77,7 +77,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::outlookwebservices::get_powershell( + my $ps = centreon::common::powershell::exchange::outlookwebservices::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -111,7 +111,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::outlookwebservices::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); + centreon::common::powershell::exchange::outlookwebservices::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/mode/owamailbox.pm b/apps/microsoft/exchange/local/mode/owamailbox.pm similarity index 94% rename from apps/microsoft/exchange/2010/local/mode/owamailbox.pm rename to apps/microsoft/exchange/local/mode/owamailbox.pm index fd2708263..6276bafec 100644 --- a/apps/microsoft/exchange/2010/local/mode/owamailbox.pm +++ b/apps/microsoft/exchange/local/mode/owamailbox.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::owamailbox; +package apps::microsoft::exchange::local::mode::owamailbox; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::owamailbox; +use centreon::common::powershell::exchange::owamailbox; sub new { my ($class, %options) = @_; @@ -87,7 +87,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::owamailbox::get_powershell( + my $ps = centreon::common::powershell::exchange::owamailbox::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password}, @@ -123,7 +123,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::owamailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); + centreon::common::powershell::exchange::owamailbox::check($self, stdout => $stdout, mailbox => $self->{option_results}->{mailbox}); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/mode/queues.pm b/apps/microsoft/exchange/local/mode/queues.pm similarity index 96% rename from apps/microsoft/exchange/2010/local/mode/queues.pm rename to apps/microsoft/exchange/local/mode/queues.pm index 67f1687c7..dc131597e 100644 --- a/apps/microsoft/exchange/2010/local/mode/queues.pm +++ b/apps/microsoft/exchange/local/mode/queues.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::queues; +package apps::microsoft::exchange::local::mode::queues; use base qw(centreon::plugins::templates::counter); @@ -26,8 +26,8 @@ use strict; use warnings; use centreon::plugins::misc; use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold_ng); -use centreon::common::powershell::exchange::2010::queues; -use apps::microsoft::exchange::2010::local::mode::resources::types qw($queue_status $queue_delivery_type); +use centreon::common::powershell::exchange::queues; +use apps::microsoft::exchange::local::mode::resources::types qw($queue_status $queue_delivery_type); use JSON::XS; sub custom_status_output { @@ -98,7 +98,7 @@ sub manage_selection { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::queues::get_powershell( + my $ps = centreon::common::powershell::exchange::queues::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password} diff --git a/apps/microsoft/exchange/2010/local/mode/replicationhealth.pm b/apps/microsoft/exchange/local/mode/replicationhealth.pm similarity index 93% rename from apps/microsoft/exchange/2010/local/mode/replicationhealth.pm rename to apps/microsoft/exchange/local/mode/replicationhealth.pm index 20ccf8669..08d397e8c 100644 --- a/apps/microsoft/exchange/2010/local/mode/replicationhealth.pm +++ b/apps/microsoft/exchange/local/mode/replicationhealth.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::replicationhealth; +package apps::microsoft::exchange::local::mode::replicationhealth; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::replicationhealth; +use centreon::common::powershell::exchange::replicationhealth; sub new { my ($class, %options) = @_; @@ -71,7 +71,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::replicationhealth::get_powershell( + my $ps = centreon::common::powershell::exchange::replicationhealth::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password} @@ -103,7 +103,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::replicationhealth::check($self, stdout => $stdout); + centreon::common::powershell::exchange::replicationhealth::check($self, stdout => $stdout); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/mode/resources/types.pm b/apps/microsoft/exchange/local/mode/resources/types.pm similarity index 97% rename from apps/microsoft/exchange/2010/local/mode/resources/types.pm rename to apps/microsoft/exchange/local/mode/resources/types.pm index bc662ed1f..f28c087f6 100644 --- a/apps/microsoft/exchange/2010/local/mode/resources/types.pm +++ b/apps/microsoft/exchange/local/mode/resources/types.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::resources::types; +package apps::microsoft::exchange::local::mode::resources::types; use strict; use warnings; diff --git a/apps/microsoft/exchange/2010/local/mode/services.pm b/apps/microsoft/exchange/local/mode/services.pm similarity index 94% rename from apps/microsoft/exchange/2010/local/mode/services.pm rename to apps/microsoft/exchange/local/mode/services.pm index 64ac0c019..d4028851c 100644 --- a/apps/microsoft/exchange/2010/local/mode/services.pm +++ b/apps/microsoft/exchange/local/mode/services.pm @@ -18,14 +18,14 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::mode::services; +package apps::microsoft::exchange::local::mode::services; use base qw(centreon::plugins::mode); use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::services; +use centreon::common::powershell::exchange::services; sub new { my ($class, %options) = @_; @@ -71,7 +71,7 @@ sub run { my ($self, %options) = @_; if (!defined($self->{option_results}->{no_ps})) { - my $ps = centreon::common::powershell::exchange::2010::services::get_powershell( + my $ps = centreon::common::powershell::exchange::services::get_powershell( remote_host => $self->{option_results}->{remote_host}, remote_user => $self->{option_results}->{remote_user}, remote_password => $self->{option_results}->{remote_password} @@ -103,7 +103,7 @@ sub run { $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } - centreon::common::powershell::exchange::2010::services::check($self, stdout => $stdout); + centreon::common::powershell::exchange::services::check($self, stdout => $stdout); $self->{output}->display(); $self->{output}->exit(); diff --git a/apps/microsoft/exchange/2010/local/plugin.pm b/apps/microsoft/exchange/local/plugin.pm similarity index 52% rename from apps/microsoft/exchange/2010/local/plugin.pm rename to apps/microsoft/exchange/local/plugin.pm index a5d056f60..8e7fba9f7 100644 --- a/apps/microsoft/exchange/2010/local/plugin.pm +++ b/apps/microsoft/exchange/local/plugin.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package apps::microsoft::exchange::2010::local::plugin; +package apps::microsoft::exchange::local::plugin; use strict; use warnings; @@ -31,16 +31,17 @@ sub new { $self->{version} = '0.1'; $self->{modes} = { - 'activesync-mailbox' => 'apps::microsoft::exchange::2010::local::mode::activesyncmailbox', - 'databases' => 'apps::microsoft::exchange::2010::local::mode::databases', - 'list-databases' => 'apps::microsoft::exchange::2010::local::mode::listdatabases', - 'imap-mailbox' => 'apps::microsoft::exchange::2010::local::mode::imapmailbox', - 'mapi-mailbox' => 'apps::microsoft::exchange::2010::local::mode::mapimailbox', - 'outlook-webservices' => 'apps::microsoft::exchange::2010::local::mode::outlookwebservices', - 'owa-mailbox' => 'apps::microsoft::exchange::2010::local::mode::owamailbox', - 'queues' => 'apps::microsoft::exchange::2010::local::mode::queues', - 'replication-health' => 'apps::microsoft::exchange::2010::local::mode::replicationhealth', - 'services' => 'apps::microsoft::exchange::2010::local::mode::services' + 'activesync-mailbox' => 'apps::microsoft::exchange::local::mode::activesyncmailbox', + 'databases' => 'apps::microsoft::exchange::local::mode::databases', + 'list-databases' => 'apps::microsoft::exchange::local::mode::listdatabases', + 'imap-mailbox' => 'apps::microsoft::exchange::local::mode::imapmailbox', + 'mailboxes' => 'apps::microsoft::exchange::local::mode::mailboxes', + 'mapi-mailbox' => 'apps::microsoft::exchange::local::mode::mapimailbox', + 'outlook-webservices' => 'apps::microsoft::exchange::local::mode::outlookwebservices', + 'owa-mailbox' => 'apps::microsoft::exchange::local::mode::owamailbox', + 'queues' => 'apps::microsoft::exchange::local::mode::queues', + 'replication-health' => 'apps::microsoft::exchange::local::mode::replicationhealth', + 'services' => 'apps::microsoft::exchange::local::mode::services' }; return $self; diff --git a/centreon/common/powershell/exchange/2010/activesyncmailbox.pm b/centreon/common/powershell/exchange/activesyncmailbox.pm similarity index 93% rename from centreon/common/powershell/exchange/2010/activesyncmailbox.pm rename to centreon/common/powershell/exchange/activesyncmailbox.pm index d63ef4a75..978b925e0 100644 --- a/centreon/common/powershell/exchange/2010/activesyncmailbox.pm +++ b/centreon/common/powershell/exchange/activesyncmailbox.pm @@ -18,18 +18,18 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::activesyncmailbox; +package centreon::common::powershell::exchange::activesyncmailbox; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; my $no_trust_ssl = (defined($options{no_trust_ssl})) ? '' : '-TrustAnySSLCertificate'; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -116,6 +116,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 activesync on a specific mailbox. +Method to check Exchange activesync on a specific mailbox. =cut diff --git a/centreon/common/powershell/exchange/2010/databases.pm b/centreon/common/powershell/exchange/databases.pm similarity index 85% rename from centreon/common/powershell/exchange/2010/databases.pm rename to centreon/common/powershell/exchange/databases.pm index 5e8d1d52e..cd542c4be 100644 --- a/centreon/common/powershell/exchange/2010/databases.pm +++ b/centreon/common/powershell/exchange/databases.pm @@ -18,11 +18,11 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::databases; +package centreon::common::powershell::exchange::databases; use strict; use warnings; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; use centreon::common::powershell::functions; sub get_powershell { @@ -32,7 +32,7 @@ sub get_powershell { my $no_mapi = (defined($options{no_mapi})) ? 1 : 0; my $no_copystatus = (defined($options{no_copystatus})) ? 1 : 0; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= centreon::common::powershell::functions::escape_jsonstring(%options); $ps .= centreon::common::powershell::functions::convert_to_json(%options); @@ -61,19 +61,29 @@ try { $items = New-Object System.Collections.Generic.List[Hashtable]; Foreach ($DB in $MountedDB) { $item = @{} +'; + if (defined($options{filter_server}) && $options{filter_server} ne '') { + $ps .= ' + if (!($DB.Server.Name -match "' . $options{filter_server} . '")) { + continue + } +'; + } + + $ps .= ' $item.database = $DB.Name $item.server = $DB.Server.Name $item.mounted = $DB.Mounted $item.size = $DB.DatabaseSize.ToBytes().ToString() $item.asize = $DB.AvailableNewMailboxSpace.ToBytes().ToString() '; - + if (defined($options{filter_database_test}) && $options{filter_database_test} ne '') { $ps .= ' - if (!($DB.Name -match "' . $options{filter_database_test} . '")) { - continue - } + if (!($DB.Name -match "' . $options{filter_database_test} . '")) { + continue + } '; } @@ -127,6 +137,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 databases. +Method to check Exchange databases. =cut diff --git a/centreon/common/powershell/exchange/2010/imapmailbox.pm b/centreon/common/powershell/exchange/imapmailbox.pm similarity index 88% rename from centreon/common/powershell/exchange/2010/imapmailbox.pm rename to centreon/common/powershell/exchange/imapmailbox.pm index c2f83f1ad..29cf7e102 100644 --- a/centreon/common/powershell/exchange/2010/imapmailbox.pm +++ b/centreon/common/powershell/exchange/imapmailbox.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::imapmailbox; +package centreon::common::powershell::exchange::imapmailbox; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -96,9 +96,11 @@ sub check { } if ($self->{data}->{latency} =~ /^(\d+)/) { - $self->{output}->perfdata_add(label => $self->{data}->{scenario}, unit => 's', - value => sprintf("%.3f", $1 / 1000), - min => 0); + $self->{output}->perfdata_add( + label => $self->{data}->{scenario}, unit => 's', + value => sprintf("%.3f", $1 / 1000), + min => 0 + ); } } @@ -114,6 +116,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 imap on a specific mailbox. +Method to check Exchange 2010 on a specific mailbox. =cut diff --git a/centreon/common/powershell/exchange/2010/listdatabases.pm b/centreon/common/powershell/exchange/listdatabases.pm similarity index 79% rename from centreon/common/powershell/exchange/2010/listdatabases.pm rename to centreon/common/powershell/exchange/listdatabases.pm index d1011d50a..86ef87902 100644 --- a/centreon/common/powershell/exchange/2010/listdatabases.pm +++ b/centreon/common/powershell/exchange/listdatabases.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::listdatabases; +package centreon::common::powershell::exchange::listdatabases; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' # Check to make sure all databases are mounted @@ -89,12 +89,16 @@ sub disco_show { foreach my $line (split /\n/, $options{stdout}) { next if ($line !~ /^\[name=(.*?)\]\[server=(.*?)\]\[mounted=(.*?)\]\[size=(.*?)\]\[asize=(.*?)\]/); - my ($database, $server, $mounted, $size, $asize) = (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), - centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); + my ($database, $server, $mounted, $size, $asize) = ( + centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), + centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5) + ); - $self->{output}->add_disco_entry(name => $database, - server => $server, - mounted => $mounted); + $self->{output}->add_disco_entry( + name => $database, + server => $server, + mounted => $mounted + ); } } @@ -104,6 +108,6 @@ __END__ =head1 DESCRIPTION -Method to list Exchange 2010 databases. +Method to list Exchange databases. =cut diff --git a/centreon/common/powershell/exchange/mailboxes.pm b/centreon/common/powershell/exchange/mailboxes.pm new file mode 100644 index 000000000..fab9f3540 --- /dev/null +++ b/centreon/common/powershell/exchange/mailboxes.pm @@ -0,0 +1,169 @@ +# +# Copyright 2020 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package centreon::common::powershell::exchange::mailboxes; + +use strict; +use warnings; +use centreon::common::powershell::exchange::powershell; +use centreon::common::powershell::functions; + +sub get_powershell { + my (%options) = @_; + + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); + $ps .= centreon::common::powershell::functions::escape_jsonstring(%options); + $ps .= centreon::common::powershell::functions::convert_to_json(%options); + + my $extra_matches = ''; + if (defined($options{ps_match_server}) && $options{ps_match_server} ne '') { + $extra_matches .= ' | ?{$_.ServerName -match "' . $options{ps_match_server} . '"}'; + } + if (defined($options{ps_match_database}) && $options{ps_match_database} ne '') { + $extra_matches .= ' | ?{$_.Database -match "' . $options{ps_match_database} . '"}'; + } + + $ps .= ' +try { + $ErrorActionPreference = "Stop" +'; + if (defined($options{ps_database}) && $options{ps_database} ne '') { + $ps .= ' + $mailboxes = Get-Mailbox -ResultSize unlimited -Database "' . $options{ps_database} . '" + $folder_mailboxes = Get-Mailbox -PublicFolder:$true -ResultSize unlimited -Database "' . $options{ps_database} . '" ' . $extra_matches .' +'; + } elsif (defined($options{ps_server}) && $options{ps_server} ne '') { + $ps .= ' + $mailboxes = Get-Mailbox -ResultSize unlimited -Server "' . $options{ps_server} . '" + $folder_mailboxes = Get-Mailbox -PublicFolder:$true -ResultSize unlimited -Server "' . $options{ps_server} . '" ' . $extra_matches .' +'; + } else { + $ps .= ' + $mailboxes = Get-Mailbox -ResultSize unlimited ' . $extra_matches . ' + $folder_mailboxes = Get-Mailbox -PublicFolder:$true -ResultSize unlimited ' . $extra_matches . ' +'; + } + + $ps .= ' + $result = @{} + $result.users = @{ + total = 0; + over_quota = 0; + warning_quota = 0; + unlimited = 0; + over_quota_details = New-Object System.Collections.Generic.List[Hashtable]; + warning_quota_details = New-Object System.Collections.Generic.List[Hashtable]; + unlimited_details = New-Object System.Collections.Generic.List[Hashtable] + } + $result.public_folders = @{ + total = 0; + over_quota = 0; + warning_quota = 0; + unlimited = 0; + over_quota_details = New-Object System.Collections.Generic.List[Hashtable]; + warning_quota_details = New-Object System.Collections.Generic.List[Hashtable]; + unlimited_details = New-Object System.Collections.Generic.List[Hashtable] + } + $result.group_by_databases = @{} + foreach ($mailbox in $mailboxes) { + $item = @{} + + $detail = @{ + database = $mailbox.Database.Name; + server_name = $mailbox.ServerName; + name = $mailbox.Name + } + if (-not $result.group_by_databases[$mailbox.Database]) { + $result.group_by_databases[$mailbox.Database] = 0 + } + $result.group_by_databases[$mailbox.Database]++ + $result.users.total++ + if ($mailbox.ProhibitSendReceiveQuota -eq "unlimited" -and $mailbox.ProhibitSendQuota -eq "unlimited") { + $result.users.unlimited++ + $result.users.unlimited_details.Add($detail) + } else { + $stat = get-mailboxStatistics -Identity $mailbox.Identity -ErrorAction SilentlyContinue + if ($stat) { + $size_bytes = $stat.TotalItemSize.Value.ToBytes() + if ($mailbox.ProhibitSendQuota -ne "unlimited" -and $size_bytes > $mailbox.ProhibitSendQuota.Value.ToBytes()) { + $result.users.over_quota++ + $result.users.over_quota_details.Add($detail) + } elseif ($mailbox.ProhibitSendReceiveQuota -ne "unlimited" -and $size_bytes > $mailbox.ProhibitSendReceiveQuota.Value.ToBytes()) { + $result.users.over_quota++ + $result.users.over_quota_details.Add($detail) + } elseif ($mailbox.issueWarningQuota -ne "unlimited" -and $size_bytes > $mailbox.issueWarningQuota.Value.ToBytes()) { + $result.users.warning_quota++ + $result.users.warning_quota_details.Add($detail) + } + } + } + } + + foreach ($mailbox in $folder_mailboxes) { + $item = @{} + + $detail = @{ + database = $mailbox.Database.Name; + server_name = $mailbox.ServerName; + name = $mailbox.Name + } + $result.public_folders.total++ + if ($mailbox.ProhibitSendReceiveQuota -eq "unlimited" -and $mailbox.ProhibitSendQuota -eq "unlimited") { + $result.public_folders.unlimited++ + $result.public_folders.unlimited_details.Add($detail) + } else { + $stat = get-mailboxStatistics -Identity $mailbox.Identity -ErrorAction SilentlyContinue + if ($stat) { + $size_bytes = $stat.TotalItemSize.Value.ToBytes() + if ($mailbox.ProhibitSendQuota -ne "unlimited" -and $size_bytes > $mailbox.ProhibitSendQuota.Value.ToBytes()) { + $result.public_folders.over_quota++ + $result.public_folders.over_quota_details.Add($detail) + } elseif ($mailbox.ProhibitSendReceiveQuota -ne "unlimited" -and $size_bytes > $mailbox.ProhibitSendReceiveQuota.Value.ToBytes()) { + $result.public_folders.over_quota++ + $result.public_folders.over_quota_details.Add($detail) + } elseif ($mailbox.issueWarningQuota -ne "unlimited" -and $size_bytes > $mailbox.issueWarningQuota.Value.ToBytes()) { + $result.public_folders.warning_quota++ + $result.public_folders.warning_quota_details.Add($detail) + } + } + } + } + + $jsonString = $result | ConvertTo-JSON-20 + Write-Host $jsonString + exit 0 +} catch { + Write-Host $Error[0].Exception + exit 1 +} +'; + + return $ps; +} + +1; + +__END__ + +=head1 DESCRIPTION + +Method to check Exchange mailboxes. + +=cut diff --git a/centreon/common/powershell/exchange/2010/mapimailbox.pm b/centreon/common/powershell/exchange/mapimailbox.pm similarity index 92% rename from centreon/common/powershell/exchange/2010/mapimailbox.pm rename to centreon/common/powershell/exchange/mapimailbox.pm index cb2ef9ca7..2c3605268 100644 --- a/centreon/common/powershell/exchange/2010/mapimailbox.pm +++ b/centreon/common/powershell/exchange/mapimailbox.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::mapimailbox; +package centreon::common::powershell::exchange::mapimailbox; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -98,6 +98,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 mapi connection on a specific mailbox. +Method to check Exchange mapi connection on a specific mailbox. =cut diff --git a/centreon/common/powershell/exchange/2010/outlookwebservices.pm b/centreon/common/powershell/exchange/outlookwebservices.pm similarity index 92% rename from centreon/common/powershell/exchange/2010/outlookwebservices.pm rename to centreon/common/powershell/exchange/outlookwebservices.pm index 83543a3c3..5763a7865 100644 --- a/centreon/common/powershell/exchange/2010/outlookwebservices.pm +++ b/centreon/common/powershell/exchange/outlookwebservices.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::outlookwebservices; +package centreon::common::powershell::exchange::outlookwebservices; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -116,6 +116,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 outlook autodiscovery webservices. +Method to check Exchange outlook autodiscovery webservices. =cut diff --git a/centreon/common/powershell/exchange/2010/owamailbox.pm b/centreon/common/powershell/exchange/owamailbox.pm similarity index 93% rename from centreon/common/powershell/exchange/2010/owamailbox.pm rename to centreon/common/powershell/exchange/owamailbox.pm index c53a172ed..2a6319c83 100644 --- a/centreon/common/powershell/exchange/2010/owamailbox.pm +++ b/centreon/common/powershell/exchange/owamailbox.pm @@ -18,18 +18,18 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::owamailbox; +package centreon::common::powershell::exchange::owamailbox; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; my $no_trust_ssl = (defined($options{no_trust_ssl})) ? '' : '-TrustAnySSLCertificate'; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -114,6 +114,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 owa connection on a specific mailbox. +Method to check Exchange owa connection on a specific mailbox. =cut diff --git a/centreon/common/powershell/exchange/2010/powershell.pm b/centreon/common/powershell/exchange/powershell.pm similarity index 98% rename from centreon/common/powershell/exchange/2010/powershell.pm rename to centreon/common/powershell/exchange/powershell.pm index aed12b896..77fdc8a6f 100644 --- a/centreon/common/powershell/exchange/2010/powershell.pm +++ b/centreon/common/powershell/exchange/powershell.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::powershell; +package centreon::common::powershell::exchange::powershell; use strict; use warnings; diff --git a/centreon/common/powershell/exchange/2010/queues.pm b/centreon/common/powershell/exchange/queues.pm similarity index 87% rename from centreon/common/powershell/exchange/2010/queues.pm rename to centreon/common/powershell/exchange/queues.pm index 3819f6511..b4085ee8b 100644 --- a/centreon/common/powershell/exchange/2010/queues.pm +++ b/centreon/common/powershell/exchange/queues.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::queues; +package centreon::common::powershell::exchange::queues; use strict; use warnings; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; use centreon::common::powershell::functions; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= centreon::common::powershell::functions::escape_jsonstring(%options); $ps .= centreon::common::powershell::functions::convert_to_json(%options); @@ -69,6 +69,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 queues. +Method to check Exchange queues. =cut diff --git a/centreon/common/powershell/exchange/2010/replicationhealth.pm b/centreon/common/powershell/exchange/replicationhealth.pm similarity index 93% rename from centreon/common/powershell/exchange/2010/replicationhealth.pm rename to centreon/common/powershell/exchange/replicationhealth.pm index a6adf432a..29ea1e36d 100644 --- a/centreon/common/powershell/exchange/2010/replicationhealth.pm +++ b/centreon/common/powershell/exchange/replicationhealth.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::replicationhealth; +package centreon::common::powershell::exchange::replicationhealth; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -102,6 +102,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 queues. +Method to check Exchange queues. =cut diff --git a/centreon/common/powershell/exchange/2010/services.pm b/centreon/common/powershell/exchange/services.pm similarity index 92% rename from centreon/common/powershell/exchange/2010/services.pm rename to centreon/common/powershell/exchange/services.pm index 7e590e147..22a2eb934 100644 --- a/centreon/common/powershell/exchange/2010/services.pm +++ b/centreon/common/powershell/exchange/services.pm @@ -18,17 +18,17 @@ # limitations under the License. # -package centreon::common::powershell::exchange::2010::services; +package centreon::common::powershell::exchange::services; use strict; use warnings; use centreon::plugins::misc; -use centreon::common::powershell::exchange::2010::powershell; +use centreon::common::powershell::exchange::powershell; sub get_powershell { my (%options) = @_; - my $ps = centreon::common::powershell::exchange::2010::powershell::powershell_init(%options); + my $ps = centreon::common::powershell::exchange::powershell::powershell_init(%options); $ps .= ' try { @@ -104,6 +104,6 @@ __END__ =head1 DESCRIPTION -Method to check Exchange 2010 services running or not running. +Method to check Exchange services running or not running. =cut diff --git a/doc/en/user/guide.rst b/doc/en/user/guide.rst index 8b4c70cd9..5e052b53a 100644 --- a/doc/en/user/guide.rst +++ b/doc/en/user/guide.rst @@ -621,12 +621,6 @@ We exclude the module ``IO::Socket::INET6`` (Perl 5.14 has the full set of IPv6 -M Net::FTPSSL ^ -M Authen::NTLM ^ -M JSON::XS ^ - -M centreon::plugins::script ^ - -M centreon::plugins::backend::http::lwp ^ - -M centreon::plugins::backend::http::curl ^ - -M centreon::plugins::backend::http::useragent ^ - -M centreon::plugins::backend::http::curlconstants ^ - -M centreon::plugins::alternative::Getopt ^ -M apps::backup::netbackup::local::plugin ^ -M apps::backup::netbackup::local::mode::dedupstatus ^ -M apps::backup::netbackup::local::mode::drivecleaning ^ @@ -637,66 +631,78 @@ We exclude the module ``IO::Socket::INET6`` (Perl 5.14 has the full set of IPv6 -M apps::backup::veeam::local::plugin ^ -M apps::backup::veeam::local::mode::jobstatus ^ -M apps::backup::veeam::local::mode::listjobs ^ - -M apps::activedirectory::local::plugin ^ - -M apps::activedirectory::local::mode::dcdiag ^ - -M apps::activedirectory::local::mode::dfsrbacklog ^ - -M apps::activedirectory::local::mode::netdom ^ + -M apps::backup::veeam::local::mode::tapejobs ^ + -M apps::centreon::local::plugin ^ + -M apps::centreon::local::mode::downtimetrap ^ + -M apps::centreon::local::mode::centreonpluginsversion ^ -M apps::citrix::local::plugin ^ -M apps::citrix::local::mode::license ^ -M apps::citrix::local::mode::session ^ -M apps::citrix::local::mode::zone ^ -M apps::citrix::local::mode::folder ^ - -M apps::iis::local::plugin ^ - -M apps::iis::local::mode::listapplicationpools ^ - -M apps::iis::local::mode::applicationpoolstate ^ - -M apps::iis::local::mode::listsites ^ - -M apps::iis::local::mode::webservicestatistics ^ - -M apps::exchange::2010::local::plugin ^ - -M apps::exchange::2010::local::mode::activesyncmailbox ^ - -M apps::exchange::2010::local::mode::databases ^ - -M apps::exchange::2010::local::mode::listdatabases ^ - -M apps::exchange::2010::local::mode::imapmailbox ^ - -M apps::exchange::2010::local::mode::mapimailbox ^ - -M apps::exchange::2010::local::mode::outlookwebservices ^ - -M apps::exchange::2010::local::mode::owamailbox ^ - -M apps::exchange::2010::local::mode::queues ^ - -M apps::exchange::2010::local::mode::replicationhealth ^ - -M apps::exchange::2010::local::mode::services ^ - -M centreon::common::powershell::exchange::2010::powershell ^ - -M apps::cluster::mscs::local::plugin ^ - -M apps::cluster::mscs::local::mode::listnodes ^ - -M apps::cluster::mscs::local::mode::listresources ^ - -M apps::cluster::mscs::local::mode::networkstatus ^ - -M apps::cluster::mscs::local::mode::nodestatus ^ - -M apps::cluster::mscs::local::mode::resourcestatus ^ - -M apps::cluster::mscs::local::mode::resourcegroupstatus ^ - -M os::windows::local::plugin ^ - -M os::windows::local::mode::cmdreturn ^ - -M os::windows::local::mode::ntp ^ - -M os::windows::local::mode::pendingreboot ^ - -M os::windows::local::mode::sessions ^ - -M os::windows::local::mode::liststorages ^ - -M centreon::common::powershell::windows::liststorages ^ - -M storage::dell::compellent::local::plugin ^ - -M storage::dell::compellent::local::mode::hbausage ^ - -M storage::dell::compellent::local::mode::volumeusage ^ - -M hardware::devices::safenet::hsm::protecttoolkit::plugin ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::hardware ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::temperature ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::hwstatus ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::memory ^ - -M apps::centreon::local::plugin ^ - -M apps::centreon::local::mode::downtimetrap ^ - -M apps::centreon::local::mode::centreonpluginsversion ^ - -M apps::hyperv::2012::local::plugin ^ - -M apps::hyperv::2012::local::mode::listnodevms ^ - -M apps::hyperv::2012::local::mode::scvmmintegrationservice ^ - -M apps::hyperv::2012::local::mode::scvmmsnapshot ^ - -M apps::hyperv::2012::local::mode::scvmmvmstatus ^ - -M apps::hyperv::2012::local::mode::nodeintegrationservice ^ - -M apps::hyperv::2012::local::mode::nodereplication ^ - -M apps::hyperv::2012::local::mode::nodesnapshot ^ - -M apps::hyperv::2012::local::mode::nodevmstatus ^ + -M apps::microsoft::activedirectory::local::plugin ^ + -M apps::microsoft::activedirectory::local::mode::dcdiag ^ + -M apps::microsoft::activedirectory::local::mode::dfsrbacklog ^ + -M apps::microsoft::activedirectory::local::mode::netdom ^ + -M apps::microsoft::exchange::local::plugin ^ + -M apps::microsoft::exchange::local::mode::activesyncmailbox ^ + -M apps::microsoft::exchange::local::mode::databases ^ + -M apps::microsoft::exchange::local::mode::listdatabases ^ + -M apps::microsoft::exchange::local::mode::imapmailbox ^ + -M apps::microsoft::exchange::local::mode::mapimailbox ^ + -M apps::microsoft::exchange::local::mode::outlookwebservices ^ + -M apps::microsoft::exchange::local::mode::owamailbox ^ + -M apps::microsoft::exchange::local::mode::queues ^ + -M apps::microsoft::exchange::local::mode::replicationhealth ^ + -M apps::microsoft::exchange::local::mode::services ^ + -M apps::microsoft::hyperv::2012::local::plugin ^ + -M apps::microsoft::hyperv::2012::local::mode::listnodevms ^ + -M apps::microsoft::hyperv::2012::local::mode::scvmmintegrationservice ^ + -M apps::microsoft::hyperv::2012::local::mode::scvmmsnapshot ^ + -M apps::microsoft::hyperv::2012::local::mode::scvmmvmstatus ^ + -M apps::microsoft::hyperv::2012::local::mode::nodeintegrationservice ^ + -M apps::microsoft::hyperv::2012::local::mode::nodereplication ^ + -M apps::microsoft::hyperv::2012::local::mode::nodesnapshot ^ + -M apps::microsoft::hyperv::2012::local::mode::nodevmstatus ^ + -M apps::microsoft::iis::local::plugin ^ + -M apps::microsoft::iis::local::mode::listapplicationpools ^ + -M apps::microsoft::iis::local::mode::applicationpoolstate ^ + -M apps::microsoft::iis::local::mode::listsites ^ + -M apps::microsoft::iis::local::mode::webservicestatistics ^ + -M apps::microsoft::mscs::local::plugin ^ + -M apps::microsoft::mscs::local::mode::listnodes ^ + -M apps::microsoft::mscs::local::mode::listresources ^ + -M apps::microsoft::mscs::local::mode::networkstatus ^ + -M apps::microsoft::mscs::local::mode::nodestatus ^ + -M apps::microsoft::mscs::local::mode::resourcestatus ^ + -M apps::microsoft::mscs::local::mode::resourcegroupstatus ^ + -M apps::microsoft::sccm::local::plugin ^ + -M apps::microsoft::sccm::local::mode::databasereplicationstatus ^ + -M apps::microsoft::sccm::local::mode::sitestatus ^ + -M apps::microsoft::wsus::local::plugin ^ + -M apps::microsoft::wsus::local::mode::computersstatus ^ + -M apps::microsoft::wsus::local::mode::updatesstatus ^ + -M apps::microsoft::wsus::local::mode::synchronisationstatus ^ + -M apps::microsoft::wsus::local::mode::serverstatistics ^ + -M apps::protocols::ldap::plugin ^ + -M apps::protocols::ldap::mode::login ^ + -M apps::protocols::ldap::mode::search ^ + -M apps::protocols::ftp::plugin ^ + -M apps::protocols::ftp::mode::commands ^ + -M apps::protocols::ftp::mode::date ^ + -M apps::protocols::ftp::mode::filescount ^ + -M apps::protocols::ftp::mode::login ^ + -M apps::protocols::http::plugin ^ + -M apps::protocols::http::mode::expectedcontent ^ + -M apps::protocols::http::mode::response ^ + -M apps::protocols::tcp::plugin ^ + -M apps::protocols::tcp::mode::responsetime ^ + -M apps::protocols::x509::plugin ^ + -M apps::protocols::x509::mode::certificate ^ + -M apps::protocols::x509::mode::validity ^ + -M centreon::common::protocols::ldap::lib::ldap ^ + -M centreon::common::powershell::exchange::powershell ^ + -M centreon::common::powershell::functions ^ -M centreon::common::powershell::hyperv::2012::listnodevms ^ -M centreon::common::powershell::hyperv::2012::nodeintegrationservice ^ -M centreon::common::powershell::hyperv::2012::nodereplication ^ @@ -705,31 +711,35 @@ We exclude the module ``IO::Socket::INET6`` (Perl 5.14 has the full set of IPv6 -M centreon::common::powershell::hyperv::2012::scvmmintegrationservice ^ -M centreon::common::powershell::hyperv::2012::scvmmsnapshot ^ -M centreon::common::powershell::hyperv::2012::scvmmvmstatus ^ - -M apps::protocols::http::plugin ^ - -M apps::protocols::http::mode::expectedcontent ^ - -M apps::protocols::http::mode::response ^ - -M apps::protocols::tcp::plugin ^ - -M apps::protocols::tcp::mode::responsetime ^ - -M apps::protocols::ftp::plugin ^ - -M apps::protocols::ftp::mode::commands ^ - -M apps::protocols::ftp::mode::date ^ - -M apps::protocols::ftp::mode::filescount ^ - -M apps::protocols::ftp::mode::login ^ - -M apps::backup::veeam::local::plugin ^ - -M apps::backup::veeam::local::mode::jobstatus ^ - -M apps::backup::veeam::local::mode::listjobs ^ + -M centreon::common::powershell::sccm::databasereplicationstatus ^ + -M centreon::common::powershell::sccm::sitestatus ^ -M centreon::common::powershell::veeam::jobstatus ^ -M centreon::common::powershell::veeam::listjobs ^ + -M centreon::common::powershell::veeam::tapejobs ^ + -M centreon::common::powershell::windows::liststorages ^ -M centreon::common::powershell::wsus::computersstatus ^ -M centreon::common::powershell::wsus::updatesstatus ^ -M centreon::common::powershell::wsus::synchronisationstatus ^ -M centreon::common::powershell::wsus::serverstatistics ^ - -M apps::wsus::local::plugin ^ - -M apps::wsus::local::mode::computersstatus ^ - -M apps::wsus::local::mode::updatesstatus ^ - -M apps::wsus::local::mode::synchronisationstatus ^ - -M apps::wsus::local::mode::serverstatistics ^ - -M centreon::common::powershell::functions ^ + -M centreon::plugins::alternative::Getopt ^ + -M centreon::plugins::backend::http::lwp ^ + -M centreon::plugins::backend::http::curl ^ + -M centreon::plugins::backend::http::curlconstants ^ + -M centreon::plugins::script ^ + -M hardware::devices::safenet::hsm::protecttoolkit::plugin ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::hardware ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::temperature ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::hwstatus ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::memory ^ + -M os::windows::local::plugin ^ + -M os::windows::local::mode::cmdreturn ^ + -M os::windows::local::mode::ntp ^ + -M os::windows::local::mode::pendingreboot ^ + -M os::windows::local::mode::sessions ^ + -M os::windows::local::mode::liststorages ^ + -M storage::dell::compellent::local::plugin ^ + -M storage::dell::compellent::local::mode::hbausage ^ + -M storage::dell::compellent::local::mode::volumeusage ^ --verbose pause diff --git a/doc/fr/user/guide.rst b/doc/fr/user/guide.rst index 4d8ebc377..85006cc8b 100644 --- a/doc/fr/user/guide.rst +++ b/doc/fr/user/guide.rst @@ -621,12 +621,6 @@ Nous excluons le module ``IO::Socket::INET6`` (Perl 5.14 intègre la fonctionnal -M Net::FTPSSL ^ -M Authen::NTLM ^ -M JSON::XS ^ - -M centreon::plugins::script ^ - -M centreon::plugins::backend::http::lwp ^ - -M centreon::plugins::backend::http::curl ^ - -M centreon::plugins::backend::http::useragent ^ - -M centreon::plugins::backend::http::curlconstants ^ - -M centreon::plugins::alternative::Getopt ^ -M apps::backup::netbackup::local::plugin ^ -M apps::backup::netbackup::local::mode::dedupstatus ^ -M apps::backup::netbackup::local::mode::drivecleaning ^ @@ -637,66 +631,78 @@ Nous excluons le module ``IO::Socket::INET6`` (Perl 5.14 intègre la fonctionnal -M apps::backup::veeam::local::plugin ^ -M apps::backup::veeam::local::mode::jobstatus ^ -M apps::backup::veeam::local::mode::listjobs ^ - -M apps::activedirectory::local::plugin ^ - -M apps::activedirectory::local::mode::dcdiag ^ - -M apps::activedirectory::local::mode::dfsrbacklog ^ - -M apps::activedirectory::local::mode::netdom ^ + -M apps::backup::veeam::local::mode::tapejobs ^ + -M apps::centreon::local::plugin ^ + -M apps::centreon::local::mode::downtimetrap ^ + -M apps::centreon::local::mode::centreonpluginsversion ^ -M apps::citrix::local::plugin ^ -M apps::citrix::local::mode::license ^ -M apps::citrix::local::mode::session ^ -M apps::citrix::local::mode::zone ^ -M apps::citrix::local::mode::folder ^ - -M apps::iis::local::plugin ^ - -M apps::iis::local::mode::listapplicationpools ^ - -M apps::iis::local::mode::applicationpoolstate ^ - -M apps::iis::local::mode::listsites ^ - -M apps::iis::local::mode::webservicestatistics ^ - -M apps::exchange::2010::local::plugin ^ - -M apps::exchange::2010::local::mode::activesyncmailbox ^ - -M apps::exchange::2010::local::mode::databases ^ - -M apps::exchange::2010::local::mode::listdatabases ^ - -M apps::exchange::2010::local::mode::imapmailbox ^ - -M apps::exchange::2010::local::mode::mapimailbox ^ - -M apps::exchange::2010::local::mode::outlookwebservices ^ - -M apps::exchange::2010::local::mode::owamailbox ^ - -M apps::exchange::2010::local::mode::queues ^ - -M apps::exchange::2010::local::mode::replicationhealth ^ - -M apps::exchange::2010::local::mode::services ^ - -M centreon::common::powershell::exchange::2010::powershell ^ - -M apps::cluster::mscs::local::plugin ^ - -M apps::cluster::mscs::local::mode::listnodes ^ - -M apps::cluster::mscs::local::mode::listresources ^ - -M apps::cluster::mscs::local::mode::networkstatus ^ - -M apps::cluster::mscs::local::mode::nodestatus ^ - -M apps::cluster::mscs::local::mode::resourcestatus ^ - -M apps::cluster::mscs::local::mode::resourcegroupstatus ^ - -M os::windows::local::plugin ^ - -M os::windows::local::mode::cmdreturn ^ - -M os::windows::local::mode::ntp ^ - -M os::windows::local::mode::pendingreboot ^ - -M os::windows::local::mode::sessions ^ - -M os::windows::local::mode::liststorages ^ - -M centreon::common::powershell::windows::liststorages ^ - -M storage::dell::compellent::local::plugin ^ - -M storage::dell::compellent::local::mode::hbausage ^ - -M storage::dell::compellent::local::mode::volumeusage ^ - -M hardware::devices::safenet::hsm::protecttoolkit::plugin ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::hardware ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::temperature ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::hwstatus ^ - -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::memory ^ - -M apps::centreon::local::plugin ^ - -M apps::centreon::local::mode::downtimetrap ^ - -M apps::centreon::local::mode::centreonpluginsversion ^ - -M apps::hyperv::2012::local::plugin ^ - -M apps::hyperv::2012::local::mode::listnodevms ^ - -M apps::hyperv::2012::local::mode::scvmmintegrationservice ^ - -M apps::hyperv::2012::local::mode::scvmmsnapshot ^ - -M apps::hyperv::2012::local::mode::scvmmvmstatus ^ - -M apps::hyperv::2012::local::mode::nodeintegrationservice ^ - -M apps::hyperv::2012::local::mode::nodereplication ^ - -M apps::hyperv::2012::local::mode::nodesnapshot ^ - -M apps::hyperv::2012::local::mode::nodevmstatus ^ + -M apps::microsoft::activedirectory::local::plugin ^ + -M apps::microsoft::activedirectory::local::mode::dcdiag ^ + -M apps::microsoft::activedirectory::local::mode::dfsrbacklog ^ + -M apps::microsoft::activedirectory::local::mode::netdom ^ + -M apps::microsoft::exchange::local::plugin ^ + -M apps::microsoft::exchange::local::mode::activesyncmailbox ^ + -M apps::microsoft::exchange::local::mode::databases ^ + -M apps::microsoft::exchange::local::mode::listdatabases ^ + -M apps::microsoft::exchange::local::mode::imapmailbox ^ + -M apps::microsoft::exchange::local::mode::mapimailbox ^ + -M apps::microsoft::exchange::local::mode::outlookwebservices ^ + -M apps::microsoft::exchange::local::mode::owamailbox ^ + -M apps::microsoft::exchange::local::mode::queues ^ + -M apps::microsoft::exchange::local::mode::replicationhealth ^ + -M apps::microsoft::exchange::local::mode::services ^ + -M apps::microsoft::hyperv::2012::local::plugin ^ + -M apps::microsoft::hyperv::2012::local::mode::listnodevms ^ + -M apps::microsoft::hyperv::2012::local::mode::scvmmintegrationservice ^ + -M apps::microsoft::hyperv::2012::local::mode::scvmmsnapshot ^ + -M apps::microsoft::hyperv::2012::local::mode::scvmmvmstatus ^ + -M apps::microsoft::hyperv::2012::local::mode::nodeintegrationservice ^ + -M apps::microsoft::hyperv::2012::local::mode::nodereplication ^ + -M apps::microsoft::hyperv::2012::local::mode::nodesnapshot ^ + -M apps::microsoft::hyperv::2012::local::mode::nodevmstatus ^ + -M apps::microsoft::iis::local::plugin ^ + -M apps::microsoft::iis::local::mode::listapplicationpools ^ + -M apps::microsoft::iis::local::mode::applicationpoolstate ^ + -M apps::microsoft::iis::local::mode::listsites ^ + -M apps::microsoft::iis::local::mode::webservicestatistics ^ + -M apps::microsoft::mscs::local::plugin ^ + -M apps::microsoft::mscs::local::mode::listnodes ^ + -M apps::microsoft::mscs::local::mode::listresources ^ + -M apps::microsoft::mscs::local::mode::networkstatus ^ + -M apps::microsoft::mscs::local::mode::nodestatus ^ + -M apps::microsoft::mscs::local::mode::resourcestatus ^ + -M apps::microsoft::mscs::local::mode::resourcegroupstatus ^ + -M apps::microsoft::sccm::local::plugin ^ + -M apps::microsoft::sccm::local::mode::databasereplicationstatus ^ + -M apps::microsoft::sccm::local::mode::sitestatus ^ + -M apps::microsoft::wsus::local::plugin ^ + -M apps::microsoft::wsus::local::mode::computersstatus ^ + -M apps::microsoft::wsus::local::mode::updatesstatus ^ + -M apps::microsoft::wsus::local::mode::synchronisationstatus ^ + -M apps::microsoft::wsus::local::mode::serverstatistics ^ + -M apps::protocols::ldap::plugin ^ + -M apps::protocols::ldap::mode::login ^ + -M apps::protocols::ldap::mode::search ^ + -M apps::protocols::ftp::plugin ^ + -M apps::protocols::ftp::mode::commands ^ + -M apps::protocols::ftp::mode::date ^ + -M apps::protocols::ftp::mode::filescount ^ + -M apps::protocols::ftp::mode::login ^ + -M apps::protocols::http::plugin ^ + -M apps::protocols::http::mode::expectedcontent ^ + -M apps::protocols::http::mode::response ^ + -M apps::protocols::tcp::plugin ^ + -M apps::protocols::tcp::mode::responsetime ^ + -M apps::protocols::x509::plugin ^ + -M apps::protocols::x509::mode::certificate ^ + -M apps::protocols::x509::mode::validity ^ + -M centreon::common::protocols::ldap::lib::ldap ^ + -M centreon::common::powershell::exchange::powershell ^ + -M centreon::common::powershell::functions ^ -M centreon::common::powershell::hyperv::2012::listnodevms ^ -M centreon::common::powershell::hyperv::2012::nodeintegrationservice ^ -M centreon::common::powershell::hyperv::2012::nodereplication ^ @@ -705,31 +711,35 @@ Nous excluons le module ``IO::Socket::INET6`` (Perl 5.14 intègre la fonctionnal -M centreon::common::powershell::hyperv::2012::scvmmintegrationservice ^ -M centreon::common::powershell::hyperv::2012::scvmmsnapshot ^ -M centreon::common::powershell::hyperv::2012::scvmmvmstatus ^ - -M apps::protocols::http::plugin ^ - -M apps::protocols::http::mode::expectedcontent ^ - -M apps::protocols::http::mode::response ^ - -M apps::protocols::tcp::plugin ^ - -M apps::protocols::tcp::mode::responsetime ^ - -M apps::protocols::ftp::plugin ^ - -M apps::protocols::ftp::mode::commands ^ - -M apps::protocols::ftp::mode::date ^ - -M apps::protocols::ftp::mode::filescount ^ - -M apps::protocols::ftp::mode::login ^ - -M apps::backup::veeam::local::plugin ^ - -M apps::backup::veeam::local::mode::jobstatus ^ - -M apps::backup::veeam::local::mode::listjobs ^ + -M centreon::common::powershell::sccm::databasereplicationstatus ^ + -M centreon::common::powershell::sccm::sitestatus ^ -M centreon::common::powershell::veeam::jobstatus ^ -M centreon::common::powershell::veeam::listjobs ^ + -M centreon::common::powershell::veeam::tapejobs ^ + -M centreon::common::powershell::windows::liststorages ^ -M centreon::common::powershell::wsus::computersstatus ^ -M centreon::common::powershell::wsus::updatesstatus ^ -M centreon::common::powershell::wsus::synchronisationstatus ^ -M centreon::common::powershell::wsus::serverstatistics ^ - -M apps::wsus::local::plugin ^ - -M apps::wsus::local::mode::computersstatus ^ - -M apps::wsus::local::mode::updatesstatus ^ - -M apps::wsus::local::mode::synchronisationstatus ^ - -M apps::wsus::local::mode::serverstatistics ^ - -M centreon::common::powershell::functions ^ + -M centreon::plugins::alternative::Getopt ^ + -M centreon::plugins::backend::http::lwp ^ + -M centreon::plugins::backend::http::curl ^ + -M centreon::plugins::backend::http::curlconstants ^ + -M centreon::plugins::script ^ + -M hardware::devices::safenet::hsm::protecttoolkit::plugin ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::hardware ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::temperature ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::hwstatus ^ + -M hardware::devices::safenet::hsm::protecttoolkit::mode::components::memory ^ + -M os::windows::local::plugin ^ + -M os::windows::local::mode::cmdreturn ^ + -M os::windows::local::mode::ntp ^ + -M os::windows::local::mode::pendingreboot ^ + -M os::windows::local::mode::sessions ^ + -M os::windows::local::mode::liststorages ^ + -M storage::dell::compellent::local::plugin ^ + -M storage::dell::compellent::local::mode::hbausage ^ + -M storage::dell::compellent::local::mode::volumeusage ^ --verbose pause