Powershell - Guide rapide

Windows PowerShell est un command-line shell et scripting languagespécialement conçu pour l'administration système. Son analogue sous Linux s'appelle Bash Scripting. Basé sur .NET Framework, Windows PowerShell aide les professionnels de l'informatique à contrôler et automatiser l'administration du système d'exploitation Windows et des applications qui s'exécutent sur l'environnement Windows Server.

Commandes Windows PowerShell, appelées cmdlets, vous permet de gérer les ordinateurs à partir de la ligne de commande. Les fournisseurs Windows PowerShell vous permettent d'accéder aux magasins de données, tels que le registre et le magasin de certificats, aussi facilement que vous accédez au système de fichiers.

En outre, Windows PowerShell dispose d'un analyseur d'expressions riche et d'un langage de script entièrement développé. Ainsi, en termes simples, vous pouvez effectuer toutes les tâches que vous effectuez avec l'interface graphique et bien plus encore.

PowerShell ISE

Le Windows PowerShell Integrated Scripting Environment(ISE) est une application hôte pour Windows PowerShell. Dans Windows PowerShell ISE, vous pouvez exécuter des commandes et écrire, tester et déboguer des scripts dans une seule interface utilisateur graphique basée sur Windows avec édition multiligne, complétion d'onglets, coloration de la syntaxe, exécution sélective, aide contextuelle et prise en charge du droit à -langues de gauche.

Vous pouvez utiliser des éléments de menu et des raccourcis clavier pour effectuer plusieurs des mêmes tâches que vous exécuteriez dans la console Windows PowerShell. Par exemple, lorsque vous déboguez un script dans Windows PowerShell ISE, pour définir un point d'arrêt de ligne dans un script, cliquez avec le bouton droit sur la ligne de code, puis cliquez surToggle Breakpoint.

Commandes de base PowerShell

Il existe de nombreuses commandes PowerShell et il est très difficile de mettre toutes ces commandes dans ce didacticiel, nous nous concentrerons sur certaines des commandes les plus importantes et de base de PowerShell.

La première étape consiste à accéder à la commande Get-Help qui vous explique comment donner une commande et son paramètre.

L'icône PowerShell se trouve dans la barre des tâches et dans le menu Démarrer. En cliquant simplement sur l'icône, il s'ouvrira.

Pour l'ouvrir, cliquez simplement sur l'icône, puis l'écran suivant s'ouvrira et cela signifie que PowerShell est prêt à travailler.

Version PowerShell

La dernière version de PowerShell est 5.0 et pour vérifier ce qui est installé sur notre serveur, nous tapons la commande suivante - :$PSVersionTable comme le montre la capture d'écran suivante et à partir de l'écran, nous savons également que nous avons PSVersion 4.0

Pour mettre à jour avec la dernière version où il y a plus de Cmdlets, nous devons télécharger Windows Management Framework 5.0 à partir du lien suivant - https://www.microsoft.com/en-us/download/details.aspx?id=50395 et installez-le.

PowerShell ISE

Le Windows PowerShell Integrated Scripting Environment(ISE) est une application hôte pour Windows PowerShell. Dans Windows PowerShell ISE, vous pouvez exécuter des commandes et écrire, tester et déboguer des scripts dans une seule interface utilisateur graphique basée sur Windows avec édition multiligne, complétion d'onglets, coloration de la syntaxe, exécution sélective, aide contextuelle et prise en charge du droit à -langues de gauche.

Vous pouvez utiliser des éléments de menu et des raccourcis clavier pour effectuer plusieurs des mêmes tâches que vous exécuteriez dans la console Windows PowerShell. Par exemple, lorsque vous déboguez un script dans Windows PowerShell ISE, pour définir un point d'arrêt de ligne dans un script, cliquez avec le bouton droit sur la ligne de code, puis cliquez surToggle Breakpoint.

Pour l'ouvrir, il vous suffit d'aller dans Démarrer - Rechercher, puis tapez - PowerShell comme indiqué dans la capture d'écran suivante.

Cliquez ensuite sur Windows PowerShell ISE. Ou cliquez sur la flèche vers le bas comme indiqué dans la capture d'écran suivante.

Il listera toutes les applications installées sur le serveur, puis cliquera sur Windows PowerShell ISE.

Le tableau suivant sera ouvert -

Il comporte trois sections, qui comprennent: PowerShell Console avec le numéro 1, puis Scripting File numéro 2 et le troisième est le Command Module où vous pouvez trouver le module.

Lors de la création du script, vous pouvez exécuter directement et voir le résultat comme l'exemple suivant -

Commandes de base PowerShell

Il existe de nombreuses commandes PowerShell et il est très difficile de mettre toutes ces commandes dans ce didacticiel, nous nous concentrerons sur certaines des commandes les plus importantes et de base de PowerShell.

