Commandes PowerShell Chaque Développeur Doit Savoir: 50+ Cmdlets pour Faire Avancer les choses, Surveiller les performances, Déboguer

Classé dans : Articles | 0

De nombreux développeurs aiment PowerShell, et pour une bonne raison: il ajoute de la puissance, des fonctionnalités et de la flexibilité à l’invite de commandes Windows, où beaucoup d’entre nous passent beaucoup de temps. Il ne, cependant, avec un peu d’une courbe d’apprentissage, mais une fois que vous avez maîtrisé les commandes essentielles que vous devez savoir, c’est de la productivité sur les stéroïdes.,

Les commandes PowerShell sont connues sous le nom de cmdlets, et ces cmdlets sont la force motrice derrière ses capacités fonctionnelles. Des commandes qui améliorent l’expérience globale de Windows aux commandes utiles pour le travail de développement, il existe des dizaines de commandes importantes que les développeurs doivent connaître., Nous avons mis en place cette liste pour servir de guide de référence pratique pour ceux qui commencent tout juste à exploiter la puissance de PowerShell ainsi que ceux qui veulent améliorer leur expérience PowerShell, y compris:

  • Cmdlets de base PowerShell
  • commandes PowerShell pour faire avancer les choses
  • Cmdlets pour la surveillance des performances, les tests et le débogage

en plus vos scripts., Le paramètre WhatIf est particulièrement utile pour tester les scripts PowerShell sans les exécuter réellement (@pluralsight). Il existe généralement plusieurs paramètres et méthodes disponibles pour chaque commande. Les commandes énumérées ci-dessous sont un bon point de départ pour tout développeur, mais pour en tirer pleinement parti, vous devez également maîtriser les paramètres et d’autres méthodes.

applets de commande PowerShell de base

Ces commandes PowerShell de base sont utiles pour obtenir des informations dans différents formats, configurer la sécurité et créer des rapports de base.,

Get-Command

Get-Command est une applet de commande de référence facile à utiliser qui affiche toutes les commandes disponibles pour une utilisation dans votre session en cours.

tapez simplement cette commande:

get-command

la sortie ressemblera à ceci (@MS_ITPro):

2. Get-Help

la commande Get-Help est essentielle pour toute personne utilisant PowerShell, offrant un accès rapide aux informations dont vous avez besoin pour exécuter et travailler avec toutes les commandes disponibles.

Si vous voulez quelques exemples, par exemple, vous devez entrer ce qui suit (@jp_jofre):

3., Set-ExecutionPolicy

Microsoft désactive les scripts par défaut pour empêcher l’exécution de scripts malveillants dans l’environnement PowerShell. Cependant, les développeurs veulent pouvoir écrire et exécuter des scripts, de sorte que la commande Set-ExecutionPolicy vous permet de contrôler le niveau de sécurité entourant les scripts PowerShell. Vous pouvez définir l’un des quatre niveaux de sécurité suivants:

  • Restreint: Il s’agit du niveau de sécurité par défaut qui empêche l’exécution des scripts PowerShell. Dans ce niveau de sécurité, vous ne pouvez entrer des commandes que de manière interactive.,
  • tous signés: ce niveau de sécurité permet aux scripts de s’exécuter uniquement s’ils sont signés par un éditeur digne de confiance.
  • Remote Signed: dans ce niveau de sécurité, tous les scripts PowerShell créés localement sont autorisés à s’exécuter. Les Scripts créés à distance ne sont autorisés à s’exécuter que s’ils ont été signés par un éditeur réputé.
  • sans restriction: comme son nom l’indique, le niveau de sécurité sans restriction permet à tous les scripts de s’exécuter en supprimant toutes les restrictions de la stratégie d’exécution.,

De même, si vous travaillez dans un environnement inconnu, vous pouvez facilement connaître la stratégie d’exécution actuelle en utilisant cette commande:

Get-ExecutionPolicy

Consultez ce thread sur SuperUser pour plus d’informations sur la configuration de la stratégie d’exécution dans PowerShell. (@StackExchange)

Get-Service

