Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Gérer votre système

PowerShell et les services Windows

Il est souvent utile de pouvoir démarrer, redémarrer ou arrêter des services Windows pour différentes actions, par exemple arrêter un service spécifique pour désinstaller une application.

Différentes cmdlets existent nativement pour gérer les services Windows.

D’autres solutions natives existent mais elles sont plus anciennes, nous ne les utiliserons pas.

Nous allons vérifier les cmdlets disponibles contenant le mot service.

Get-Command | where {$_.name -like "*service*" -and $_.source  
-like "*PowerShell.Management*"} 

Ci-dessous le résultat obtenu :

images/33RI01.png

Les commandes qui nous seront utiles seront les suivantes :

  • Get-Service

  • Start-Service

  • Stop-Service

  • Restart-Service

  • Suspend-Service

Le service qui nous servira d’exemple est le suivant :

  • Nom complet : Microsoft Intune Management Extension

  • Nom : IntuneManagementExtension

Ci-dessous le service depuis la partie Services de Windows :

images/33RI02.png

1. Get-Service : récupérer les informations du service

La cmdlet Get-Service permet de récupérer différentes informations :

  • nom du service,

  • nom complet,

  • état du service,

  • type de démarrage.

Ci-dessous la commande complète :

Get-Service IntuneManagementExtension 

Ci-dessous le résultat obtenu pour le service en question :

images/33RI03.png

Certaines propriétés...

PowerShell et les processus

Il est souvent utile de pouvoir vérifier l’état des processus en cours sur votre poste ou un processus défini pour par exemple l’arrêter.

Différentes cmdlets existent nativement pour gérer les services Windows.

Nous allons vérifier les cmdlets disponibles contenant le mot process.

Get-Command | where {$_.name -like "*process*" -and $_.source  
-like "*PowerShell.Management*"} 

Ou comme ci-dessous :

Get-Command *Process* -CommandType Cmdlet | Where {$_.Source -eq  
"Microsoft.PowerShell.Management"} 

Ci-dessous le résultat obtenu :

images/33RI08.png

Les commandes qui nous seront utiles seront les suivantes :

  • Get-Process

  • Start-Process

  • Stop-Process

  • Wait-Process

1. Get-Process : lister les processus en cours

Par défaut sur Windows, il est possible de voir l’état des processus en allant dans le gestionnaire de tâches puis dans Processus ou alors dans PowerShell pour le résultat suivant :

images/33RI09.png

Listons maintenant toutes les propriétés :

Get-Process | Select * 
images/33RI10.png

Vous pouvez en apprendre davantage sur les options du pipe (|) dans le chapitre Le pipeline.

Nous obtenons donc de nombreuses informations.

Si vous souhaitez vérifier l’état d’un processus en particulier, il faudra ajouter le nom de ce dernier à la cmdlet, tel que ci-dessous avec le processus Outlook :

images/33RI11.png

Il peut parfois être...

PowerShell et le gestionnaire d’évènements

La première étape pour comprendre comment utiliser le gestionnaire d’évènements avec PowerShell est de vérifier si des cmdlets existent.

Pour cela, nous utiliserons la cmdlet Get-Command.

Get-Command *Event* -CommandType Cmdlet | Where {$_.Source -eq  
"Microsoft.PowerShell.Management"} 

Ci-dessous le résultat :

images/33RI17.png

1. Lister les différentes catégories d’évènements

Dans la version graphique du gestionnaire d’évènements, ceux-ci sont répertoriés dans deux dossiers distincts.

  • Journaux Windows

  • Journaux des applications et des services

images/33RI18.png

La partie Journaux Windows contient les événements standards du poste.

images/33RI19.png

La partie Journaux des applications et des services contient des évènements spécifiques de Windows ainsi que d’autres applications.

images/33RI20.png

Ci-dessous la commande PowerShell pour obtenir la liste des événements :

Get-EventLog -list 

Ci-dessous le résultat obtenu :

images/33RI21.png

Le problème avec cette cmdlet est que certains évènements ne sont pas accessibles : ceux localisés dans des sous-dossiers tels qu’Intel ou encore Microsoft, dans la partie Journaux des applications et des services. Cela peut être embêtant car le dossier Microsoft contient de nombreux journaux d’évènements...

PowerShell et les tâches planifiées

La première étape pour comprendre comment utiliser le gestionnaire d’évènements avec PowerShell est de vérifier si des cmdlets existent.

Pour cela, nous utiliserons la cmdlet Get-Command.

Get-Command *ScheduledTask* 

Ci-dessous le résultat :

images/33RI30.png

Nous allons voir ci-dessous quelques exemples d’utilisations.

Lister toutes les tâches planifiées

La cmdlet à utiliser pour cela est la suivante :

Get-ScheduledTask 

Ci-dessous le résultat :

images/33RI31.png

Lister les tâches planifiées actives ou désactivées

Nous allons ici utiliser la même cmdlet puis filtrer sur la propriété State en recherchant soit Disabled soit Ready.

Get-ScheduledTask | Where{$_.State -eq "Disabled"} 
Get-ScheduledTask | Where{$_.State -eq "Ready"} 

Ci-dessous le résultat :

images/33RI32.png
images/33RI33.png

Lister les tâches planifiées d’un dossier en particulier

Les tâches planifiées sont organisées en différents sous-dossiers pour une meilleure gestion (lenovo, microsoft, Intune, Office...).

Pour lister les tâches planifiées d’un dossier en particulier, il faudra utiliser la cmdlet Get-ScheduledTask suivie du paramètre TaskPath puis spécifier le nom du dossier entre deux astérisques.

Ci-dessous un exemple avec le dossier office :...

PowerShell et le presse-papiers

Avec PowerShell, il est possible de récupérer les différents éléments inscrits dans le presse-papiers, c’est-à-dire après avoir réalisé une action Copier ou [Ctrl] C.

PowerShell offre nativement deux cmdlets pour gérer le presse-papiers Windows :

  • Get-Clipboard

  • Set-Clipboard

1. Get-Clipboard : récupérer le contenu copié

Différents paramètres seront à ajouter à la cmdlet Get-Clipboard en fonction du type de contenu ou format sur lequel vous souhaitez agir : texte, image, lien…

Pour comprendre le fonctionnement de cette cmdlet, utilisons la cmdlet Get-Help, comme ci-dessous :

Get-Help Get-Clipboard 

Ci-dessous le résultat obtenu :

images/RI33_GetHelp_Clipboard.png

Nous remarquons les formats suivants :

  • Text

  • FileDropList

  • Image

  • Audio

Pour avoir davantage d’informations, il suffit d’ajouter le paramètre -detailed.

Get-Help Get-Clipboard -detailed 

a. Presse-papiers et texte

Nous allons dans cet exemple récupérer le contenu du presse-papiers après avoir copié du texte en utilisant un simple [Ctrl] C sur la zone en question.

Nous allons dans cet exemple récupérer le contenu du presse-papiers après avoir copié le chemin d’un dossier depuis l’explorateur Windows.

La valeur du texte est : C:\test.

Un simple Get-Clipboard retournera le résultat suivant :...