La première étape consiste à accéder à la commande Get-Help qui vous explique comment donner une commande et son paramètre.

To get the list of Updates -

  • Get-HotFix et pour installer un correctif de type hotfix comme suit
  • Get-HotFix -id kb2741530

Une applet de commande ou «Command let» est une commande légère utilisée dans l'environnement Windows PowerShell. Le runtime Windows PowerShell appelle ces applets de commande à l'invite de commandes. Vous pouvez les créer et les appeler par programme via les API Windows PowerShell.

Cmdlet vs commande

Les applets de commande sont très différentes des commandes dans d'autres environnements de shell de commande des manières suivantes -

  • Les applets de commande sont des objets de classe .NET Framework; et pas seulement des exécutables autonomes.

  • Les applets de commande peuvent être facilement construites à partir d'une douzaine de lignes de code.

  • L'analyse, la présentation des erreurs et la mise en forme de la sortie ne sont pas gérées par les applets de commande. Cela est fait par le runtime Windows PowerShell.

  • Le processus des applets de commande fonctionne sur les objets qui ne sont pas sur le flux de texte et les objets peuvent être passés en sortie pour le pipelining.

  • Les applets de commande sont basées sur les enregistrements car elles traitent un seul objet à la fois.

Obtenir de l'aide

La première étape consiste à accéder à la commande Get-Help qui vous explique comment donner une commande et son paramètre.

Voici les exemples de scripts PowerShell sur les fichiers et les dossiers.

N ° Sr. Description d'opération
1 Créer des dossiers

Exemple de script pour montrer comment créer des dossiers à l'aide de scripts PowerShell.

2 Création de fichiers

Exemple de script pour montrer comment créer des fichiers à l'aide de scripts PowerShell.

3 Copie de dossiers

Exemple de script pour montrer comment copier des fichiers à l'aide de scripts PowerShell.

4 Copie de fichiers

Exemple de script pour montrer comment créer des fichiers à l'aide de scripts PowerShell.

5 Suppression de dossiers

Exemple de script pour montrer comment supprimer un ou plusieurs dossiers à l'aide de scripts PowerShell.

6 Suppression de fichiers

Exemple de script pour montrer comment supprimer des fichiers à l'aide de scripts PowerShell.

sept Déplacement de dossiers

Exemple de script pour montrer comment déplacer des dossiers à l'aide de scripts PowerShell.

8 Déplacer des fichiers

Exemple de script pour montrer comment déplacer des fichiers à l'aide de scripts PowerShell.

9 Renommer les dossiers

Exemple de script pour montrer comment renommer un ou plusieurs dossiers à l'aide de scripts PowerShell.

dix Renommer les fichiers

Exemple de script pour montrer comment renommer des fichiers à l'aide de scripts PowerShell.

11 Récupération de l'élément

Exemple de script pour montrer comment récupérer des éléments à l'aide de scripts PowerShell.

12 Vérifier l'existence du dossier

Exemple de script pour montrer comment vérifier l'existence d'un dossier à l'aide de scripts PowerShell.

13 Vérifier l'existence du fichier

Exemple de script pour montrer comment vérifier l'existence d'un fichier à l'aide de scripts PowerShell.

Voici les exemples de scripts PowerShell sur la date et l'heure du système.

N ° Sr. Description d'opération
1 Obtenir la date du système

Exemple de script pour montrer comment obtenir la date système à l'aide de scripts PowerShell.

2 Définir la date du système

Exemple de script pour montrer comment définir la date système à l'aide de scripts PowerShell.

3 Obtenir l'heure du système

Exemple de script pour montrer comment obtenir l'heure du système à l'aide de scripts PowerShell.

4 Régler l'heure du système

Exemple de script pour montrer comment définir l'heure du système à l'aide de scripts PowerShell.

Voici les exemples de scripts PowerShell permettant de créer et de lire différents types de fichiers.

N ° Sr. Description d'opération
1 Créer un fichier texte

Exemple de script pour montrer comment créer un fichier texte à l'aide de scripts PowerShell.

2 Lire le fichier texte

Exemple de script pour montrer comment lire un fichier texte à l'aide de scripts PowerShell.

3 Créer un fichier XML

Exemple de script pour montrer comment créer un fichier XML à l'aide de scripts PowerShell.

4 Lire le fichier XML

Exemple de script pour montrer comment lire un fichier XML à l'aide de scripts PowerShell.

5 Créer un fichier CSV

Exemple de script pour montrer comment créer un fichier CSV à l'aide de scripts PowerShell.

6 Lire le fichier CSV

Exemple de script pour montrer comment lire un fichier CSV à l'aide de scripts PowerShell.

sept Créer un fichier HTML

Exemple de script pour montrer comment créer un fichier HTML à l'aide de scripts PowerShell.

