| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Contexte
Le check Services Matching Service [ $KEY$ ] State by WinRM permet de vérifier le status d’un service Windows. Il permet ainsi de s’assurer que les services supervisés sont bien dans l’état attendu.
Le check utilise une donnée Duplicate Foreach qui permet de générer automatiquement le check pour chaque service à superviser.
| Panel |
|---|
Paramétrage
| Code Block | ||||
|---|---|---|---|---|
| ||||
$WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR$/check_windows_health_by_winrm_rust --check check_servicesservice_matchingstate --hostname "$HOSTADDRESS$" --port "$_HOSTWINDOWS_BY_WINRM__PORT$" --username "$_HOSTWINDOWS_BY_WINRM__DOMAINUSER$" --password "$_HOSTWINDOWS_BY_WINRM__DOMAINPASSWORD$" --auth_method "$_HOSTWINDOWS_BY_WINRM__AUTHMETHOD$" --timeout "$_HOSTWINDOWS_BY_WINRM__TIMEOUT$" -n "$ARG1$" -e "$_SERVICEWINDOWS_BY_WINRM__SERVICES-MATCHING__EXPECTED-STATE$$ARG2$" |
Données utilisées provenant des modèles
Données communes pour les checks des modèles
| Excerpt Include | ||||||
|---|---|---|---|---|---|---|
|
Données spécifiques pour ce check
Aucune données spécifique pour ce check.
Données DFE ( Duplicate Foreach )
| Donnée | Description | Exemple |
|---|
|
|
|
|
l'Hôte
( Onglet Données )
-
| Définit une paire KEY$(VALUE)$.
|
|
WinRM$( |
| Donnée | Description | Exemple | ||
|---|---|---|---|---|
| Définit une paire KEY$(VALUE)$, la KEY correspond à la description du service à vérifier et la VALUE au nom du service. Cette valeur accepte les wildcards* | win$(WinRM)Running)$ |
| Note | ||
|---|---|---|
| ||
Modifier les données accrochées à l'hôte affectera l'ensemble des checks dupliqués. |
| Info | ||||
|---|---|---|---|---|
En cas de difficulté pour identifier les services à superviser, il est possible de rechercher leur noms depuis l'application services.msc.
|
Données utilisées provenant du check
Pas de données provenant du check pour ce modèle.
| Excerpt Include | ||||||
|---|---|---|---|---|---|---|
|
Résultat
Exemple
| Panel |
|---|
Interprétation
Il peut prendre trois valeurs OK / CRITIQUE / INCONNU
Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :
| Situation | Statut | Exemple |
|---|---|---|
| Le service est dans l’état attendu défini par la variable WINDOWS_BY_WINRM__ |
| SERVICE- |
| STATE__ |
| SERVICE-TO- |
| CHECK. ($VALUE2$) | OK |
|
| Le service n’est pas dans l’état attendu défini par la variable WINDOWS_BY_WINRM__ |
| SERVICE- |
| STATE__ |
| SERVICE-TO- |
| CHECK. ($VALUE2$) | CRITIQUE |
|
| Panel |
|---|
| Panel |
|---|
Résultat
Le résultat contient un message indiquant le statut du check.
Résultat Long
Pas de résultat long.
Métriques
Erreurs et pré-requis
Erreurs de configuration de l'hôte supervisé ( spécifique à ce check )
| Excerpt | ||||||||
|---|---|---|---|---|---|---|---|---|
|
Modifier le SDDL ( Security Descriptor Definition Language )
|
Executer la commande suivante :
| Code Block |
|---|
(New-Object System.Security.Principal.NTAccount("DOMAINE\Utilisateur")).Translate([System.Security.Principal.SecurityIdentifier]).Value |
| Info |
|---|
Conserver le SID retourné, il sera utilisé dans les étapes suivantes. |
| Panel |
|---|
Exécuter :
| Code Block |
|---|
sc.exe sdshow "NomDuService" |
| Panel |
|---|
La commande retourne le SDDL complet du service.
Modifier la DACL du service.Copier le résultat retourné parsc.exe sdshow.
Dans la section commençant par "D:", ajouter l’entrée suivante juste avant la section "S:"
| Code Block |
|---|
(A;;CCLCSWLORC;;;<USER_SID>) |
Exemple de SDDL modifié :
| Panel |
|---|
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;LC;;;S-1-5-21-2583679208-1579500244-1739850223-1006)(A;;CCLCSWLORC;;;S-1-5-21-2583679208-1579500244-1739850223-1009)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD) |
|
LC → SERVICE_QUERY_STATUS
SW → SERVICE_ENUMERATE_DEPENDENTS
LO → SERVICE_INTERROGATE
RC → READ_CONTROL
Ces permissions correspondent aux droits de lecture du service (équivalent à GENERIC_READ). Les scripts de configuration fournis appliquent automatiquement cette permission afin de permettre au check d’interroger correctement le statut d'un service. Pour avoir plus d'informations sur ces permissions, consulter la documentation officielle de Microsoft en cliquant ici.Appliquer la nouvelle configuration.
Une fois le SDDL modifié, l’appliquer avec :
| Code Block |
|---|
sc.exe sdset "NomDuService" "<SDDL_MODIFIE>" |
| Panel |
|---|
| Warning |
|---|
Attention : une erreur dans le SDDL peut rendre le service inaccessible |
| Excerpt Include | ||||||
|---|---|---|---|---|---|---|
|
...












