in

Rédaction de votre premier script PowerShell complet

Il y a quelques semaines, The Geek vous a montré comment utiliser l’invite de commande pour savoir quand votre ordinateur a été démarré en dernier. Dans cette dernière installation de Geek School for PowerShell, nous allons écrire une commande PowerShell réutilisable pour faire la même chose.

Assurez-vous de lire les articles précédents de la série:

Rédaction de votre premier scénario

La première chose que nous devons faire est de trouver un moyen d’accéder aux informations que nous recherchons. Puisque nous traitons des informations de gestion, nous devons probablement jeter un coup d’œil à l’utilisation de WMI, qui a en effet une classe appelée Win32_OperatingSystem qui vous permet d’afficher des informations détaillées sur votre système d’exploitation, y compris la dernière fois qu’il a démarré.

Alors maintenant que nous savons où nous pouvons trouver les informations que nous recherchons, ouvrez l’ISE et tapez ce qui suit.

Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost |

Select-Object -Property CSName, LastBootUpTime

Cliquez maintenant sur le bouton vert «Exécuter le script» ou appuyez sur la touche F5 de votre clavier pour tester le code.

Les horaires WMI peuvent être un peu énigmatiques. Par cela, nous voulons dire que si vous regardez la propriété LastBootUpTime, elle dit 19/03/2013 à 18:26:21, mais pour une raison quelconque, les gars de WMI ont décidé de concaténer tout cela en une seule chaîne. Heureusement pour nous, nous n’avons pas à nous soucier de l’analyse manuelle de la chaîne car il existe un moyen plus simple de le faire, bien que plus avancé. Vous devrez changer la partie Select-Object du code pour ressembler à ceci:

Select-Object -Property CSName, @ {n = « Last Booted »;

e = {[Management.ManagementDateTimeConverter]:: ToDateTime ($ _. LastBootUpTime)}}

Ce que nous faisons ici est de créer une propriété personnalisée appelée «Last Booted» et de spécifier que sa valeur doit être le résultat de l’appel de la méthode statique ToDateTime sur la propriété LastBootUpTime de l’objet pipeline actuel. Votre code devrait maintenant ressembler à ceci.

L’exécution du code maintenant donnera un temps de dernier démarrage beaucoup plus lisible.

Maintenant que nous sommes satisfaits des fonctionnalités de base de notre script, nous devons l’enregistrer. Pour plus de simplicité, sauvegardons-le comme suit:

C: Get-LastBootTime.ps1

Passez maintenant à la moitié inférieure de l’ISE et exécutez ce qui suit:

C: Get-LastBootTime.ps1

Génial! Notre script fonctionne comme prévu, mais il y a toujours un problème avec notre script. Nous avons codé en dur le nom de l’ordinateur pour lequel nous voulons obtenir l’heure du dernier démarrage. Au lieu de coder en dur les valeurs, nous devrions plutôt fournir un paramètre afin que quiconque utilise le script puisse choisir l’ordinateur sur lequel il exécute le script. Pour ce faire, allez en haut de votre script et procédez comme suit.

param (
[string]$ ComputerName
)

Remplacez ensuite la valeur localhost codée en dur par la variable $ ComputerName. Votre script devrait maintenant ressembler à ceci:

Enregistrez votre script, puis revenez à la moitié inférieure de l’ISE et affichez l’aide pour votre script.

aide C: Get-LastBootTime.ps1

Génial, nous pouvons maintenant spécifier le nom de l’ordinateur que nous voulons obtenir le dernier moment de démarrage pour l’utilisation de notre nouveau paramètre ComputerName. Malheureusement, il y a encore quelques problèmes. Premièrement, le paramètre ComputerName est facultatif et deuxièmement, c’est le plus laid que j’aie jamais vu, alors résolvons ces problèmes rapidement. Pour rendre le paramètre ComputerName obligatoire, modifiez le contenu du bloc de paramètres comme suit.

[Parameter(Mandatory=$true)][string]$ ComputerName

En ce qui concerne la création d’un meilleur fichier d’aide, la méthode la plus courante consiste à utiliser l’aide basée sur les commentaires. Cela signifie que nous ajoutons simplement un commentaire très long en haut du script.

<#
.SYNOPSIS
Indique le dernier démarrage de votre PC.
.LA DESCRIPTION
Il s’agit d’une fonction wrapper WMI pour obtenir l’heure du dernier démarrage de votre PC.
.PARAMETER ComputerName
Le nom de l’ordinateur sur lequel vous souhaitez exécuter la commande.
.EXEMPLE
Get-LastBootTime -ComputerName localhost
.LIEN
www.howtogeek.com
#>

Une fois que tout cela est fait, vous devriez vous retrouver avec un script ressemblant à ceci.

Voyons maintenant notre nouveau fichier d’aide.

Ahhh, c’est super! Maintenant que notre script est terminé, nous avons une dernière chose à faire: tester. Pour cela, je vais quitter l’ISE et retourner dans la console PowerShell juste pour que nous puissions nous assurer qu’il n’y a pas d’anomalies.

Si vous commencez avec une simple doublure et que vous continuez à vous en servir comme nous l’avons fait dans ce guide, vous vous familiariserez rapidement avec elle. C’est tout pour cette fois les gens, rendez-vous dans la prochaine installation de Geek School.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Activer la saisie semi-automatique de la correspondance partielle dans la barre d'adresse de Firefox

Activer la saisie semi-automatique de la correspondance partielle dans la barre d’adresse de Firefox

Comment ajouter des mots clés de recherche à Safari pour des recherches plus rapides et plus spécifiques

Comment ajouter des mots clés de recherche à Safari pour des recherches plus rapides et plus spécifiques