8 Lire le fichier HTML

Exemple de script pour montrer comment lire un fichier HTML à l'aide de scripts PowerShell.

9 Effacement du contenu du fichier

Exemple de script pour montrer comment effacer le contenu d'un fichier à l'aide de scripts PowerShell.

dix Ajouter des données textuelles

Exemple de script pour montrer comment ajouter du texte au contenu d'un fichier à l'aide de scripts PowerShell.

Cmdlets

Une applet de commande ou «Command let» est une commande légère utilisée dans l'environnement Windows PowerShell. Le runtime Windows PowerShell appelle ces applets de commande à l'invite de commandes. Vous pouvez les créer et les appeler par programme via les API Windows PowerShell. Voici un exemple d'utilisation avancée des applets de commande.

N ° Sr. Type de cmdlet et description
1 Cmdlet Get-Unique

Exemple de programme pour présenter la cmdlet Get-Unique.

2

Group-Object Cmdlet

Exemple de programme pour présenter l'applet de commande Group-Object.

3 Cmdlet de mesure-objet

Exemple de programme pour présenter la cmdlet Measure-Object.

4 Cmdlet Compare-Object

Exemple de programme pour présenter la cmdlet Compare-Object.

5 Cmdlet Format-List

Exemple de programme pour présenter la cmdlet Format-List.

6 Cmdlet à l'échelle du format

Exemple de programme pour présenter la cmdlet Format-Wide.

sept Cmdlet Where-Object

Exemple de programme pour présenter la cmdlet Where-Object.

8 Cmdlet Get-ChildItem

Exemple de programme pour présenter la cmdlet Get-ChildItem.

9 Cmdlet ForEach-Object

Exemple de programme pour présenter la cmdlet ForEach-Object.

dix Cmdlet Start-Sleep

Exemple de programme pour présenter la cmdlet Start-Sleep.

11 Cmdlet Read-Host

Exemple de programme pour présenter la cmdlet Read-Host.

12 Cmdlet Select-Object

Exemple de programme pour présenter la cmdlet Select-Object.

13 Cmdlet d'objet de tri

Exemple de programme pour présenter la cmdlet Sort-Object.

14 Cmdlet d'avertissement d'écriture

Exemple de programme pour présenter la cmdlet Write-Warning.

15 Cmdlet d'hôte d'écriture

Exemple de programme pour présenter la cmdlet Write-Host.

16 Cmdlet Invoke-Item

Exemple de programme pour présenter la cmdlet Invoke-Item.

17 Cmdlet Invoke-Expression

Exemple de programme pour présenter la cmdlet Invoke-Expression.

18 Cmdlet de commande de mesure

Exemple de programme pour présenter la cmdlet Measure-Command.

19 Cmdlet Invoke-History

Exemple de programme pour présenter la cmdlet Invoke-History.

20 Cmdlet Add-History

Exemple de programme pour présenter la cmdlet Add-History.

21 Cmdlet Get-History

Exemple de programme pour présenter la cmdlet Get-History.

22 Cmdlet Get-Culture

Exemple de programme pour présenter la cmdlet Get-Culture.

Windows PowerShell est un command-line shell et scripting languagespécialement conçu pour l'administration système. Son analogue sous Linux s'appelle Bash Scripting. Basé sur .NET Framework, Windows PowerShell aide les professionnels de l'informatique à contrôler et automatiser l'administration du système d'exploitation Windows et des applications qui s'exécutent sur l'environnement Windows Server.

Commandes Windows PowerShell, appelées cmdlets, vous permet de gérer les ordinateurs à partir de la ligne de commande. Les fournisseurs Windows PowerShell vous permettent d'accéder aux magasins de données, tels que le registre et le magasin de certificats, aussi facilement que vous accédez au système de fichiers.

En outre, Windows PowerShell dispose d'un analyseur d'expressions riche et d'un langage de script entièrement développé. Ainsi, en termes simples, vous pouvez effectuer toutes les tâches que vous effectuez avec l'interface graphique et bien plus encore. Windows PowerShell Scripting est un langage de script entièrement développé et dispose d'un analyseur d'expressions riche /

traits

  • Cmdlets - Les cmdlets exécutent des tâches d'administration système courantes, par exemple la gestion du registre, des services, des processus, des journaux d'événements et l'utilisation de Windows Management Instrumentation (WMI).

  • Task oriented - Le langage de script PowerShell est basé sur les tâches et fournit la prise en charge des scripts et des outils de ligne de commande existants.

  • Consistent design- Comme les applets de commande et les magasins de données système utilisent une syntaxe commune et ont des conventions de dénomination communes, le partage des données est facile. La sortie d'une applet de commande peut être mise en pipeline vers une autre applet de commande sans aucune manipulation.

  • Simple to Use - La navigation simplifiée basée sur les commandes permet aux utilisateurs de naviguer dans le registre et d'autres magasins de données similaires à la navigation dans le système de fichiers.

  • Object based- PowerShell possède de puissantes capacités de manipulation d'objets. Les objets peuvent être envoyés directement à d'autres outils ou bases de données.

  • Extensible interface. - PowerShell est personnalisable car les éditeurs de logiciels indépendants et les développeurs d'entreprise peuvent créer des outils et des utilitaires personnalisés à l'aide de PowerShell pour administrer leurs logiciels.

