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 -
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 -
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 -
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 -
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 -
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