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 :
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 :
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 :
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 :
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 :
Listons maintenant toutes les propriétés :
Get-Process | Select *
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 :
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 :
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
La partie Journaux Windows contient les événements standards du poste.
La partie Journaux des applications et des services contient des évènements spécifiques de Windows ainsi que d’autres applications.
Ci-dessous la commande PowerShell pour obtenir la liste des événements :
Get-EventLog -list
Ci-dessous le résultat obtenu :
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 :
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 :
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 :
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 :
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 :...