Variables

Les variables PowerShell sont des objets nommés. Comme PowerShell fonctionne avec des objets, ces variables sont utilisées pour travailler avec des objets.

Créer une variable

Le nom de la variable doit commencer par $ et peut contenir des caractères alphanumériques et des traits de soulignement dans leurs noms. Une variable peut être créée en tapant un nom de variable valide.

Tapez la commande suivante dans la console PowerShell ISE. En supposant que vous êtes dans le dossier D: \ test.

$location = Get-Location

Ici, nous avons créé une variable $ location et lui avons attribué la sortie de l'applet de commande Get-Location. Il contient désormais l'emplacement actuel.

Utilisation de la variable

Tapez la commande suivante dans la console PowerShell ISE.

$location

Production

Vous pouvez voir la sortie suivante dans la console PowerShell.

Path                                                                                    
----                                                                                    
D:\test

Obtenir des informations sur la variable

L'applet de commande Get-Member peut indiquer le type de variable utilisé. Voir l'exemple ci-dessous.

$location | Get-Member

Production

Vous pouvez voir la sortie suivante dans la console PowerShell.

TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}

Les variables spéciales PowerShell stockent des informations sur PowerShell. Celles-ci sont également appelées variables automatiques. Voici la liste des variables automatiques -

Opérateur La description
$$ Représente le dernier jeton de la dernière ligne reçue par la session.
$? Représente l'état d'exécution de la dernière opération. Il contient TRUE si la dernière opération a réussi et FALSE si elle a échoué.
$ ^ Représente le premier jeton de la dernière ligne reçue par la session.
$ _ Identique à $ PSItem. Contient l'objet actuel dans l'objet pipeline. Vous pouvez utiliser cette variable dans les commandes qui exécutent une action sur chaque objet ou sur des objets sélectionnés dans un pipeline.
$ ARGS Représente un tableau des paramètres et / ou des valeurs de paramètre non déclarés qui sont passés à une fonction, un script ou un bloc de script.
$ CONSOLEFILENAME Représente le chemin du fichier de console (.psc1) qui a été le plus récemment utilisé dans la session.
$ ERREUR Représente un tableau d'objets d'erreur qui représentent les erreurs les plus récentes.
$ ÉVÉNEMENT Représente un objet PSEventArgs qui représente l'événement en cours de traitement.
$ ÉVÉNEMENTS Représente un objet qui représente le premier argument d'événement qui dérive d'EventArgs de l'événement en cours de traitement.
$ ÉVÉNEMENTSUBSCRIBER Représente un objet PSEventSubscriber qui représente l'abonné à l'événement de l'événement en cours de traitement.
$ EXECUTIONCONTEXT Représente un objet EngineIntrinsics qui représente le contexte d'exécution de l'hôte PowerShell.
$ FAUX Représente FAUX. Vous pouvez utiliser cette variable pour représenter FALSE dans les commandes et les scripts au lieu d'utiliser la chaîne «false».
$ AVANT CHAQUE Représente l'énumérateur (et non les valeurs résultantes) d'une boucle ForEach. Vous pouvez utiliser les propriétés et les méthodes des énumérateurs sur la valeur de la variable $ ForEach.
$ HOME Représente le chemin complet du répertoire de base de l'utilisateur.
$ HÔTE Représente un objet qui représente l'application hôte actuelle pour PowerShell.
$ INPUT Représente un énumérateur qui énumère toutes les entrées passées à une fonction.
$ LASTEXITCODE Représente le code de sortie du dernier programme Windows exécuté.
$ MATCHS La variable $ Matches fonctionne avec les opérateurs -match et -notmatch.
$ MYINVOCATION $ MyInvocation est renseigné uniquement pour les scripts, les fonctions et les blocs de script. Les propriétés PSScriptRoot et PSCommandPath de la variable automatique $ MyInvocation contiennent des informations sur l'appelant ou le script appelant, et non sur le script actuel.
$ NESTEDPROMPTLEVEL Représente le niveau d'invite actuel.
$ NULL $ null est une variable automatique qui contient une valeur NULL ou vide. Vous pouvez utiliser cette variable pour représenter une valeur absente ou non définie dans les commandes et les scripts.
$ PID Représente l'identificateur de processus (PID) du processus qui héberge la session PowerShell actuelle.
$ PROFIL Représente le chemin complet du profil PowerShell pour l'utilisateur actuel et l'application hôte actuelle.
$ PSCMDLET Représente un objet qui représente l'applet de commande ou la fonction avancée en cours d'exécution.
$ PSCOMMANDPATH Représente le chemin d'accès complet et le nom de fichier du script en cours d'exécution.
$ PSCULTURE Représente le nom de la culture actuellement utilisée dans le système d'exploitation.
$ PSDEBUGCONTEXT Lors du débogage, cette variable contient des informations sur l'environnement de débogage. Sinon, il contient une valeur NULL.
$ PSHOME Représente le chemin complet du répertoire d'installation de PowerShell.
$ PSITEM Identique à $ _. Contient l'objet actuel dans l'objet pipeline.
$ PSSCRIPTROOT Représente le répertoire à partir duquel un script est exécuté.
$ PSSENDERINFO Représente des informations sur l'utilisateur qui a démarré la session PSSession, y compris l'identité de l'utilisateur et le fuseau horaire de l'ordinateur d'origine.
$ PSUICULTURE Représente le nom de la culture de l'interface utilisateur (UI) actuellement utilisée dans le système d'exploitation.
$ PSVERSIONTABLE Représente une table de hachage en lecture seule qui affiche des détails sur la version de PowerShell qui s'exécute dans la session actuelle.
$ SENDER Représente l'objet qui a généré cet événement.
$ SHELLID Représente l'identifiant du shell actuel.
$ STACKTRACE Représente une trace de pile pour l'erreur la plus récente.
$ CECI Dans un bloc de script qui définit une propriété de script ou une méthode de script, la variable $ This fait référence à l'objet en cours d'extension.
$ TRUE Représente VRAI. Vous pouvez utiliser cette variable pour représenter TRUE dans les commandes et les scripts.

