Dans ce document, nous verrons comment interagir depuis le système d’exploitation à l’aide des champs personnalisés avancés. Il s’agit d’un outil puissant permettant aux administrateurs informatiques de surveiller et de contrôler presque tout avec NinjaOne.
Outils proposés par NinjaOne à cette fin, et quelques exemples.
Comment interagir entre le système d’exploitation et les champs personnalisés de NinjaOne ?
Il existe deux méthodes, NinjaRMM-Cli et PowerShell.
1. NinjaRMM-Cli est un outil en ligne de commande qui peut être utilisé du côté du système d’exploitation avec le langage de script natif du système d’exploitation (Batch, Bash, ShellScript, Powershell). Cet outil dispose de commandes spécifiques pour interagir avec les champs personnalisés.
L’outil NinjaRMM-Cli est installé sur un terminal lorsque l’agent NinjaOne est installé sur un terminal Windows, Mac ou Linux.
Selon le système d’exploitation, le chemin d’accès à ce fichier exécutable peut se trouver dans les dossiers suivants.
- Windows : C:\ProgramData\NinjaRMMAgent\ninjarmm-cli.exe.
- Mac: /Applications/NinjaRMMAgent/programdata/ninjarmm-cli.
- Linux: /opt/NinjaRMMAgent/programdata/ninjarmm-cli.
NinjaRMM-Cli get est la commande utilisée pour obtenir ou lire la valeur d’un champ personnalisé.
NinjaRMM-Cli set est la commande utilisée pour attribuer une valeur à un champ personnalisé.
La syntaxe est la suivante : ninjarmm-cli set value (« set » doit être en minuscules)
2. PowerShell, cet outil autrefois réservé à Windows, est désormais également disponible pour Mac et Linux.
Les commandes Ninja-Property-Get et Ninja-Property-Set sont les clés de l’interaction entre le système d’exploitation et NinjaOne à l’aide de PowerShell.
Ninja-Property-Get est la commande PowerShell de NinjaOne qui permet d’obtenir ou de lire la valeur d’un champ personnalisé. La syntaxe est la suivante : Ninja-Property-Get fieldName.
Ninja-Property-Set est la commande PowerShell de NinjaOne qui permet de définir un champ personnalisé à une valeur spécifique. La syntaxe est la suivante : Ninja-Property-Set fieldName Value.
Vous trouverez à la fin de ce document le lien vers une documentation plus complète sur l’utilisation de NinjaRMM-Cli et l’interaction de PowerShell avec NinjaOne.
Stratégies pour les champs personnalisés avancés
Nous allons montrer deux exemples d’utilisation de champs personnalisés, tous deux ayant le même objectif : déterminer si un appareil est rattaché à un domaine ou non. Un exemple utilise NinjaRMM-Cli, l’autre, PowerShell. Nous allons créer un champ personnalisé de rôle de type case à cocher appelé domainjoined (domaine rejoint), qui servira pour les deux exemples. La différence sera dans les automatisations.
1. Créer un champ personnalisé de rôle nommé domainjoined et le mapper aux ordinateurs portables Windows, aux ordinateurs de bureau Windows et aux serveurs Windows.
a) Allez dans Administration, puis Appareils, puis Champs personnalisés de rôle.
b) Cliquez sur Ajouter, puis choisissez Champ. Une boîte de dialogue apparaît.
c) Remplissez l’étiquette et le nom. L’étiquette est Domain Joined (domaine rejoint); le nom est domainjoined.
d) Sélectionnez « case à cocher » comme type de champ.
e) Cliquez sur Créer.
f) Attribuez les autorisations pour les techniciens en lecture seule, les autorisations pour les automatisations en lecture/écriture et les autorisations pour l’API en lecture/écriture.
g) Complétez la description, le texte de l’infobulle et le texte du pied de page si vous le souhaitez. Vous pouvez également choisir si ce champ personnalisé est obligatoire.
h) Cliquez sur enregistrer. La capture d’écran ci-dessous montre la boîte de dialogue Créer un champ personnalisé de rôle.
i) Allez dans Administration, puis Appareils, puis Rôles.
j) Passez la souris sur le rôle de l’appareil Windows Server pour faire apparaître le bouton « Modifier » : cliquez dessus. Une boîte de dialogue apparaît.
k) Cliquez sur Ajouter. Sélectionnez le champ.
l) Dans le menu déroulant, sélectionnez le champ personnalisé Domain Joined.
m) Cliquez sur Enregistrer.
n) Répétez l’opération pour les rôles ordinateurs Windows ordinateurs portables Windows.
2. Créer une automatisation PowerShell nommée ChkIfDomainJoinedPS.
a) Allez dans Administration, puis Bibliothèque, puis Automatisation.
b) Cliquez sur Ajouter, puis choisissez Nouveau script. La boîte de dialogue de création de script apparaît.
c) Remplissez le champ « nom » comme suit : ChkIfDomainJoinedPS.
d) Si vous le souhaitez, vous pouvez compléter la description.
e) Dans la rubrique Catégories, sélectionnez celle de votre choix.
f) Dans Langage, sélectionnez PowerShell.
g) Dans Système d’exploitation, sélectionnez Windows.
h) Dans Architecture, sélectionnez Tous.
i) Laissez les champs Variables de script et Paramètres vides.
j) Sur le côté gauche, collez le code suivant :
if ((gwmi win32_computersystem).partofdomain -eq $true) {
Ninja-Property-Set fieldName 1
} else {
Ninja-Property-Set fieldName 0
}
k) Cliquez sur Enregistrer. Saisissez la réponse à votre méthode MFA, puis fermez.
3. Créer une automatisation Batch nommée ChkIfDomainJoinedBatch.
a) Allez dans Administration, puis Bibliothèque, puis Automatisation.
b) Cliquez sur Ajouter, puis choisissez Nouveau script. La boîte de dialogue de création de script apparaît.
c) Remplissez le champ « nom » comme suit : ChkIfDomainJoinedBatch.
d) Si vous le souhaitez, vous pouvez compléter la description.
e) Dans la rubrique Catégories, sélectionnez celle de votre choix.
f) Dans Langage, sélectionnez Batch.
g) Dans Système d’exploitation, sélectionnez Windows.
h) Dans Architecture, sélectionnez Tous.
i) Laissez les champs Variables de script et Paramètres vides.
j) Sur le côté gauche, collez le code suivant :
@echo off
for /F « tokens=1* » %%G in (‘SYSTEMINFO ^| FIND /I « Domain : »‘) do set « sDomain=%~H »
IF « %sDomain% »== »WORKGROUP » (
C:\ProgramData\NinjaRMMAgent\NinjaRMM-Cli set domainjoined 0
) ELSE (
C:\ProgramData\NinjaRMMAgent\NinjaRMM-Cli set domainjoined 1
)
k) Cliquez sur Enregistrer. Saisissez la réponse à votre méthode MFA, puis fermez.
Maintenant, allez dans le tableau de bord des appareils et choisissez n’importe quel ordinateur de bureau ou portable Windows ou serveur Windows. Vérifiez le statut du champ personnalisé Domain Joined, qui doit indiquer No value. Exécutez le script ChkIfDomainJoinedPS.
Ensuite, choisissez un autre ordinateur de bureau Windows, un ordinateur portable Windows ou un serveur Windows et répétez la procédure précédente, mais cette fois, exécutez le script ChkIfDomainJoinedBatch.
Après quelques secondes, vous pouvez vérifier le champ personnalisé « Domaine joined » sur les deux appareils, et l’état du champ personnalisé sera mis à jour en conséquence.
Vous pouvez aller plus loin en créant une tâche programmée et en l’exécutant régulièrement sur tous vos appareils Windows pour maintenir le statut à jour.