Il est également utile de savoir quels services sont installés sur le système., Vous pouvez facilement accéder à ces informations avec la commande suivante:

Get-Service

La sortie ressemblera à ce qui suit (@MS_ITPro):

Si vous avez besoin de savoir si un service spécifique est installé, vous pouvez ajouter le commutateur-Name et le nom du service, et Windows affichera l’état du service. De plus, vous pouvez tirer parti des capacités de filtrage pour renvoyer un sous-ensemble spécifique de services actuellement installés., L’exemple suivant entraînera une sortie de données de la commande Get-Service qui a été acheminée vers l’applet de commande Where-Object, qui filtre ensuite tout autre que les services qui ont été arrêtés:

Get-Service | Where-Object {$_.status -eq "stopped"}

Consultez cet article pour quelques exemples supplémentaires de Get-Service en action.

5. ConvertTo-HTML

Si vous avez besoin d’extraire des données que vous pouvez utiliser dans un rapport ou envoyer à quelqu’un d’autre, le ConvertTo-HTML est un moyen simple de le faire., Pour l’utiliser, dirigez la sortie d’une autre commande vers la commande ConvertTo-HTML et utilisez le commutateur-Property pour spécifier les propriétés de sortie souhaitées dans le fichier HTML. Vous devrez également fournir un nom de fichier.

Par exemple, le code suivant crée une page HTML qui répertorie les alias PowerShell dans la console actuelle:

PS C:\> get-alias | convertto-html > aliases.htmPS C:\> invoke-item aliases.htm

Bonus: L’applet de commande

Export-CSV

fonctionne de la même manière, mais exporte les données vers un .Fichier CSV plutôt que HTML., Utiliser

Select-Object

pour spécifier les propriétés que vous souhaitez être inclus dans la sortie.

Consultez cet article de 4sysops pour plus d’informations sur l’utilisation efficace de ConvertTo-HTML (@adbertram).

6. Get-EventLog

Vous pouvez réellement utiliser PowerShell pour analyser les journaux d’événements de votre machine à l’aide de l’applet de commande Get-EventLog. Plusieurs paramètres sont disponibles. Utilisez le commutateur-Log suivi du nom du fichier journal pour afficher un journal spécifique., Vous utiliseriez la commande suivante, par exemple, pour afficher le journal de L’Application:

Get-EventLog -Log "Application"

Découvrez quelques autres exemples de Get-EventLog en action dans cet article (@nextofwindows). D’autres paramètres communs comprennent (@SS64):

  • -Verbose
  • Debug
  • -ErrorAction
  • -ErrorVariable
  • -WarningAction
  • -Outvariable
  • -OutBuffer
  • -OutVariable

Get-Process

Un peu comme l’obtention d’une liste des services disponibles, il est souvent utile d’être en mesure d’obtenir rapidement une liste de tous les processus en cours d’exécution., La commande Get-Process met ces informations à portée de main.

Bonus: Utilisez Stop-Process pour arrêter les processus qui sont gelés ou qui ne répondent plus. Si vous n’êtes pas sûr du processus qui vous retient, utilisez Get-Process pour identifier rapidement le processus problématique. Une fois que vous avez le nom ou l’ID de processus, utilisez Stop-Process pour le terminer.

Voici un exemple., Exécutez cette commande pour terminer toutes les instances en cours d’exécution du bloc-notes (@MS_ITPro):

Stop-Process -processname notepad

Vous pouvez également utiliser des caractères génériques, tels que l’exemple suivant qui termine toutes les instances du bloc-notes ainsi que tous les autres processus commençant par note:

Stop-Process -processname note*

consultez cet article (il est possible de le faire. Clear-History

Que Faire si vous souhaitez effacer les entrées de votre historique de commandes? Facile à utiliser L’applet de commande Clear-History. Vous pouvez également l’utiliser pour supprimer uniquement les commandes spécifiques., Par exemple, la commande suivante supprimerait les commandes qui incluent « help” ou se terminent par « command” (@MS_ITPro):

PS C:\> Clear-History -Command *help*, *command

Si vous souhaitez ajouter des entrées à une session, utilisez:

Add-History

Consultez cet article pour obtenir des informations utiles sur la suppression de l’historique et le@MS_ITPro).,