PowerShell fournit un riche ensemble d'opérateurs pour manipuler les variables. Nous pouvons diviser tous les opérateurs PowerShell dans les groupes suivants -

  • Opérateurs arithmétiques
  • Opérateurs d'affectation
  • Opérateurs de comparaison
  • Opérateurs logiques
  • Opérateurs de redirection
  • Opérateurs déversés et rejoindre
  • Opérateurs de type
  • Opérateurs unaires

Les opérateurs arithmétiques

Les opérateurs arithmétiques sont utilisés dans les expressions mathématiques de la même manière qu'ils sont utilisés dans l'algèbre. Le tableau suivant répertorie les opérateurs arithmétiques -

Supposons que la variable entière A vaut 10 et la variable B 20, alors -

Afficher des exemples

Opérateur La description Exemple
+ (Ajout) Ajoute des valeurs de chaque côté de l'opérateur. A + B donnera 30
- (Soustraction) Soustrait l'opérande de droite de l'opérande de gauche. A - B donnera -10
* (Multiplication) Multiplie les valeurs de chaque côté de l'opérateur. A * B donnera 200
/ (Division) Divise l'opérande de gauche par l'opérande de droite. B / A donnera 2
% (Module) Divise l'opérande de gauche par l'opérande de droite et renvoie le reste. B% A donnera 0

Les opérateurs de comparaison

Voici les opérateurs d'affectation pris en charge par le langage PowerShell -

Supposons que la variable entière A vaut 10 et la variable B 20, alors -

Afficher des exemples

Opérateur La description Exemple
eq (égal) Compare deux valeurs pour qu'elles soient égales ou non. Un -eq B donnera faux
ne (pas égal) Compare deux valeurs pour ne pas être égales. A -ne B donnera vrai
gt (supérieur à) Compare la première valeur à une valeur supérieure à la seconde. B -gt A donnera vrai
ge (supérieur ou égal à) Compare la première valeur comme étant supérieure ou égale à la seconde. B -ge A donnera vrai
lt (moins de) Compare la première valeur à une valeur inférieure à la seconde. B -lt A donnera faux
le (inférieur ou égal à) Compare la première valeur comme étant inférieure ou égale à la seconde. B -le A donnera faux

Les opérateurs d'affectation

Voici les opérateurs d'affectation pris en charge par le langage PowerShell -

Afficher des exemples

Opérateur La description Exemple
= Opérateur d'affectation simple. Attribue les valeurs des opérandes du côté droit à l'opérande du côté gauche. C = A + B attribuera la valeur de A + B à C
+ = Ajouter l'opérateur d'affectation AND. Il ajoute l'opérande droit à l'opérande gauche et affecte le résultat à l'opérande gauche. C + = A équivaut à C = C + A
- = Soustraire l'opérateur d'affectation AND. Il soustrait l'opérande droit de l'opérande gauche et affecte le résultat à l'opérande gauche. C - = A équivaut à C = C - A

