et Debug =====
Un script ou une fonction peut se comporter comme une cmdlet compilée si on lui ajoute l'attribut ''CmdletBinding''. On ajoute l'attribut en utilisant... t utiliser les options existantes sur les cmdlets compilées comme les switchs ''-Verbose'' et ''-Debug'
======
La cmdlet **Get-Help** peut extraire les commentaires présents dans les scripts (module et les... officielle désigne cela par **aide basée sur les commentaires**.
===== Aide intégrée aux fonctions =====
Tous les commentaires ne sont pas extraits pour la génération de l'aide basée sur les commentaires. Dans le cas d'une fonction il faut les
es paramètres courants ([[https://learn.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_commonparameters?view=powershell-5.1|Common parameters]]) disponibles pour les cmdlets ou les fonctions.
... *$VerbosePreference** qui permet de déterminer le comportement pour l'environnement actif:
Les différe
lérant significativement le temps d'exécution. La commande précédente peut alors s'écrire :
<code power... "Oui")
</code>
==== While ====
La boucle While commence par évaluer la condition avant l'exécution d... Break** et **Continue** permettent de modifier le comportement par défaut des boucles :
* **Continue*... tion suivante de la boucle ;
* **Break** arrête complètement le traitement de la boucle.
Ces instruc
ement du module ;
* Contrôler la façon dont les composants sont traités.
Une bonne pratique consiste... ExpandProperty Guid
Author = 'anAuthorName'
CompanyName = 'aCompanyName'
Description = "a module short description"
PowerShellVersion = '5.1'
... cture seule :
<code powershell>
($MyInvocation.MyCommand.ScriptBlock.Module.Name)
</code>
source : ht
ivilèges sur l'ensemble du processus : toutes les commandes s’exécutent alors avec un niveau de privilè... peuvent être exploitées individuellement par les commandes.
<code powershell>
# Affiche une fenêtre ... ns un objet
$cred = Get-Credential
# Exécute une commande avec l'identifiant renseigné
# par l'utilisa... r -Department "Marketing" -Credential $cred
# Précomplète le champ nom utilisateur et ajoute
# un mess
peut écrire l'aide associée à la fonction via les commentaires : voir la note [[dev/powershell/integration_aide|Powershell : aide basée sur les commentaires]].
</note>
Les fonctions dans les modules peuvent inclure une aide basée sur des commentaires, détectable à l’aide de la cmdlet **Get-... s placées dans les modules peuvent être invoquées comme des applets ;
* Les modules ne doivent pas êt
ation
# Les éléments sont séparés par la virgule
$computers = "NODE-ADC1","NODE-2F03","NODE-AA4E"
$numb... . L'index (position de l'élément dans le tableau) commence à 0 :
<code powershell>
# Accès au premier é... dant si les traitements effectués avec le tableau comprennent des milliers d'éléments ajoutés un par un...
<code powershell>
# Création d'une liste vide
$computers=New-Object System.Collections.ArrayList
#
d à un dry-run (exécution à blanc ou simulée). La commande n'a pas d'effet sur le système : à la place ... la cmdlet ''New-Item'' :
<code powershell>
# La commande New-Item n'aura pas d'effet : à la place un ... ent courant plutôt que de le spécifier sur chaque commande :
<code powershell>
# Utilise -Whatif par d... www.it-connect.fr/powershell-et-whatif-testez-vos-commandes-et-scripts/|Tester les commandes avec -What
eur peut appeler le script et bénéficier de l'autocomplétion sur les options de la même manière que pou... s nommées peuvent hériter des paramètres courants comme **-Verbose** ou **-Debug**. Pour une informations exhaustive confère [[https://learn.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_commonparameters?view=powershell-7.3|A propos des par
l : Récupérer des identifiants depuis la ligne de commande ======
Certaines commandes doivent pouvoir s'exécuter avec un niveau de privilèges plus élevé. L... és via une fenêtre modale).
En environnement CLI complet (en SSH par exemple) il peut être utile de pr... récupération des identifiants depuis la ligne de commande :
<code powershell>
$puser = Read-Host 'Use
et stocker des données structurées de façon plus complexes que le CSV.
La cmdlet **Import-Clixml** pe... rsFile.xml'
</code>
===== Formatage JSON =====
Comme XML, le formatage JSON permet de représenter des données complexes cependant sa syntaxe est moins verbeuse. Il... tilisé.
La cmdlet **ConvertFrom-Json** peut être combinée avec **Get-Content** pour lire un fichier co
ad-Host, il sera afficher lors de l'exécution. La commande termine systématiquement le message par ':', si on souhaite éviter ce comportement par défaut on affiche d'abord le message... mémoire. Ce type d'objet est nécessaire pour certains usages comme le renouvellement de mot de passe.