Where-Object

Where-Object est l’une des applets de commande les plus importantes à connaître, car elle vous permet de prendre un ensemble de données et de le transmettre plus loin dans votre pipeline pour le filtrage (@jonathanmedd):

Get-Service | Where-Object {$_.Status -eq 'Running'}Status Name DisplayName------ ---- -----------Running AdobeARMservice Adobe Acrobat Update ServiceRunning AppHostSvc Application Host Helper ServiceRunning Appinfo Application InformationRunning AudioEndpointBu... Windows Audio Endpoint BuilderRunning Audiosrv Windows AudioRunning BFE Base Filtering EngineRunning BITS Background Intelligent Transfer Ser...Running BrokerInfrastru... Background Tasks Infrastructure Ser...Running Browser Computer BrowserRunning CDPSvc Connected Devices Platform Service

10. Set-AuthenticodeSignature

Si vous souhaitez sécuriser votre travail en production et empêcher toute modification, utilisez Set-AuthenticodeSignature pour ajouter une signature Authenticode à un script ou un fichier.

Commandes PowerShell pour faire avancer les choses

En matière de productivité, PowerShell peut vous aider à faire avancer les choses avec les commandes suivantes.

11., ForEach-Object

L’applet de commande ForEach-Object effectue une opération sur chaque élément d’un groupe spécifié d’objets d’entrée. Bien que de nombreuses applets de commande fonctionnent de toute façon avec chaque objet d’une collection, vous aurez besoin de ForEach-Object pour les situations dans lesquelles vous souhaitez apporter d’autres modifications ou appliquer une mise en forme spécifique à tous les objets d’une collection.

Voici un exemple (@MS_ITPro)., Si vous souhaitez afficher une liste de noms de processus et que ces noms s’affichent en cyan, vous pouvez essayer ce qui suit:

Get-Process | Write-Host $_.name -foregroundcolor cyan

Mais ce qui précède produira l’erreur suivante:

At line:1 char:25+ get-process | write-host <<<< $_.name -foregroundcolor cyan Write-Host : The input objectcannot be bound to any parameters for the command either because the command does nottake pipeline input or the input and its properties do not match any of the parametersthat take pipeline input.

Car l’applet de commande Write-Host ne comprend pas ce que vous

Donc, l’utilisation de l’applet de commande ForEach-Object résout ce problème:

Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan}

Consultez ce tutoriel pour plus d’informations sur ForEach-Object et travailler avec des boucles (@tomsitpro).

12., Claire-Contenu

Si vous voulez supprimer le contenu d’un élément, mais de conserver l’élément lui-même, vous allez utiliser le Clair-Contenu de l’applet de commande:

Clear-Content C:\Temp\TestFile.txt

Vous pouvez également utiliser cette commande pour effacer le contenu de tous les fichiers avec l’extension de fichier. Le code suivant effacerait le contenu de tous les fichiers avec le .txt extension, par exemple:

Clear-Content -path * -filter *.TXT –force

Vous pouvez également utiliser des caractères génériques. De plus, vous pouvez effacer le contenu de tout type de fichier, de .les fichiers txt pour .doc, .xls, et plus encore.

consultez ce post pour plus de détails.

13., Checkpoint-Computer

Si vous effectuez des modifications majeures ou exécutez une expérience risquée, vous pouvez définir un point de restauration sur votre machine avec L’applet de commande Checkpoint-Computer.

notez que vous ne pouvez créer un point de restauration à l’aide de cette applet de commande qu’une fois toutes les 24 heures. Si vous exécutez à nouveau la commande, elle conservera le point de restauration précédent:

consultez cet article de MCP Mag pour en savoir plus (@MCPmag).

Comparer-Objet

Il est souvent utile de pouvoir comparer les deux objets directement., Vous pouvez le faire en utilisant Compare-Object, qui génère un rapport sur les différences entre deux ensembles tels que (@Marcam923):

15. ConvertFrom-StringData