Les opérateurs logiques

Le tableau suivant répertorie les opérateurs logiques -

Supposons que les variables booléennes A sont vraies et que la variable B est fausse, alors -

Afficher des exemples

Opérateur La description Exemple
ET (logique et) Opérateur logique ET appelé. Si les deux opérandes sont différents de zéro, la condition devient vraie. (A-ET B) est faux
OU (logique ou) Opérateur OU logique appelé. Si l'un des deux opérandes est différent de zéro, la condition devient vraie. (A -OR B) est vrai
NON (logique non) Opérateur PAS logique appelé. Utilisez pour inverser l'état logique de son opérande. Si une condition est vraie, l'opérateur NOT logique rendra faux. -NOT (A -ET B) est vrai

Opérateurs divers

Voici divers opérateurs importants pris en charge par le langage PowerShell -

Afficher des exemples

Opérateur La description Exemple
> (Opérateur redirectionnel) Opérateur de redirection. Attribue la sortie à imprimer dans le fichier / périphérique de sortie redirigé. dir> test.log affichera la liste des répertoires dans le fichier test.log

Il peut arriver que vous deviez exécuter un bloc de code plusieurs fois. En général, les instructions sont exécutées de manière séquentielle: la première instruction d'une fonction est exécutée en premier, suivie de la seconde, et ainsi de suite.

Les langages de programmation fournissent diverses structures de contrôle qui permettent des chemins d'exécution plus compliqués.

UNE loop instruction nous permet d'exécuter une instruction ou un groupe d'instructions plusieurs fois et voici la forme générale d'une instruction de boucle dans la plupart des langages de programmation -

Le langage de programmation PowerShell fournit les types de boucle suivants pour gérer les exigences de boucle. Cliquez sur les liens suivants pour vérifier leurs détails.

N ° Sr. Boucle et description
1 pour boucle

Exécute une séquence d'instructions plusieurs fois et abrége le code qui gère la variable de boucle.

2 forEach boucle

Boucle for améliorée. Ceci est principalement utilisé pour parcourir la collection d'éléments, y compris les tableaux.

3 boucle while

Répète une instruction ou un groupe d'instructions tant qu'une condition donnée est vraie. Il teste la condition avant d'exécuter le corps de la boucle.

4 faire ... boucle while

Comme une instruction while, sauf qu'elle teste la condition à la fin du corps de la boucle.

Les structures de prise de décision ont une ou plusieurs conditions à évaluer ou tester par le programme, ainsi qu'une ou plusieurs instructions qui doivent être exécutées si la condition est jugée vraie, et éventuellement d'autres instructions à exécuter si la condition est déterminée être faux.

Voici la forme générale d'une structure de prise de décision typique trouvée dans la plupart des langages de programmation -

Le langage de script PowerShell fournit les types suivants d'instructions de prise de décision. Cliquez sur les liens suivants pour vérifier leurs détails.

N ° Sr. Déclaration et description
1 if déclaration

Un if statement se compose d'une expression booléenne suivie d'une ou plusieurs instructions.

2 if ... instruction else

Un if statement peut être suivi d'une option else statement, qui s'exécute lorsque l'expression booléenne est fausse.

3 instruction if imbriquée

Vous pouvez en utiliser un if ou elseif déclaration dans un autre if ou elseif déclaration (s).

4 instruction switch

UNE switch L'instruction permet à une variable d'être testée pour l'égalité par rapport à une liste de valeurs.

PowerShell fournit une structure de données, le array, qui stocke une collection séquentielle de taille fixe d'éléments de tout type. Un tableau est utilisé pour stocker une collection de données, mais il est souvent plus utile de considérer un tableau comme une collection de variables ou d'objets.

Au lieu de déclarer des variables individuelles, telles que nombre0, nombre1, ... et nombre99, vous déclarez une variable de tableau comme des nombres et utilisez les nombres [0], les nombres [1] et ..., les nombres [99] pour représenter variables individuelles.

Ce didacticiel explique comment déclarer des variables de tableau, créer des tableaux et traiter des tableaux à l'aide de variables indexées.

Déclaration des variables de tableau

Pour utiliser un tableau dans un programme, vous devez déclarer une variable pour référencer le tableau et vous pouvez spécifier le type de tableau auquel la variable peut faire référence. Voici la syntaxe pour déclarer une variable de tableau -

Syntaxe

$A = 1, 2, 3, 4
or
$A = 1..4

Note- Par défaut, le type d'objets du tableau est System.Object. La méthode GetType () renvoie le type du tableau. Le type peut être passé.

Exemple

Les extraits de code suivants sont des exemples de cette syntaxe -

[int32[]]$intA = 1500,2230,3350,4000

