NinjaOne a lancé sa fonctionnalité de champs personnalisés en 2021, ajoutant un nouveau niveau de flexibilité, de personnalisation et de pouvoir d’automatisation à notre plateforme. Les champs personnalisés sont une fonction avancée qui nécessite une configuration avant d’être utilisée, mais une fois que vous avez commencé, la puissance et la flexibilité de cette fonction sont presque illimitées.
Dans la 1ère partie de ce guide, nous vous guiderons à travers deux cas d’utilisation très utiles des champs personnalisés dans NinjaOne, notamment :
Un rapide aperçu des Champs Personnalisés dans NinjaOne
Rôles des champs personnalisés
Les champs personnalisés de NinjaOne se divisent en deux catégories : les champs personnalisés globaux, qui s’appliquent à tous les appareils, quel que soit leur type, et les champs personnalisés basés sur les rôles, qui s’appliquent uniquement à des types d’appareils spécifiques.
Un champ personnalisé global peut utiliser une forme de numéro d’identification d’actif universel que vous appliquez à tous les appareils. Par exemple, vous pouvez utiliser des champs personnalisés basés sur les rôles pour attribuer un propriétaire aux stations de travail et aux ordinateurs portables, mais pas aux serveurs.
Types de champs personnalisés
NinjaOne propose plus de vingt types de champs personnalisés, du texte aux nombres entiers en passant par les listes déroulantes et les champs de cartographie des appareils. Nous fournissons également des éléments d’interface utilisateur pour rendre les champs personnalisés plus conviviaux.
Accès
Chaque champ personnalisé peut être personnalisé pour l’accès des techniciens et des scripts, ce qui vous permet de contrôler qui a accès à quelles données.
Cas d’utilisation N°1 : Surveillez presque tout
Dès que vous installez l’agent NinjaOne, nous fournissons des centaines de points de données sur chaque terminal surveillé, des spécifications matérielles aux logiciels installés en passant par l’utilisation du processeur. Malgré tout, les points de données spécifiques et les besoins de surveillance de chaque entreprise sont uniques.
Les champs personnalisés de NinjaOne vous permettent de collecter, de stocker et de surveiller presque tous les points de données à partir d’un point d’accès, ce qui vous permet de disposer des informations dont vous avez besoin pour prendre des décisions. Voici quelques exemples que nous avons vus chez nos partenaires :
- Identifier et stocker le plan d’alimentation actuel
- Documenter les comptes d’administrateur local existants
- Obtenir une liste des tâches programmées sur un appareil
- Surveiller la température du CPU
- Surveiller l’état de la batterie
Comment s’y prendre
Prenons un exemple de mise en place d’un champ personnalisé et d’un script pour surveiller l’état de la batterie.
Pour créer une surveillance personnalisée à l’aide de champs personnalisés, vous aurez besoin de :
- Un champ personnalisé
- Un script pour collecter et stocker les données
- Une condition personnalisée pour créer une alerte
Configurer le champ personnalisé
Le champ personnalisé sera utilisé pour stocker les données renvoyées par un script.
1) Ajoutez un nouveau champ personnalisé. Comme nous allons surveiller l’état de la batterie des ordinateurs portables, nous allons créer un champ personnalisé de rôle.
2) L’étape suivante consiste à configurer le champ personnalisé. Comme nous voulons que ce champ soit écrit par l’intermédiaire d’un script, nous allons définir l’accès du technicien sur « Lecture seule » et l’accès du script sur « Lecture/Écriture ».
Remarque : si l’accès du script n’est pas défini sur « Écriture seulement » ou « Lecture/écriture », vous ne pourrez pas écrire dans ce champ à partir d’un script.
3) Nous devons maintenant attribuer le champ personnalisé de rôle à un rôle de dispositif. Ensuite, naviguez vers « Rôles » et sélectionnez le(s) type(s) de rôle auquel que vous souhaitez voir appliquer ce champ. Dans ce cas, nous allons attribuer ce champ personnalisé de rôle au rôle Windows Laptop.
Configuration du moniteur de surveillance
Les conditions dans NinjaOne sont utilisées pour surveiller les changements d’état d’un terminal. NinjaOne offre la possibilité de surveiller les champs personnalisés. Nous allons installer un moniteur pour vérifier les états d’alerte ou de dégradation de la batterie.
- Dans la stratégie que vous avez choisie, allez dans la rubrique « Conditions » et cliquez sur « Ajouter une condition »
- Sélectionnez le type de condition « Champs personnalisés »
- Sous « La valeur du champ personnalisé doit remplir n’importe quelle condition », sélectionnez « Ajouter » et recherchez « État de la batterie »
- Définissez l’option sur « Contient » et ajoutez « Dégradé »
- Répétez les étapes 3 et 4, mais changez « Dégradé » en « Avertissement »
- Définissez les paramètres de sévérité, de priorité, de canal de notification et de gestion des tickets selon vos préférences, puis cliquez sur « Ajouter ».
Si la condition est déclenchée, cela ressemblera à quelque chose comme ceci :
Créer un script pour extraire des données
Nous devons écrire un script qui extrait les données sur l’appareil et les stocke dans notre champ personnalisé. Nous allons modifier le script qui se trouve ici (vous devez être connecté à Ninja pour le voir).
$Battery = Get-CimInstance -ClassName win32_battery Switch ($Battery.Availability) { 1 { $Availability = "Other" ;break} 2 { $Availability = "Not using battery" ;break} 3 { $Availability = "Running or Full Power";break} 4 {$Availability = "Warning" ;break} 5 { $Availability = "In Test";break} 6 { $Availability = "Not Applicable";break} 7 { $Availability = "Power Off";break} 8 { $Availability = "Off Line";break} 9 { $Availability = "Off Duty";break} 10 {$Availability = "Degraded";break} 11 {$Availability = "Not Installed";break} 12 {$Availability = "Install Error";break} 13 { $Availability = "Power Save - Unknown";break} 14 { $Availability = "Power Save - Low Power Mode" ;break} 15 { $Availability = "Power Save - Standby";break} 16 { $Availability = "Power Cycle";break} 17 { $Availability = "Power Save - Warning";break} } $BatteryOutString = "Status : $($Battery.Status)", "Nom de la batterie : $($Battery.name)", "Charge restante : $($Battery.EstimatedChargeRemaining)", "Durée de fonctionnement estimée : $($Battery.EstimatedRunTime)", "Disponibilité : $Availability" | Format-Table | Out-String Ninja-Property-Set batteryState $BatteryOutString
Ce script extrait des informations sur la batterie, les met en forme, puis les écrit dans le champ personnalisé “batteryStatus”.
La seule partie spécifique à Ninja de ce script Powershell est la dernière ligne :
Ninja-Property-Set batteryState $BatteryOutString
Ninja-Property-Set est la commande Powershell de NinjaOne pour définir un champ personnalisé à une valeur spécifique. La syntaxe est la suivante :
Ninja-Property-Set fieldName Value
Dans ce cas, nous donnons au champ batteryState la valeur stockée dans la variable $BatteryOutString.
L’ajout de ce script à NinjaOne est facile.
- Naviguez vers Configuration > Écriture de script.
- cliquez sur « Ajouter un nouveau script »
- Copiez le code ci-dessus dans l’environnement de développement intégré (EDI)
- Si votre champ personnalisé n’est pas nommé “batteryState”, mettez à jour le nom du champ à côté de Ninja-Property-Set
- Définissez les paramètres du script comme suit
- Nom : Définir l’état de la batterie
- Langue : PowerShell
- Système d’exploitation : Windows
- Architecture : Toutes
- Enregistrez le script
Faisons le point
Maintenant que vous avez votre champ personnalisé, votre condition et votre script, nous devons rassembler le tout afin d’automatiser cette surveillance.
Ouvrez la stratégie à laquelle vous avez ajouté votre condition plus tôt dans ce guide et accédez à « Scripts Planifiés ».
Cliquez sur « Ajouter un script planifié »
Cliquez sur « Ajouter un script »
Sélectionnez le script “Définir l’état de la batterie” que nous avons créé ci-dessus.
Vous pouvez exécuter ce script aussi souvent que vous le jugez nécessaire. Pour une exécution horaire, sélectionnez « Chaque » dans la liste déroulante « Calendrier » et définissez « Se produit chaque » sur 1 heure. Puis cliquez sur « Ajouter ».
Le script de définition de l’état de la batterie va maintenant extraire les données de tous les terminaux gérés par cette stratégie toutes les heures et les écrire dans le champ personnalisé. Si la valeur de retour de l’un de ces terminaux contient « avertissement » ou « degradé », nous recevrons une alerte afin de pouvoir y remédier.
Ce même processus peut être utilisé pour surveiller presque tous les points de données qui peuvent être extraits d’un terminal.
Cas d’utilisation N°2 : Automatisation avancée des scripts
NinjaOne vous offre plusieurs moyens d’automatiser les tâches sur tous vos terminaux gérés, des plus simples aux plus complexes.
Les quatre méthodes principales pour lancer des automatisations dans NinjaOne sont les suivantes :
- Scripts planifiés : Automatisations qui s’exécutent à intervalles réguliers sur tous les terminaux d’une stratégie
- Conditions de déclenchement : Automations qui sont déclenchées par des événements, des changements d’état ou un comportement de performance sur un terminal
- Tâches planifiées : Automatisations qui s’exécutent à intervalles réguliers sur tous les terminaux sélectionnés
- Scripts ponctuels : Automatisations qui sont exécutées manuellement sur un ou plusieurs terminaux
Toutes ces méthodes vous permettent de déployer un ensemble de scripts en fonction d’un seul déclencheur temporel ou événementiel. L’une sans l’autre, ces méthodes d’automatisation peuvent être très puissantes et apporter beaucoup de valeur, mais elles ne sont pas très dynamiques.
Pour des automatismes plus dynamiques, nous devons ajouter deux concepts :
- Conditions de résultat du script
- Champs Personnalisés
Ces deux fonctions de NinjaOne permettent de relier dynamiquement les automatisations en fonction des résultats du déploiement initial du script. La différence essentielle est que les conditions de résultat de script ne stockent pas de valeurs pour une analyse ultérieure et ne peuvent répondre qu’à un seul résultat de script.
Compter et alerter sur la fréquence des échecs de connexion
La condition intégrée Windows Event ID de NinjaOne vous permet de déclencher une alerte, de créer un ticket ou de déclencher l’exécution d’un script dès qu’un event ID spécifique est détecté. Cette fonction est extrêmement utile pour détecter des événements tels que la création d’un compte d’administrateur, les modifications apportées au pare-feu Windows ou l’identification d’un événement tel que l’échec de la sauvegarde d’un serveur Windows, où les événements singuliers sont exploitables.
Lorsque nous avons besoin d’un grand nombre d’événements pour qu’un avertissement soit exploitable, nous avons besoin de champs personnalisés. Par exemple, un seul échec de connexion a peu de chances d’être exploitable. En revanche, dix tentatives de connexion infructueuses au cours de la dernière heure peuvent indiquer que quelque chose ne va pas. Créons donc une automatisation qui compte les échecs de connexion depuis une heure et émet une alerte si le seuil de 10 échecs de connexion est dépassé.
Configurer le champ personnalisé
Nous allons commencer par créer un champ personnalisé pour stocker nos tentatives de connexion échouées. Pour cet exercice, nous créons un champ personnalisé global car nous allons détecter les échecs de connexion sur tous les types d’appareils.
- Étiquette de champ : Tentatives de connexion échouées
- Nom du champ : failedLoginAttempts
- Type de champ : Nombre entier
- Scripts : Lecture / Écriture
Nous allons configurer un deuxième champ personnalisé pour obtenir l’ID de sécurité de la tentative de connexion la plus récente.
- Étiquette de champ : Nom d’utilisateur des tentatives de connexion échouées
- Nom du champ : failedAccountLoginUserName
- Type de champ : Texte
- Scripts : Lecture / Écriture
Écrire le script de surveillance
Ensuite, nous allons écrire un script pour détecter les échecs de connexion. C’est assez simple à faire, nous allons simplement interroger le journal des événements et compter le nombre de tentatives de connexion qui ont échoué. Nous écrirons ensuite la valeur renvoyée dans le champ failedLoginAttempts. Nous allons également renvoyer le nom de l’utilisateur dans le champ failedAccountLoginUserName.
$failedLogins = ((Get-EventLog -LogName Security -After (Get-Date).AddDays(-7) -InstanceID 4625) | Select @{Name="UserName";Expression={$_.ReplacementStrings[5]}} | Group-Object -Propert UserName).count $Login = ((Get-EventLog -LogName Security -After (Get-Date).AddDays(-7) -InstanceID 4625) | Select @{Name="UserName";Expression={$_.ReplacementStrings[5]}} | Group-Object -Propert UserName).name Ninja-Property-Set failedLoginAttempts $failedLogins Ninja-Property-Set failedAccountLoginUserName $Login
L’ajout de ce script à NinjaOne est simple et facile.
- Naviguez vers Configuration > Écriture de script.
- cliquez sur « Ajouter un nouveau script »
- Copiez le code ci-dessus dans l’environnement de développement intégré (EDI)
- Si votre champ personnalisé n’est pas nommé “failedLoginAttempts”, mettez à jour le nom du champ à côté de Ninja-Property-Set
- Définissez les paramètres du script comme suit
- Nom : Compter les tentatives de connexion échouées
- Langue : PowerShell
- Système d’exploitation : Windows
- Architecture : Toutes
- Enregistrez le script
Ensuite, nous devons configurer ce script pour qu’il soit exécuté périodiquement.
- Dans la stratégie de votre choix, naviguez vers « Scripts planifiés » et cliquez sur « Ajouter un script planifié »
- Cliquez sur « Ajouter un script » et sélectionnez le script « Compter les tentatives de connexion échouées »
- Donnez un nom et une description au script
- Régler le programme pour qu’il soit exécuté toutes les heures
Rédiger le script de remédiation
Si nous pouvons détecter un volume élevé de tentatives de connexion échouées, nous pouvons vouloir remédier à ce problème en verrouillant temporairement ce compte. Nous allons extraire le nom d’utilisateur du champ failedAccountLoginUserName et désactiver cet utilisateur avec Powershell.
$User = Ninja-Property-Get failedAccountLoginUserName Disable-LocalUser -Name $User
Définir la condition
- Dans la stratégie que vous avez choisie, allez dans la rubrique « Conditions » et cliquez sur « Ajouter une condition »
- Sélectionnez le type de condition « Champs personnalisés »
- Sous « La valeur du champ personnalisé doit remplir n’importe quelle condition », sélectionnez « Ajouter » et recherchez « Tentatives de connexion échouées ». Pour un opérateur, utilisez « supérieur ou égal à » et fixez la valeur sur « 10 ».
- Cliquez sur « Appliquer »
- Nous donnerons à la condition le nom de « Nombre élevé d’échecs de tentatives de connexion »
- Définissez la sévérité, la priorité et les intervalles de réinitialisation
- Indiquez si vous souhaitez que des notifications et des tickets soient créés
- Cliquez sur « Ajouter »
- Si nous voulons automatiser la désactivation de l’utilisateur du compte local, nous pouvons ajouter le script « Désactiver l’utilisateur local » en tant qu’automatisation à cette condition
Continuez votre lecture avec la 2ème et 3ème partie sont disponibles ci-dessous :
- https://www.ninjaone.com/fr/blog/comment-fournir-des-outils-en-libre-service-pour-utilisateur-final-avec-ninjaone/
- https://www.ninjaone.com/fr/blog/gestion-du-cycle-de-vie-des-actifs-avec-ninjaone/
Pourquoi NinjaOne ?
Fatigué de passer en revue les RMM et d’être déçu ? Essayez par vous-même les champs personnalisés de Ninja et voyez pourquoi NinjaOne est différent. Commencez votre essai gratuit.