Utilisez ConvertFrom-StringData pour convertir une chaîne contenant une ou plusieurs paires de valeurs en une table de hachage. Voici un exemple de ce à quoi ressemble la commande:

$settings = $TextData | ConvertFrom-StringData

Cette commande est utile dans diverses situations, par exemple lorsque vous souhaitez enregistrer les paramètres d’un script PowerShell pour permettre aux autres de modifier les paramètres sans travailler directement dans le code du script.,

ConvertTo-SecureString

Convertissez une chaîne standard chiffrée en chaîne sécurisée ou du texte brut en chaîne sécurisée à l’aide de ConvertTo-SecureString. Cette applet de commande est utilisée conjointement avec ConvertFrom-SecureString et Read-Host (@AdmArsenal):

ConvertTo-XML

Utilisez l’applet de commande ConvertTo-XML pour créer une représentation XML d’un objet. C’est aussi ce qu’on appelle la sérialisation, et c’est un processus utile pour enregistrer des données pour une réutilisation ultérieure. Notez qu’il est important que votre expression écrive des objets dans le pipeline., Tout ce qui utilise Write-Host n’écrira pas dans le pipeline et ne peut donc pas être sérialisé. Voici un exemple de ConvertTo-XML en action (@PetriFeed):

Get-Service wuauserv -ComputerName chi-dc04,chi-p50,chi-core01 |Export-Clixml -Path c:\work\wu.xml

L’applet de commande spécifique utilisée dans l’exemple ci-dessus, Export-Clixml, convient à la plupart des fins. Il convertit la sortie d’une expression PowerShell en XML et l’enregistre dans un fichier.

18. New-AppLockerPolicy

New-AppLockerPolicy crée une nouvelle stratégie AppLocker à partir d’une liste d’informations de fichier et d’autres options de création de règles., Au total, il y a cinq applets de commande qui vous permettent d’interagir avec AppLocker, y compris (@RootUsers_):

  • Get-AppLockerFileInformation: Obtient les informations requises pour créer des règles AppLocker à partir d’une liste de fichiers ou du journal des événements.
  • Get-AppLockerPolicy: Utilisé pour récupérer une stratégie AppLocker locale, efficace ou de domaine.
  • New-AppLockerPolicy: Comme mentionné, cette applet de commande est utilisée pour créer de nouvelles stratégies AppLocker.
  • Set-AppLockerPolicy: Définit la stratégie AppLocker pour un objet de stratégie de groupe spécifié.,
  • Test-AppLockerPolicy: Utilisé pour déterminer si un utilisateur ou un groupe d’utilisateurs seront en mesure d’effectuer certaines actions en fonction de la politique.

19. New-ItemProperty

New-ItemProperty crée une nouvelle propriété pour un élément et définit sa valeur. Vous pouvez l’utiliser pour créer et modifier des valeurs et des données de registre (propriétés d’une clé de registre), par exemple.

Consultez ce tutoriel à partir de mnaoumov.NET pour quelques solutions de contournement utiles en utilisant cette applet de commande (@mnaoumov).

20. New-Object

Pour créer une instance de Microsoft .,NET Framework ou objet Component Object Model (COM), utilisez l’applet de commande New-Object.

Voici un exemple qui crée un nouvel objet en utilisant New-Object, le stocke dans une variable, puis le conduit vers Add-Member, qui ajoutera ensuite des propriétés ou des méthodes spécifiées dans l’objet créé (@gngrninja):

21. New-WebServiceProxy

New-WebServiceProxy crée un objet proxy de service Web qui vous permet d’utiliser et de gérer le service Web depuis PowerShell., Cette applet de commande est une belle chose pour les développeurs – elle rend inutile d’écrire beaucoup de code complexe pour essayer d’accomplir quelque chose dans PowerShell lorsque vous pouvez simplement appeler un autre service qui le rend déjà possible.

Voici un exemple:

Maintenant, vous pouvez exécuter la commande suivante pour afficher une liste de toutes les méthodes disponibles:

$proxy | gm -memberType Method

22. New-WSManInstance

De même que New-WebServiceProxy, New-WSManInstance crée une nouvelle instance d’une ressource de gestion.,