$A = 1, 2, 3, 4
$A.getType()

Cela produira le résultat suivant -

Production

IsPublic    IsSerial    Name                        BaseType                     
--------    --------    ----                        --------                     
True        True        Object[]                    System.Array

Les éléments du tableau sont accessibles via le index. Les indices de tableau sont basés sur 0; c'est-à-dire qu'ils commencent de 0 àarrayRefVar.length-1.

Exemple

L'instruction suivante déclare une variable tableau, myList, crée un tableau de 10 éléments de type double et assigne sa référence à myList -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

L'image suivante représente le tableau myList. Ici, myList contient dix valeurs doubles et les indices vont de 0 à 9.

Traitement des tableaux

Lors du traitement des éléments de tableau, nous utilisons souvent soit for boucle ou foreach boucle car tous les éléments d'un tableau sont du même type et la taille du tableau est connue.

Exemple

Voici un exemple complet montrant comment créer, initialiser et traiter des tableaux -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

write-host("Print all the array elements")
$myList

write-host("Get the length of array")
$myList.Length

write-host("Get Second element of array")
$myList[1]

write-host("Get partial array")
$subList = $myList[1..3]

write-host("print subList")
$subList

write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
   $myList[$i]
}

write-host("using forEach Loop")
foreach ($element in $myList) {
   $element
}

write-host("using while Loop")
$i = 0
while($i -lt 4) {
   $myList[$i];
   $i++
}

write-host("Assign values")
$myList[1] = 10
$myList

Cela produira le résultat suivant -

Production

Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123

Exemples de méthodes de tableaux

Voici un exemple complet montrant les opérations sur les tableaux à l'aide de ses méthodes

$myList = @(0..4)

write-host("Print array")
$myList

$myList = @(0..4)

write-host("Assign values")
$myList[1]  = 10
$myList

Cela produira le résultat suivant -

Production

Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4

Hashtable stocke les paires clé / valeur dans une table de hachage. Lorsque vous utilisez une table de hachage, vous spécifiez un objet utilisé comme clé et la valeur que vous souhaitez lier à cette clé. Généralement, nous avons utilisé des chaînes ou des nombres comme clés.

Ce didacticiel explique comment déclarer des variables de table de hachage, créer des tables de hachage et traiter une table de hachage à l'aide de ses méthodes.

Déclaration des variables de hachage

Pour utiliser une table de hachage dans un programme, vous devez déclarer une variable pour référencer la table de hachage. Voici la syntaxe pour déclarer une variable de hachage -

Syntaxe

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}

Note- Des dictionnaires ordonnés peuvent être créés en utilisant une syntaxe similaire. Les dictionnaires ordonnés conservent l'ordre dans lequel les entrées sont ajoutées, contrairement aux tables de hachage.

Exemple

Les extraits de code suivants sont des exemples de cette syntaxe -

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

Imprimez la table de hachage.

$hash

Production

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square

Les valeurs de la table de hachage sont accessibles via le keys.

> $hash["ID"]
 1

Traitement de la table de hachage

La notation par points peut être utilisée pour accéder aux clés ou aux valeurs de hashtables.

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

Exemple

Voici un exemple complet montrant comment créer, initialiser et traiter une table de hachage -

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

Cela produira le résultat suivant -

Production

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square

Une expression régulière est une séquence spéciale de caractères qui vous aide à faire correspondre ou à trouver d'autres chaînes ou ensembles de chaînes, à l'aide d'une syntaxe spécialisée contenue dans un modèle. Ils peuvent être utilisés pour rechercher, modifier ou manipuler du texte et des données.

Voici le tableau répertoriant toute la syntaxe de métacaractère d'expression régulière disponible dans PowerShell -

