Passer au contenu principal

Comment créer un script pour récupérer les informations d’un ordinateur

Publié dans: Jamf Pro, Enterprise, Education

La résolution des problèmes informatiques au téléphone peut s’avérer difficile. Les personnes des services d'assistance le savent très bien. Souvent, ils ont besoin d'informations techniques de la part d'une personne qui ne l’est pas et qui est entièrement occupée par leurs tâches quotidiennes. Obtenir les informations nécessaires telles que l’adresse IP ou la liaison à Active Directory peuvent peut-être difficile, voire impossible, au téléphone.

Comment un administrateur Jamf Pro peut-il optimiser ce processus ?

Au cours de quelques visites chez un client dans un grand district scolaire du Texas, je les ai aidés à mettre en place un outil permettant de montrer aux utilisateurs finaux des informations techniques dans une fenêtre facile à lire. Les employés du Help Desk demandent souvent aux utilisateurs d'ouvrir cet outil via le Self Service afin de leur transmettre les informations affichées sur l’écran. En moins d'une minute, un technicien peut souvent constater qu'un Mac est hors ligne, a le mauvais SSID ou que la machine doit simplement être redémarrée.

Voici ce que l'utilisateur final voit sur son écran :

Pourquoi devriez-vous faire cela ?

Trudy est l'une des personnes qui a conçu cet outil pour le district scolaire. Lorsque je lui ai demandé si elle pouvait expliquer la valeur ajoutée de l'utilisation du script elle m’a répondu que :

« Les utilisateurs sont déjà habitués au Self Service et peuvent facilement y accéder pour collecter des informations sur leur appareil. De plus en plus les utilisateurs deviennent autonomes et se servent du Self Service pour résoudre leurs problèmes. »

Elle a également ajouté qu'elle avait déjà utilisé le script deux fois ce matin-là.

Par où commencer ?

Le script que j'ai développé avec Trudy se trouve sur notre page GitHub Jamf Professional Services. Copiez ou téléchargez le script Computer Information.bash et ouvrez-le dans une application qui prend en charge le texte brut, telles que BBEdit de Bare Bones Software ou l'éditeur de code open-source Atom. Si possible, évitez TextEdit d'Apple. Les fonctions de correction par défaut peuvent rendre le script inutilisable.

Le script se compose de quatre parties.

La première partie ne fournit que des informations sur le script : qui l'a écrit, ce qu'il fait, et fournit également des instructions sur l'utilisation du script.

La deuxième partie est une longue liste d'extraits de script que j'appellerai des modules. Nous en reparlerons plus tard.

Vient ensuite la section qui formera et concevra finalement ce que l'utilisateur final verra sur son écran.

La dernière partie du script montre à l'utilisateur final toutes les informations contenues dans une fenêtre et inclut un bouton pour exécuter des actions supplémentaires si nécessaire.

Les modules

Chaque élément d'information que le script collecte et présente à l'utilisateur final n'est qu'une petite partie du code. Un module peut être composé de deux lignes de codes ou peut en comporter plus de dix.

Ceci n'est un problème que si vous n'êtes pas familier avec les scripts. Les modules sont présents dans le script à intervalles réguliers pour les rendre facilement visibles. Voici le premier dont le but est de transmettre le nom de l'ordinateur.

 # Display computer name
runCommand=$( /usr/sbin/scutil --get ComputerName )
computerName="Computer Name: $runCommand"

