. Quand une nouvelle erreur est générée, elle est insérée à $Error[0], et l’index des autres erreurs est augmenté d’une unité.
Pour rendre le texte de ré... t identifiable, il existe les cmdlets **Write-Warning**, **Write-Verbose** ou **Write-Debug**
===== ... let compilée si on lui ajoute l'attribut ''CmdletBinding''. On ajoute l'attribut en utilisant le décor
squ'on produit du code on peut avoir envie ou besoin de :
* Réutiliser une même séquence d' instructions plusieurs fois dans un script ;
* Réutiliser ... d'écrire à différents endroits la même séquence d'instructions, il est préférable d'utiliser une fonction. Elle est définie une fois puis appelée autant de fois que nécess
bjet itérable :
<code powershell>
ForEach ($user in $users) {
Set-ADUser $user -Department "Marketing"
}
</code>
<note>
A partir de PowerShell 7 une ... t -Parallel { Set-ADUser $user -Department "Marketing" }
</code>
</note>
==== For ====
La boucle **F... les cas ou l'on souhaite répéter un nombre déterminé d'instructions.
<code powershell>
For($i=1; $i
{{tag>dev powershell string}}
:TODO:
====== PowerShell : Traitement sur chaînes de caractères ======
Une chaine de caractère à une longueur :
<code powershell>
$aStr = "Ma chaine."
$aStr.Length
10
</code>
<code powershell>
# ... registre la saisie de l'utilisateur convertie en minuscules
$userFirstName = [System.String] (Read-Ho
{{tag>dev powershell aide}}
====== PowerShell : Intégrer l'aide au code ======
La cmdlet **Get-Help*... **aide basée sur les commentaires**.
===== Aide intégrée aux fonctions =====
Tous les commentaires ... ction il faut les placer :
* En entête de la définition de la fonction ;
* Sur la première ligne s... .Description
The MyProcess function gets the Windows PowerShell process.
#>
function MyFunction {
{{tag>dev sysadmin powershell}}
====== PowerShell : Elévation des privilèges ======
L'option "Exécuter en tant qu'administrateur" positionnée au lancement de l’interpréteur ou du script PowerShell permet d'élever les priv... peut être faite par le script et les différentes informations d'identifications obtenues peuvent être
riable **$VerbosePreference** qui permet de déterminer le comportement pour l'environnement actif:
Le... e**:
^ Stop | Affiche le message et interrompt l'exécution. |
^ Inquire | Affiche le message et demande à l'utilisateur s'il souhaite continuer l'exécution |
^ Continue | Affiche le
re le contenu et les attributs du module ;
* Définir les prérequis au fonctionnement du module ;
*... s paramètre permet de créer une table de hachage minimale :
<code powershell>
New-ModuleManifest -Pat... "2.0" -Author "YourNameHere"
</code>
On peut définir les valeurs des arguments dans une table de has... puis appeler la cmdlet :
<code powershell>
# Définition des paramètres
$module_properties = @{
R
era afficher lors de l'exécution. La commande termine systématiquement le message par ':', si on souha... ut on affiche d'abord le message souhaité puis on invoque Read-Host sans message :
<code powershell>
# Le message présenté ainsi est incorrect
$user = Read-Host "Quel est votre nom ?"
Quel est votre nom ?:
# Pour un message int
. Cependant au lieu d'accéder aux éléments par un index, on utilise une clé : une chaîne de caractère ... ue associée à la valeur.
<code powershell>
# Définit une table de hachage de 2 éléments
$computers ...
$computers.Add('PYCOM', '192.168.0.34')
# Déterminer le nombre d'éléments
$computers.Count
3
... 2.168.0.43'
# Rechercher une clé
$computers.ContainsKey('ATARI')
</code>
===== Itérations =====
<c
enu du fichier "fichierA.txt"
<code powershell>
$lines = Get-Content -Path '.\fichierA.txt'
# Afficher le nombre de lignes
$lines.Length
4
# Accès au contenu de la première ligne
$lines[0]
A01
# Afficher toutes les lignes
foreach ( $line in $lines ){
Write-Output "$line"
}
</code>
=
alias améliorent l'expérience utilisateur en mode interactif toutefois il est fortement déconseillé de... iliser dans les scripts car ils peuvent être redéfinis ou absent de l'environnement utilisateur dans l... s
<code powershell>
Get-Alias
</code>
Pour déterminer quel applet est appelé par l'alias "gwmi"
<code... s gwmi
</code>
Pour connaître le ou les alias définis sur l' applet "Get-WmiObject" :
<code powershel
{{tag>dev powershell windows}}
====== PowerShell : Modifier le dossier temp de l'utilisateur ======
... variables d’environnement **TEMP** et **TMP** définissent les chemins des dossiers stockant les fichiers temporaires. Il peut être intéressant de redéfinir ces dossiers par défaut not
==
<code powershell>
# Le type tableau est déterminé lors de l'affectation
# Les éléments sont séparé... 10
# Un tableau a le type ''System.Array'' cette information
# est retournée par la méthode GetType()... ur accéder à un élément du tableau on précise son index entre crochets. L'index (position de l'élément dans le tableau) commence à 0 :
<code powershell>
#