Consultez ce tutoriel pour un exemple complet étape par étape de la façon d’obtenir les informations dont vous avez besoin pour exécuter ce script avec succès (@jonathanmedd).

23., New-WSManSessionOption

New-WSManSessionOption crée une nouvelle table de hachage de session de gestion qui est utilisée comme paramètres d’entrée pour d’autres cmdlets WS-Management, y compris:

  • Get-WSManInstance
  • Set-WSManInstance
  • Invoke-WSManAction
  • Connect-WSMan

Voici la syntaxe (@SAPIENTech):

Select-Object

L’applet de commande Select-Object sélectionne les propriétés spécifiées d’un seul objet ou d’un groupe d’objets. De plus, il peut sélectionner des objets uniques dans un tableau ou un nombre spécifié d’objets depuis le début ou la fin d’un tableau.,

PS > Get-Process | Sort-Object name -Descending | Select-Object -Index 0,1,2,3,4

ce tutoriel fournit plus d’informations sur les différentes façons d’utiliser Select-Object (@infosectactico).

Il existe d’autres applets de commande avec des fonctions similaires, notamment:

  • Select-String: trouve du texte dans des chaînes ou des fichiers.
  • Select-XML: recherche du texte dans une chaîne ou un document XML.

25. Set-Alias

Set-Alias est une excellente commande pour améliorer la productivité. Il vous permet de définir un alias pour une applet de commande ou un autre élément de commande dans la session en cours (similaire à un raccourci clavier) afin que vous puissiez travailler plus rapidement.,

L’exemple suivant définit Notepad sur np dans la session en cours en utilisant Set-Alias (@powershellatoms):

New-Alias np c:\windows\system32\notepad.exe

Notez que vous pouvez également personnaliser votre profil PowerShell avec les alias que vous utilisez le plus souvent (@howtogeek).

26. Set-StrictMode

Set-StrictMode établit et applique des règles de codage dans les scripts, les blocs de script et les expressions. C’est une commande utile pour appliquer la qualité du code et vous empêcher de vous relâcher et d’écrire du code bâclé quand il est 3h00 du matin et que vous n’avez pas dormi depuis deux jours (@adbertram).,

pour l’utiliser, il y a deux paramètres à considérer: -Off et-Version, et-Version a trois valeurs possibles:

  • Version 1.0: vous empêche d’utiliser des variables qui n’ont pas été initialisées (comme Option Explicit dans VBScript)
  • Version 2.0: vous empêche d’utiliser des variables qui n’ont pas été initialisées et empêche également l’appel de propriétés inexistantes sur des objets, vous empêche d’appeler une fonction comme une méthode et interdit la création de variables sans nom.,
  • version Latest: cette option sélectionne la dernière version de StrictMode disponible et l’utilise. C’est une bonne option car cela signifie que la dernière version de StrictMode est utilisée quelle que soit la version de PowerShell que vous utilisez.

Wait-Job

Wait-Job supprime l’invite de commande jusqu’à ce que les tâches en arrière-plan exécutées dans la session en cours soient terminées. Wait-Job n’affiche cependant pas la sortie des travaux, mais elle peut être utilisée conjointement avec Receive-Job. Le Multithreading est possible dans PowerShell grâce à-Jobs.

l’Écriture d’Avancement

Qui n’aime pas une barre d’état?, Surveillez votre progression à l’aide de Write-Progress, qui affiche une barre de progression dans une fenêtre de commande Windows PowerShell.

Voici un exemple qui vous donne une barre de progression complète et des chaînes d’exécution (@credera):

Cmdlets pour la surveillance des performances, les tests et le débogage

Il existe également une variété de cmdlets utiles pour les développeurs à des fins de dépannage, de test, de débogage et de surveillance. Voici quelques-uns que vous devez savoir.

Debug-Processus

les Développeurs de l’amour de débogage! Eh bien, nous aimons encore plus quand il n’y a pas de bugs à éliminer, mais malheureusement ce n’est pas toujours le cas., Avec PowerShell, vous pouvez déboguer un processus à l’aide de L’applet de commande Debug-Process.