La première ligne avec un dièse (#) au début ne fait rien. C'est juste un commentaire. Les deuxième et troisième lignes font à leur tour des merveilles.

Ouvrez l'application Terminal, qui se trouve dans le répertoire sous / Applications / Utilitaires. Copiez la deuxième ligne, collez-la dans le terminal et cliquez sur Retour. Effectuez la même étape pour la troisième ligne.

Ensuite, rajoutez :

 echo "$computerName"

Pas besoin de plus. Vous verrez ensuite la réponse de l’ordinateur :

 Computer Name: MooseBook Pro

Ceci est la première ligne d’information que l’utilisateur verra. Chaque ligne d'information supplémentaire est collectée de la même manière - un module à la fois. Chaque information est stockée sous un nom de variable tel que : computerName. (Chaque variable décrit le type d’information qu’il contient). Nous utiliserons ensuite ces variables.

Afficher les informations

Vers la fin du script vous verrez la partie ci-dessous :

 ## Format information #####
displayInfo="----------------------------------------------
GENERAL

$computerName
$serialNumber
$upTime
----------------------------------------------
NETWORK

$activeServices
$SSID
$SSH
$timeInfo
$timeServer
----------------------------------------------
ACTIVE DIRECTORY

$AD
$testAD
----------------------------------------------
HARDWARE/SOFTWARE

$diskSpace
$operatingSystem
$batteryCycleCount
----------------------------------------------"

Cet article nous permet de formater l’information que nous récoltons. La longue série de traits d'union servent de démarcation visuelle, suivi par des titres de section (GENERAL, NETWORK, ACTIVE DIRECTORY et HARDWARE/SOFTWARE) au contenu logiquement séparés les uns des autres pour faciliter leur lisibilité.

Pour afficher chaque module individuel, ajouter un $ au début du nom de la variable, dans l’ordre qui vous convient le mieux.

Support à distance

Le reste du script prend les informations fournies ci-dessus et les affiche à l'utilisateur final. N'oubliez pas que la fenêtre affiche également le bouton “Enable Remote Support” (Activer le support à distance). Ce dernier peut également être personnalisé.

J'ai ajouté trois exemples d'actions pouvant être effectuées en cliquant sur le bouton. Le premier exemple montre une commande qui ouvre « TeamViewer », une application de contrôle à distance populaire. Le deuxième exemple exécute une règle de Jamf Pro. Et dans le troisième exemple, les informations générées sont envoyées par email au Help Desk.

Examinez de plus près la section suivante du script:

 # open a remote support application
# /usr/bin/open -a "/Applications/TeamViewer.app"

# run a policy to enable remote support
# /usr/local/bin/jamf policy -event EnableRemoteSupport 

# email computer information to help desk
/usr/bin/open "mailto:support@talkingmoose.pvt?subject=Computer Information ($serialNumber)&body=$displayInfo"

La première ligne est simplement une description de ce que fait la commande. La deuxième ligne de chaque groupe est la commande qui effectue la tâche. (Remarque : la dernière commande peut être déplacée à la ligne suivante, mais il ne s'agit toujours que d'une seule ligne.)

Les deux premières commandes contiennent des dièses (ou HashTag) (#) au début car nous ne voulons pas qu’elles soient exécutées. La troisième commande, qui envoie un e-mail, est actuellement activée. Pour activer l'une des deux autres commandes, retirez le dièse au début des commandes tout en ajoutant un dièse au début de la commande pour envoyer l'e-mail (ici dans la dernière ligne) pour le désactiver. Vous pouvez également supprimer toutes les commandes et ajouter les vôtres pour effectuer d'autres tâches.

Mise à disposition dans le Self-Service

Une fois que vous avez adapté le script à vos besoins, vous pouvez l'ajouter à Jamf Pro sous Réglages > Gestion des ordinateurs > Scripts (Settings > Computer Information > Scripts). Par exemple, vous pouvez nommer le script « Informations de l'ordinateur », puis l’enregistrer.

Sélectionnez ensuite Ordinateurs > Règles (Computers > Policies) et créez une nouvelle règle. Nommez-le quelque chose de similaire à « Informations de l'ordinateur » et ajoutez-le au script « Informations sur l'ordinateur ». Assurez-vous que la fréquence de la règle est « Ongoing » pour permettre aux utilisateurs finaux d'exécuter le script plusieurs fois.

Activez ensuite la règle pour le Self-Service. Si vous souhaitez changer le nom du bouton « Install » en quelque chose de plus pertinent pour votre entreprise ou rajouter une icône, vous pouvez le faire en utilisant la méthode suivante : “/System/Library/CoreServices/CoreTypes.bundle/

Contents/Resources/ToolbarInfo.icns (N’oubliez pas qu’il est possible d’utiliser « Aperçu » pour convertir l’image en png avant de l’inclure à la règle.)

Si vous avez besoin d'aide !

On n’est pas tous à l’aise avec les scripts. Il faut s’entrainer, et la meilleure manière de le faire est en créant des modules. Ces derniers sont très similaires à la création d'attributs d'extension, qui récoltent des fragments d'informations de l’ordinateur et les ajoutent à Jamf Pro. Regardez sous Réglages > Gestion des ordinateurs > Attributs d’extension (Settings > Computer Management > Extension Attributes) le bouton “Nouveau à partir du modèle” pour trouver des morceaux de code qui vous permettront de créer vos propres modules. Vous y trouverez près de 200 éléments.

N'oubliez pas de vous rendre sur Jamf Nation pour parcourir les discussions à ce sujet. De mon côté j’ai créé une discussion sur les modules pour ceux qui ont des questions ou qui ont besoin d’aide.

Pour vous entrainer à la construction de scripts essayez la tâche suivante : apprenez à extraire quelque chose du finder de macOS, puis mettez-le dans une commande de terminal. En général, l’écriture de scripts n’est rien d’autre que de faire une commande après l’autre - tout comme ce script d’information de l’ordinateur.

Si vous n'êtes pas encore client de Jamf, demandez une version d’essai de Jamf Pro aujourd’hui !