Sous-expression Allumettes
^ Correspond au début de la ligne.
$ Correspond à la fin de la ligne.
. Correspond à n'importe quel caractère unique sauf le saut de ligne. En utilisantm L'option lui permet également de correspondre à la nouvelle ligne.
[...] Correspond à n'importe quel caractère unique entre crochets.
[^ ...] Correspond à tout caractère unique non entre crochets.
\UNE Début de la chaîne entière.
\ z Fin de la chaîne entière.
\ Z Fin de la chaîne entière à l'exception de la terminaison de ligne finale autorisée.
ré* Correspond à 0 occurrences ou plus de l'expression précédente.
re + Correspond à 1 ou plusieurs éléments précédents.
ré? Correspond à 0 ou 1 occurrence de l'expression précédente.
re {n} Correspond exactement au nombre n d'occurrences de l'expression précédente.
re {n,} Correspond à n occurrences ou plus de l'expression précédente.
re {n, m} Correspond à au moins n et au plus m occurrences de l'expression précédente.
a | b Correspond à a ou b.
(ré) Regroupe les expressions régulières et mémorise le texte correspondant.
(?: re) Regroupe les expressions régulières sans se souvenir du texte correspondant.
(?> re) Correspond au modèle indépendant sans retour en arrière.
\ w Correspond aux caractères du mot.
\ W Correspond aux caractères non-mots.
\ s Correspond à l'espace blanc. Équivaut à [\ t \ n \ r \ f].
\ S Correspond à l'espace non blanc.
\ré Correspond aux chiffres. Équivalent à [0-9].
\RÉ Correspond aux non-chiffres.
\UNE Correspond au début de la chaîne.
\ Z Correspond à la fin de la chaîne. Si une nouvelle ligne existe, elle correspond juste avant la nouvelle ligne.
\ z Correspond à la fin de la chaîne.
\G Correspond au point où le dernier match s'est terminé.
\ n Référence arrière pour capturer le numéro de groupe "n".
\ b Correspond aux limites du mot en dehors des crochets. Correspond à l'espace arrière (0x08) à l'intérieur des crochets.
\ B Correspond aux limites non-mot.
\ n, \ t, etc. Correspond aux retours à la ligne, aux retours chariot, aux tabulations, etc.
\ Q Échappez (citez) tous les caractères jusqu'à \ E.
\ E Fin des citations commencées par \ Q.

Voici un exemple complet montrant comment utiliser regex dans PowerShell;

N ° Sr. Correspondance et description
1 Match caractères

Exemple de caractères d'expression régulière pris en charge.

2 Faire correspondre les classes de caractères

Exemple de classes de caractères prises en charge.

3 Match quantificateurs

Exemple de quantificateurs pris en charge.

L'opérateur Backtick (`) est également appelé opérateur de retour à la ligne. Il permet d'écrire une commande sur plusieurs lignes. Il peut également être utilisé pour la nouvelle ligne (`n) ou la tabulation (` t) dans les phrases. Voir les exemples ci-dessous -

Exemple 1

Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize

Il deviendra

Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize

Vérifiez la sortie comme

Name                                                   ServiceType  Status
----                                                   -----------  ------
MSSQLServerADHelper100                             Win32OwnProcess Stopped
ntrtscan                                           Win32OwnProcess Running
...

Exemple 2

Utilisation d'une nouvelle ligne et d'un nouvel onglet.

> Write-host "Title Subtitle"
Title Subtitle

> Write-host "Title `nSubtitle"
Title 
Subtitle

> Write-host "Title `tSubtitle"
Title   Subtitle

Powershell prend en charge trois types de supports.

  • Parenthesis brackets. − ()

  • Braces brackets. − {}

  • Square brackets. − []

Crochets de parenthèses

Ce type de parenthèses est utilisé pour

  • passer des arguments

  • joindre plusieurs jeux d'instructions

  • résoudre l'ambiguïté

  • créer un tableau

Exemple

> $array = @("item1", "item2", "item3")
 
> foreach ($element in $array) { $element }
item1
item2
item3

Braces supports

Ce type de parenthèses est utilisé pour

  • joindre des déclarations

  • commandes de blocage

Exemple

$x = 10

if($x -le 20){
   write-host("This is if statement")
}

Cela produira le résultat suivant -

Production

This is if statement.

Crochets

Ce type de parenthèses est utilisé pour

  • accès au tableau

  • accès aux hashtables

  • filtre à l'aide d'une expression régulière

Exemple

> $array = @("item1", "item2", "item3")
 
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
 
>Get-Process [r-s]*
 Handles    NPM(K)     PM(K)    WS(K)   VM(M)   CPU(s)     Id    ProcessName
-------    ------     -----     -----   -----   ------     --    -----------  
    320        72     27300     33764    227     3.95    4028    SCNotification 
   2298        77     57792     48712    308             2884    SearchIndexer
   ...

L'alias PowerShell est un autre nom pour l'applet de commande ou pour tout élément de commande.

Créer un alias

Utilisation New-Aliascmdlet pour créer un alias. Dans l'exemple ci-dessous, nous avons créé une aide d'alias pour l'applet de commande Get-Help.

New-Alias -Name help -Value Get-Help

Appelez maintenant l'alias.

help Get-WmiObject -Detailed

Vous verrez la sortie suivante.

NAME
   Get-WmiObject
    
SYNOPSIS
   Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.    
    
SYNTAX
   Get-WmiObject [
...

Obtenir un alias

Utilisation get-alias cmdlet pour obtenir tous les alias présents dans la session actuelle de PowerShell.

Get-Alias

Vous verrez la sortie suivante.

CommandType     Name                     Definition
-----------     ----                     ----------  
Alias           %                        ForEach-Object
Alias           ?                        Where-Object
Alias           ac                       Add-Content
Alias           asnp                     Add-PSSnapIn 
...
Impression