none
serveur RDS en maintenance RRS feed

  • Question

  • Bonjour

    Nous avons, sur un réseau entreprise, 3 serveurs (1 broker et 2 rds).

    Tout fonctionne correctement et l'évolution est prévue avec ajout d'autres serveurs rds notamment.

    Dans ce cadre, nous avons également monté un serveur de supersision snmp (nagios pour ne pas le nommer) qui nous convient parfaitement également.

    Ma question est : lors d'une mise à jour d'un serveur rds, ce dernier est mis en état 'maintenance'. Y-a t'il un moyen de tester cet état de manière à, si la personne qui le positionne en maintenance doit s'absenter sans avoir fini son travail ou s'il oubli de le remettre en fonction, alerter ses collègues sur cette situation ?

    Merci

    lundi 19 mai 2014 10:18

Réponses

  • Bonjour,

    De mémoire c'est configurable côté Nagios, je pense qu'un script VBS à integrer dans Nagios est proposé en téléchargement gratuit sur le Net (si je me rappelle nagios_downtime.vbs).

    Vous êtes généralement alertés quand le serveur entre en Mode Maintenance et à la sortie aussi mais pas quand une personne s'absente ou sort plutôt par exemple.

    avec SCOM c'est possible (solution de Microsoft payante mais très puissante).

    A+

    HK.


    Hicham KADIRI | Just Another IT Guy

    • Marqué comme réponse Florin Ciuca jeudi 22 mai 2014 10:29
    lundi 19 mai 2014 17:50
  • Je ne sais pas si ca peut t'aider mais voila un petit script qui test si le serveur est en maintenance ou non par WMI SessionBrokerDrainMode :

    String vEtat;

    ConnectionOptions Connection = new ConnectionOptions(); Connection.Impersonation = ImpersonationLevel.Impersonate; Connection.EnablePrivileges = true; Connection.Authentication = AuthenticationLevel.PacketPrivacy; ManagementPath path = new ManagementPath(); path.Server = "SRV-NAME"; path.NamespacePath = "\\ROOT\\CIMV2\\TerminalServices"; path.ClassName = "Win32_TerminalServiceSetting"; ManagementScope scope = new ManagementScope(path, Connection); ObjectGetOptions getOptions = new ObjectGetOptions(); ManagementClass management = new ManagementClass(scope, path, getOptions); management.Get(); foreach (ManagementObject TS in management.GetInstances()) { vEtat = TS["SessionBrokerDrainMode"].ToString(); } if (vEtat == "0") { MessageBox.Show("PRODUCTION"); } else { MessageBox.Show("MAINTENANCE"); }

    Je l'ai fait en C# mais il peut etre adapté en VBS ou PS


    • Modifié Ydhem mardi 20 mai 2014 08:32
    • Marqué comme réponse Florin Ciuca jeudi 22 mai 2014 10:29
    mardi 20 mai 2014 08:21

Toutes les réponses

  • Bonjour,

    De mémoire c'est configurable côté Nagios, je pense qu'un script VBS à integrer dans Nagios est proposé en téléchargement gratuit sur le Net (si je me rappelle nagios_downtime.vbs).

    Vous êtes généralement alertés quand le serveur entre en Mode Maintenance et à la sortie aussi mais pas quand une personne s'absente ou sort plutôt par exemple.

    avec SCOM c'est possible (solution de Microsoft payante mais très puissante).

    A+

    HK.


    Hicham KADIRI | Just Another IT Guy

    • Marqué comme réponse Florin Ciuca jeudi 22 mai 2014 10:29
    lundi 19 mai 2014 17:50
  • merci

    je vais chercher dans cette voie

    mardi 20 mai 2014 06:22
  • Je ne sais pas si ca peut t'aider mais voila un petit script qui test si le serveur est en maintenance ou non par WMI SessionBrokerDrainMode :

    String vEtat;

    ConnectionOptions Connection = new ConnectionOptions(); Connection.Impersonation = ImpersonationLevel.Impersonate; Connection.EnablePrivileges = true; Connection.Authentication = AuthenticationLevel.PacketPrivacy; ManagementPath path = new ManagementPath(); path.Server = "SRV-NAME"; path.NamespacePath = "\\ROOT\\CIMV2\\TerminalServices"; path.ClassName = "Win32_TerminalServiceSetting"; ManagementScope scope = new ManagementScope(path, Connection); ObjectGetOptions getOptions = new ObjectGetOptions(); ManagementClass management = new ManagementClass(scope, path, getOptions); management.Get(); foreach (ManagementObject TS in management.GetInstances()) { vEtat = TS["SessionBrokerDrainMode"].ToString(); } if (vEtat == "0") { MessageBox.Show("PRODUCTION"); } else { MessageBox.Show("MAINTENANCE"); }

    Je l'ai fait en C# mais il peut etre adapté en VBS ou PS


    • Modifié Ydhem mardi 20 mai 2014 08:32
    • Marqué comme réponse Florin Ciuca jeudi 22 mai 2014 10:29
    mardi 20 mai 2014 08:21