Annexe - Réponses aux questions de révision

Cette annexe fournit des réponses concises aux questions d’examen trouvées à la fin de chaque chapitre. Utilisez-le pour valider votre compréhension et renforcer les concepts clés.

Chapitre 1 - Prise en main de PowerShell

  1. Utilisez la $PSVersionTable variable automatique.
  2. Uniquement lorsque vous devez contourner le contrôle de compte d’utilisateur (UAC) pour les tâches nécessitant une élévation sur l’ordinateur local.
  3. La stratégie d’exécution par défaut sur les systèmes clients Windows est Restricted, ce qui empêche l’exécution de scripts.
  4. Utilisez Get-ExecutionPolicy pour déterminer la stratégie d’exécution actuelle.
  5. Utiliser Set-ExecutionPolicy (par exemple, Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).

Chapitre 2 - Le système d’aide

  1. Non. Le paramètre DisplayName de Get-Service est nommé, et non positionnel.
  2. Get-Process a six jeux de paramètres.
  3. Utilisez Get-Command -Noun EventLog.
  4. Utilisez Get-Process -Name powershell.
  5. Exécutez Update-Help (avec élévation de privilèges en tant qu’administrateur dans Windows PowerShell) pour télécharger et installer le contenu d’aide le plus récent.

Chapitre 3 - Découverte des objets, propriétés et méthodes

  1. Get-Process produit un System.Diagnostics.Process objet.
  2. Diriger la commande vers Get-Member.
  3. Vérifiez si l’objet a une méthode qui effectue l’action.
  4. Utilisez le paramètre PassThru de la commande, s’il en a un.
  5. Exécutez la commande une fois et stockez les résultats dans une variable pour éviter de générer plusieurs fois de grandes quantités de sortie lors du prototypage.

Chapitre 4 : One-liners et pipeline

  1. Un one-liner PowerShell est un pipeline continu unique, quel que soit le nombre de lignes physiques qu’il couvre.
  2. Les sauts de ligne naturels peuvent se produire par les caractères tels que la barre verticale (|), la virgule (,), les crochets ouvrants ([ ]), les accolades ({ }) et les parenthèses (( )).
  3. Vous devez filtrer à gauche pour améliorer les performances et l’efficacité en réduisant la quantité de données transmises par le pipeline.
  4. Une commande peut accepter l’entrée de pipeline par valeur (par type) ou par nom de propriété.
  5. Étant donné que la plupart du contenu de la PowerShell Gallery est fourni par la communauté et peut ne pas être vérifié, il doit être examiné et testé avant l’utilisation.

Chapitre 5 - Mise en forme, alias, fournisseurs, comparaison

  1. Étant donné que les applets de commande de mise en forme produisent des objets de format, ce qui interrompt le pipeline et ne peut pas être utilisé par la plupart des autres commandes.
  2. Utilisez Get-Alias -Name % pour déterminer le cmdlet réel.
  3. Étant donné que les alias réduisent la lisibilité et la portabilité, rendent les scripts plus difficiles à comprendre pour les autres.
  4. Utilisez Get-ChildItem -Path HKLM:\, HKCU:\ pour répertorier les clés de Registre dans les deux ruches.
  5. L'opérateur -replace est insensible à la casse par défaut, tandis que la méthode .Replace() est sensible à la casse.

Chapitre 6 - Contrôle de flux

  1. ForEach-Object traite les éléments un par un à la fois à partir du pipeline (streaming), tandis que l’instruction foreach traite les éléments d’une collection déjà chargée en mémoire.
  2. Une while boucle évalue sa condition avant l’exécution. Elle peut donc ne pas s’exécuter du tout si la condition est false, contrairement do while à et do until, qui s’exécute au moins une fois.
  3. break quitte entièrement la boucle, tandis qu’elle continue ignore l’itération actuelle et passe à la suivante.

Chapitre 7 - Utilisation de WMI

  1. Les applets de commande WMI (par exemple) Get-WmiObjectsont plus anciennes et utilisent DCOM, tandis que les applets de commande CIM (par exemple) Get-CimInstancesont plus récentes et utilisent WSMan par défaut.
  2. WSMan (Windows Gestion à distance).
  3. Les sessions CIM permettent la réutilisation des connexions, prennent en charge d’autres informations d’identification, améliorent les performances et simplifient la gestion de plusieurs connexions distantes.
  4. Créez une option de session avec New-CimSessionOption, par exemple, pour utiliser DCOM, puis passez-la à New-CimSession, puis utilisez cette session avec Get-CimInstance.
  5. Utilisez Remove-CimSession.

Chapitre 8 - Communication à distance PowerShell

  1. Utilisez Enable-PSRemoting.
  2. Utilisez Enter-PSSession.
  3. Il vous permet d’utiliser une session persistante au lieu de spécifier le nom et les informations d’identification de l’ordinateur avec chaque commande.
  4. Oui, vous pouvez utiliser une session PowerShell (PSSession) dans un scénario de communication à distance interactive un-à-un.
  5. Les applets de commande exécutées localement retournent des objets en direct avec des méthodes, tandis que les commandes distantes retournent des objets désérialisés sans méthodes.

Chapitre 9 : Fonctions

  1. Utilisez Get-Verb.
  2. Ajoutez l’attribut [CmdletBinding()] à la fonction.
  3. Lorsque la fonction apporte des modifications à l’état du système ou effectue des actions potentiellement impactantes.
  4. Spécifiez -ErrorAction Stop.
  5. Pour documenter l’utilisation de la fonction afin que vous et d’autres personnes puissiez facilement la comprendre et accéder à l’aideGet-Help.

Chapitre 10 - Modules de script

  1. Créez un .psm1 fichier et placez vos fonctions dans celui-ci.
  2. L’utilisation de verbes approuvés garantit la cohérence, évite les avertissements et améliore la détectabilité.
  3. Utilisez New-ModuleManifest.
  4. Utilisez Export-ModuleMember dans le .psm1 fichier ou spécifiez des fonctions dans le FunctionsToExport champ du .psd1 fichier.
  5. Le module doit se trouver dans un dossier nommé identique au module, situé dans un chemin d’accès répertorié dans $env:PSModulePath, et contenir le fichier de module approprié (.psm1 ou manifeste).

Notes finales

  • Ces réponses sont intentionnellement concises pour renforcer les concepts clés.
  • Revisitez les chapitres pour approfondir la compréhension.