PowerShell pour des exemples: ce qui peut être fait
PowerShell est un shell d’interface de ligne de commande développé par Microsoft et doté d’un puissant langage de script. Windows PowerShell est déjà intégré au système d’exploitation (dans Windows 10, il est devenu la fenêtre de terminal par défaut en appuyant sur la combinaison de touches Windows + X) et il existe aussi une version plateforme croisée un peu plus limité en fonctionnalités mais également compatible avec les systèmes macOS et Linux: PowerShell 7 disponible pour Windows, macOS et Linux: nouveautés.
Dans l’article Windows PowerShell, comment fonctionne l’interface qui remplace l’invite de commande nous avions décrit « les fondamentaux » de PowerShell tandis que dans d’autres articles nous avons vu comment utiliser différents types de scripts pour gérer des besoins concrets: voir ces pages.
Dans l’article Gérer les PC sur un réseau local avec PowerShell nous avons même expliqué comment configurer et administrer les systèmes connectés au réseau local.
Même dans l’étude récente Bloquer l’accès Internet pour un programme Windows, nous avons présenté deux scripts qui vous permettent d’interagir avec la configuration du système d’exploitation et notamment d’ajouter et de supprimer des règles de pare-feu entrantes et sortantes.
La puissance du pipeline PowerShell: interagir avec les fichiers et les dossiers
La puissance de PowerShell réside dans la capacité à utiliser le soi-disant pipeline. Similaire à ce qui se passe sous Linux, en combinant plusieurs commandes PowerShell et en les séparant avec le symbole | Il est également possible de mener des activités très complexes et articulées. Prenons l’exemple suivant:
Get-ChildItem -Path « C: Users *. Docx » -Recurse | Répertoire de sélection d’objets, nom
La première commande, celle à gauche du tuyau (|), extrait la liste de tous les fichiers avec l’extension .docx contenu dans le dossier C: Utilisateurs et dans tous les sous-dossiers (-Infirmière).
L ‘production produit par cette première commande est passé en aval et traité par la commande qui suit plus à droite. Dans ce cas Select-Object procède au traitement de ce qui est reçu de Get-ChildItem et pour extraire uniquement les répertoires et les noms de fichiers (colonnes Annuaire est Nom).
Ajout également | Export-CSV $ env: profil utilisateur Desktop file_docx.csv la liste des fichiers .docx il sera stocké dans un fichier CSV gérable avec Excel ou LibreOffice Calc.
Avec ficelle $ env: profil utilisateur il était nécessaire d’utiliser la variable d’environnement bien connue % profil de l’utilisateur%: dans l’exemple, le fichier CSV est généré et enregistré dans le dossier Bureau du compte utilisateur actuellement utilisé.
Pour créer un fichier HTML avec leproduction de la commande Select-Object, utilisez simplement à la place | ConvertTo-Html> $ env: profil utilisateur Desktop file_docx.html.
Avec une telle approche, il est possible d’effectuer des élaborations sur tout type de production ou même travailler sur le contenu des fichiers texte et CSV.
Les commandes à utiliser dans ce cas sont Obtenir du contenu est Importer-CSV.
Examinons le premier script PowerShell dans l’article Bloquer l’accès Internet pour un programme Windows.
$ d = ‘C: TEMP’; Get-ChildItem -Path « $ d *. Exe » -Infirmière | Select-Object -ExpandProperty Nom | ForEach-Object New-NetFirewallRule -DisplayName « Blocked by PowerShell $ _ (out) » -Direction Sortant -Bloc d’action -Profil Quelconque -Enabled True -Programme $ d « » $ _
Commencez par créer une variable $ d stocker la chaîne là-bas C: TEMP. Immédiatement à droite, le caractère a été utilisé ; pour indiquer que l’instruction se termine à ce stade (il n’y a pas production passer aux commandes à droite).
Avec la commande Get-ChildItem déjà vu précédemment, toutes les données relatives aux fichiers exécutables contenus dans le chemin indiqué sont extraites (variable $ d). Ce que vous obtenez est un production comparable à celui produit par les témoins dir est ls.
En continuant vers la droite, leproduction est traité par Select-Object qui non seulement extrait le nom du fichier exécutable mais utilise -Agrandir la propriété pour supprimer toutes les données supplémentaires et obtenir une chaîne avec juste le nom du fichier.
La prochaine commande ForEach-Object exécute l’opération spécifiée entre accolades pour chacun des noms de fichiers extraits. Dans ce cas, le script PowerShell crée une nouvelle règle de pare-feu à l’aide de la commande Nouveau-NetFirewallRule.
La variable $ _ il permet de passer le nom du fichier extrait avec la commande précédente.
Comment lire les données du registre avec PowerShell
Essayez d’utiliser la commande suivante dans la fenêtre PowerShell:
Get-ItemProperty HKLM: Software Wow6432Node Microsoft Windows CurrentVersion Uninstall *
Vous obtiendrez la liste des programmes installés sous Windows extraite en lisant le contenu de la clé de registre HKLM Software Wow6432Node Microsoft Windows CurrentVersion Uninstall. Comme on le verra, cependant, leproduction ce sera presque illisible.
Dans ce cas également, il est donc possible de recourir à pipeline et aux commandes Select-Object pour extraire les informations d’intérêt:
Get-ItemProperty HKLM: Software Wow6432Node Microsoft Windows CurrentVersion Uninstall * | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
Dans l’exemple, nous avons choisi de collecter le nom du programme installé, le numéro de version, le développeur et la date d’installation. Utilisation des commandes Export-CSV est ConvertTo-Html vu ci-dessus, vous pouvez produire la liste des logiciels installés au format CSV ou HTML.
Interagissez avec le journal des événements, les services système et les mises à jour installées
Avec les commandes PowerShell Get-Eventlog est Obtenir le service vous pouvez respectivement interagir avec les informations stockées dans le journal des événements Windows (Windows + R, eventvwr.msc) et avec la liste des services installés dans le système d’exploitation.
La commande Où-objet il est utile pour sélectionner les éléments qui répondent aux critères définis.
Taper la commande PowerShell Get-HotFix vous obtenez la liste des mises à jour installées sur votre système.
En écrivant ce qui suit, par exemple, vous pouvez vérifier si la mise à jour marquée de l’identifiant KB4534132 est installée ou non:
Get-HotFix | Où-objet HotfixID -eq « KB4534132 »
En d’autres termes, il a été demandé d’extraire tous les éléments pour lesquels, dans la colonne HotfixID, dans ce cas, entrez la chaîne KB4534132.
La syntaxe utilisable est documentée par Microsoft à cette adresse.
Par exemple, en utilisant la commande Get-Process | Ensemble de travail Where-Object -GT (200000 * 1024) il est possible d’obtenir instantanément la liste des processus en cours qui occupent plus de 200 Mo en mémoire (voir aussi Disque dur et SSD, les dimensions ne coïncident pas avec celles déclarées par le constructeur).
Découvrez d’avantage plus d’articles dans nos catégories windows, Internet et Ordinateurs et internet.
Finalement Merci pour votre visite on espère que notre article PowerShell pour des exemples: ce qui peut être fait
vous aide, pour nous aider, on vous invite à partager l’article sur Facebook, instagram et e-mail avec les hashtags ☑️ #PowerShell #pour #des #exemples #qui #peut #être #fait ☑️!