Vous pouvez également déboguer des travaux en utilisant Debug-Job (@MS_ITPro). Et, vous pouvez définir des points d’arrêt ou utiliser L’applet de commande Wait-Debugger:

30. Disable-PSBreakpoint

Si vous avez à la fois défini des points d’arrêt mais que vous souhaitez les éliminer, utilisez facilement Disable-PSBreakpoint, qui désactive les points d’arrêt dans la console actuelle. Voici la syntaxe (@ActiveXperts):

Disable-PSBreakpoint Disable-PSBreakpoint 

Sinon, si vous souhaitez activer les points d’arrêt dans la console actuelle, utilisez Enable-PSBreakpoint.,

Get-Counter

Get-Counter obtient des données de compteur de performances en temps réel à partir de l’instrumentation de surveillance des performances dans le système D’exploitation Windows. Il est utilisé pour obtenir des données de performances à partir d’ordinateurs locaux ou distants à des intervalles d’échantillons spécifiques que vous spécifiez.

dans cet exemple, vous obtiendrez un compteur avec un intervalle d’échantillon pour un échantillon maximum spécifié (@MS_ITPro):

PS C:\> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3

dans l’exemple ci-dessous, cette commande obtient des données de compteur spécifiques de plusieurs ordinateurs:

32., Export-Counter

Export-Counter exporte les objets PerformanceCounterSampleSet sous forme de fichiers journaux de compteur. Deux propriétés sont disponibles:

  • CounterSamples: Obtient et définit les données de compteurs.
  • horodatage: obtient et définit la date et l’heure auxquelles les données d’échantillon ont été collectées.,

Et plusieurs méthodes, qui sont héritées de l’Objet:

  • Equals(Object)
  • Finalize()
  • GetHashCode()
  • GetType()
  • MemberwiseClone()
  • ToString()

Par exemple, la commande suivante utilise Get-Compteur de recueillir des Temps Processeur de données et les exportations à un .fichier blg utilisant le compteur d’exportation (@TechGenix):

Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path C:\Temp\PerfData.blg

33. Test-Path

Test-Path vous permet de vérifier si des éléments existent dans un chemin spécifié., Par exemple, si vous prévoyez d’utiliser une autre commande sur un fichier spécifié, vous devrez peut-être vérifier que le fichier existe pour éviter de générer une erreur.

Test-Path C:\Scripts\Archive

Si le dossier existe, il renvoie Vrai; sinon, elle retourne la valeur False.

Il peut également fonctionner avec les chemins utilisés par d’autres fournisseurs PowerShell. Par exemple, si vous avez besoin de savoir si votre ordinateur a une variable d’environnement appelée username, vous pouvez utiliser ce qui suit:

Test-Path Env:\username

Test-Path fonctionne avec des variables, des certificats, des alias et des fonctions., Consultez ce post de TechNet pour plus de détails (@MS_ITPro).

34. Get-WinEvent

Regardez les journaux d’événements Windows à l’aide de Get-WinEvent. Pour une liste des journaux disponibles, utilisez:

Get-WinEvent -ListLog *

Ensuite, pour passer en revue les détails d’un journal spécifique, remplacer * par le nom (de rediriger la sortie vers un format de liste pour afficher tous les détails):

Get-WinEvent -ListLog $logname | fl *

Vous pouvez également consulter tous les événements dans un journal à l’aide de:

Get-WinEvent -LogName System

regardez ce tutoriel pour plus de détails (@rakheshster).,

Invoke-TroubleshootingPack

Les packs de dépannage sont des collections de scripts et d’assemblys PowerShell qui vous aident à dépanner, diagnostiquer et réparer les problèmes système courants (@ITNinjaSite). Recherchez les packs de dépannage à:

C:\Windows\Diagnostics\System

Vous pouvez exécuter ce script pour obtenir une liste de tous les packs de dépannage disponibles sur le système actuel (@TechGenix):

Get-ChildItem C:\Windows\Diagnostic\System

Puis, à partir d’une fenêtre PowerShell élevée, exécutez un pack de dépannage en utilisant cette commande:

Invoke-TroubleshootingPack (Get-TroubleshootingPack C:\Windows\diagnostics\system\networking)

36., Measure-Command

Si vous souhaitez chronométrer les opérations dans PowerShell, Measure-Command est une applet de commande incontournable. Il mesure la durée d’exécution d’un script ou d’un scriptblock. Voici un exemple (@ToddKlindt):

Measure-Command { Mount-SPContentDatabase –Name wss_content_portal –WebApplication http://portal.contoso.com }

La sortie est un objet TimeSpan, il contient donc des propriétés telles que l’Heure, la Minute, la Seconde, etc. et il est facile d’adapter la sortie à vos préférences.

Measure-Object

Vous voudrez peut-être aussi connaître la taille d’un objet donné., Utilisez Measure-Object pour calculer les propriétés numériques de n’importe quel objet, y compris les caractères, les mots et les lignes d’un objet chaîne, tel que les fichiers de texte.,

Spécifiez simplement le nom et le type de mesure à effectuer, ainsi que des paramètres tels que (@WindowsITPro):

  • -Sum: ajoute des valeurs
  • -Average: calcule la valeur moyenne
  • -Minimum: trouve la valeur minimale
  • -Maximum: trouve la valeur maximale

La commande suivante résume les valeurs de propriété VirtualMemorySize pour tous les objets id= »3dd8ccb972″>

New-Event

New-Event est utilisé pour créer un nouvel événement., Une applet de commande associée est New-EventLog, qui crée un nouveau journal d’événements ainsi qu’une nouvelle source d’événements sur un ordinateur local ou distant. Si vous avez un automation engine pris en charge par PowerShell, il est recommandé de configurer un journal des événements (en créant un type de journal des événements personnalisé) qui enregistre tous les messages envoyés par PowerShell. C’est un exemple où vous pouvez implémenter la journalisation personnalisée dans L’Observateur d’événements.,

Commencez par créer un nouveau LogName du journal des événements (@BundaloVladimir):

New-EventLog -LogName Troubleshooting_Log -Source FalloutApp

Ensuite, pour envoyer des messages à votre nouveau journal des événements, exécutez ce qui suit à l’aide de l’applet de commande Write-Log:

Write-EventLog -log Troubleshooting_Log -source FalloutApp -EntryType Information -eventID 10 -Message "FalloutApp has been successfully installed"

Receive-Job

es tâches d’arrière-plan Windows PowerShell dans la session en cours, utilisez Receive-Job. Ceci est généralement utilisé après l’utilisation de Start-Job pour démarrer une tâche lorsque vous devez afficher les résultats spécifiques.,

Receive-Job -Name HighMemProcess

Consultez ce tutoriel utile sur l’utilisation de Receive-Job et ce qu’il faut faire s’il n’y a apparemment aucun résultat (@proxb).

40. Register-EngineEvent

Cette applet de commande est utilisée pour s’abonner aux événements générés par le moteur Windows PowerShell et la applet de commande New-Event. Par exemple, la commande suivante s’abonne à un événement lorsque la session PowerShell en cours se termine et enregistre des informations (telles que la date et l’heure) dans un fichier journal (@jonathanmedd):

Register-EngineEvent PowerShell.Exiting-Action {"PowerShell exited at " + (Get-Date) | Out-File c:\log.txt -Append}

41., Register-ObjectEvent

Register-ObjectEvent est similaire à Register-EngineEvent, mais plutôt que de s’abonner aux événements générés par le moteur PowerShell et New-Event, il s’abonne aux événements générés par un objet Microsoft.NET Framework.

Voici un exemple (@NetworkWorld):

Il existe d’autres Register – cmdlets que vous pouvez trouver utiles, notamment:

  • Register-PSSessionConfiguration: Crée et enregistre une nouvelle configuration de session.
  • Register-WmiEvent: Cette applet de commande s’abonne à un événement WMI.

42., Remove-Event

lorsque vous souhaitez supprimer un événement, utilisez L’applet de commande Remove-Event. Si vous devez supprimer un journal d’événements entier, utilisez Remove-EventLog, qui supprime un journal d’événements ou désinscrit une source d’événements.

alternativement, Unregister-Event annule un abonnement à un événement mais ne supprime pas un événement de la file d’attente d’événements (@SS64).

43. Set-PSDebug

cette applet de commande active et désactive les fonctionnalités de débogage de script. Il définit également le niveau de trace et bascule StrictMode.,

En utilisant Set-PSDebug en haut de votre fichier de script juste après l’instruction param () (le cas échéant), vous pouvez éviter les erreurs avec des scripts sur lesquels PowerShell ne fournit pas d’informations adéquates à des fins de dépannage. Voici un exemple (@r_keith_hill):

44. Start-Sleep

Si vous devez suspendre l’activité dans un script ou une session, utilisez Start-Sleep, qui arrête l’activité pendant une période spécifiée.

Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx

Si vous devez mettre en pause un ou plusieurs services en cours d’exécution, vous utiliserez Suspend-Service.

45., Tee-Object

Si vous analysez les performances ou la qualité du code, il est utile de pouvoir afficher la sortie d’une commande. Tee-Object stocke la sortie de la commande dans un fichier ou une variable et l’affiche également dans la console s’il s’agit de la dernière variable du pipeline. Si ce n’est pas la dernière variable du pipeline, Tee-Object l’envoie dans le pipeline.

Voici la syntaxe:

46. Test-AppLockerPolicy

Test-AppLockerPolicy évalue si les fichiers d’entrée sont autorisés à s’exécuter pour un utilisateur spécifique en fonction de la stratégie AppLocker spécifiée.,

Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path 

Ce tutoriel offre plus de détails sur les paramètres disponibles et des exemples de Test-AppLockerPolicy en action (@powershellhelp).

Test-ComputerSecureChannel

Cette applet de commande teste et répare la connexion entre un ordinateur local et son domaine. Sans cette commande, la solution habituelle était auparavant de supprimer un ordinateur de son domaine, puis de le reconnecter afin de rétablir la relation. Test-ComputerSecureChannel permet de rétablir la connexion en moins de temps (@WindowsITPro).,

Lorsque vous êtes connecté en tant qu’administrateur local, exécutez simplement ce qui suit:

Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair

Vous pouvez utiliser Test-Connection pour envoyer des paquets de demande d’écho (pings) du protocole ICMP (Internet Control Message Protocol) à un ou plusieurs ordinateurs.

Test-Path

Utilisez Test-Path pour déterminer si tous les éléments d’un chemin existent. Essentiellement, il vous aide à gérer les erreurs avant qu’elles ne se produisent. Dans sa forme la plus simple, il renvoie True ou False (@MCPmag):

PS C:\> test-path c:\TruePS C:\> test-path z:\fooFalse

49. Trace-Command

Trace-Command configure et démarre la trace d’une commande ou d’une expression spécifiée., Pour l’utiliser, vous devrez également utiliser Get-TraceSource afin de rechercher des noms particuliers en utilisant des caractères génériques:

PS&gt; Get-TraceSource -Name *param*

Vous pouvez filtrer la sortie pour faire correspondre la description au modèle que vous recherchez. Une fois que vous avez identifié le nom de trace possible, vous utiliserez Trace-Command pour obtenir les réponses dont vous avez besoin. Voici un exemple:

Consultez cet article pour plus de détails sur le jeu de détective avec Trace-Command (@PowerShellMag).

50. Write-Debug

Write-Debug écrit un message de débogage dans la console., Lorsque vous écrivez ceci dans une fonction ou un script, cela ne fait rien par défaut; les messages attendent essentiellement que vous modifiiez votrepre DebugPreference ou activiez le commutateur-debug lors de l’appel d’une fonction ou d’un script. Lorsque DEB DebugPreference est défini sur’ inquire ‘ ou que le commutateur-debug est activé, le message crée un point d’arrêt, vous donnant un moyen facile de passer en mode débogage.

Prenez cet exemple (@RJasonMorgan):

l’exemple ci-dessus produit ce qui suit lorsqu’il est exécuté avec-debug:

Laisser un commentaire

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