Utiliser Windows PowerShell

Effectué

Bien que les outils de gestion GUI soient souvent plus faciles à utiliser que les outils en ligne de commande, le responsable du service informatique de Contoso estime que vous pouvez effectuer de nombreuses tâches d’administration plus rapidement en utilisant un script simple ou une commande unique. Par exemple, le processus de mise à jour des mêmes informations pour plusieurs comptes d’utilisateur à l’aide d’Utilisateurs et ordinateurs Active Directory peut prendre du temps. Toutefois, l’utilisation du module Active Directory dans Windows PowerShell permet à un administrateur d’effectuer cette tâche répétitive rapidement. Vous décidez d’examiner l’impact de l’utilisation de Windows PowerShell pour administrer l’infrastructure de serveur chez Contoso.

Vue d’ensemble

Windows PowerShell est un environnement de ligne de commande et de script que vous pouvez utiliser pour gérer tous les aspects du système d’exploitation Windows. Windows PowerShell utilise des commandes spéciales appelées applets de commande composées de paires verbe-nom, telles que Restart-Computer.

Vous pouvez également utiliser Windows PowerShell pour vous connecter à distance à d’autres ordinateurs, et même exécuter des applets de commande Windows PowerShell sur une liste d’ordinateurs, ce qui vous permet d’effectuer des actions sur plusieurs ordinateurs à l’aide d’une seule instruction de ligne de commande.

Commandes et applets de commande Windows PowerShell

Les commandes sont des blocs de construction que vous associez à l’aide du langage de script Windows PowerShell. Elles fournissent les fonctionnalités principales de Windows PowerShell. Grâce aux commandes, vous pouvez créer des solutions personnalisées pour des problèmes d’administration complexes.

Les applets de commande sont les composants essentiels des commandes. Il existe des milliers d’applets de commande Windows PowerShell disponibles dans les systèmes d’exploitation Windows et d’autres produits Microsoft. Comme mentionné précédemment, les applets de commande sont constituées d’une paire verbe-nom.

Verbes d’applet de commande

La partie « verbe » du nom de l’applet de commande indique ce que fait l’applet de commande. Il existe un ensemble de verbes approuvés utilisés par les créateurs d’applets de commande, ce qui assure la cohérence des noms d’applets de commande. Les verbes courants sont décrits dans le tableau suivant.

Verbe Explication
Obtenir Récupère une ressource, telle qu’un fichier ou un utilisateur.
Définissez Modifie les données associées à une ressource, telle qu’une propriété de fichier ou d’utilisateur.
Nouveau Crée une ressource, telle qu’un fichier ou un utilisateur.
Ajouter Ajoute une ressource à un conteneur de plusieurs ressources.
Supprimer Supprime une ressource d’un conteneur de plusieurs ressources.

Noms d’applet de commande

La partie « nom » du nom de l’applet de commande indique les types de ressources ou d’objets affectés par l’applet de commande. Toutes les applets de commande qui fonctionnent sur une même ressource doivent utiliser le même nom. Par exemple, le nom Service est utilisé pour les applets de commande qui fonctionnent avec des services Windows, et le nom Processus est utilisé pour gérer les processus sur un ordinateur.

Format de paramètre

Les paramètres modifient les actions effectuées par une applet de commande. Chaque applet de commande peut n’avoir aucun paramètre, avoir un paramètre ou plusieurs paramètres. Les noms de paramètres commencent par un tiret (-). Un espace sépare la valeur que vous souhaitez passer du nom du paramètre. Si la valeur que vous passez contient des espaces, vous devez placer le texte entre guillemets. Certains paramètres acceptent plusieurs valeurs, séparées par des virgules et sans espaces.

Exemples

Vous pouvez étudier les exemples suivants pour vous aider à déterminer comment utiliser Windows PowerShell pour effectuer des tâches d’administration courantes. La commande suivante affiche une liste des services en cours d’exécution.

Get-Service | Where-Object {$_.Status -eq "Running"}

La commande suivante affiche une liste des services dont le nom commence par « Win » et qui exclut le service appelé WinRM.

Get-Service -Name "win*" -Exclude "WinRM"

La commande suivante génère une liste de tous les services dans un fichier texte formaté pour une sortie HTML.

Get-Service | ConvertTo-Html > File.html

Une variante de la commande précédente génère des données sélectionnées sur des services uniquement, puis exporte la sortie vers un fichier CSV.

Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv

La commande suivante récupère les informations spécifiées (numéro de téléphone professionnel et nom d’utilisateur principal) sur les utilisateurs Active Directory.

Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName

Ce dernier exemple récupère un sous-ensemble d’utilisateurs AD DS (ceux de l’unité d’organisation marketing) et modifie leurs propriétés en ajoutant une description à chaque compte.

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"

Windows PowerShell ISE

L’ISE est un environnement entièrement graphique qui fournit un éditeur de script, des fonctionnalités de débogage, une console interactive et plusieurs outils qui vous aident à découvrir et à apprendre de nouvelles commandes Windows PowerShell. Ce module fournit une connaissance de base du fonctionnement de l’environnement ISE.

Capture d’écran de Administrateur : Windows PowerShell ISE. L’administrateur a activé la fenêtre d’aperçu Commande. L’administrateur vient d’exécuter Get-localuser dans le volet de script sans titre.

Volets

L’ISE offre deux volets principaux : un volet de script (ou éditeur de script) et le volet de la console. Vous pouvez les placer l’un au-dessus de l’autre ou côte à côte dans une disposition à deux volets. Vous pouvez également agrandir un volet et basculer entre les volets. Par défaut, un volet de module complémentaire Commande s’affiche également, qui vous permet de rechercher ou de parcourir les commandes disponibles, et de vérifier et de renseigner les paramètres d’une commande que vous sélectionnez. Une fenêtre Commande flottante offre également les mêmes fonctionnalités.

Personnalisation de la vue

L’ISE offre plusieurs méthodes de personnalisation de la vue. Un curseur dans la partie inférieure droite de la fenêtre permet de modifier la taille de police active. La boîte de dialogue Options vous permet de personnaliser la sélection de police et de couleur de nombreux éléments de texte Windows PowerShell, tels que les mots clés et les valeurs de chaîne. L’ISE prend en charge la création de thèmes visuels. Un thème est une collection de paramètres de police et de couleur que vous pouvez appliquer en tant que groupe pour personnaliser l’apparence de l’ISE. Plusieurs thèmes intégrés regroupent des personnalisations à des fins comme les présentations. L’ISE vous offre également la possibilité de créer des thèmes personnalisés. D’autres fonctionnalités de l’ISE incluent les suivantes :

  • Bibliothèque d’extraits de code extensible et intégrée que vous pouvez utiliser pour stocker les commandes couramment utilisées.
  • Possibilité de charger des compléments créés par Microsoft ou par des tiers qui fournissent des fonctionnalités supplémentaires.
  • Intégration avec les fonctionnalités de débogage de Windows PowerShell.

Accès distant Windows PowerShell

L’objectif de la communication à distance Windows PowerShell est de se connecter à des ordinateurs distants pour pouvoir exécuter des commandes sur ceux-ci, puis renvoyer les résultats à votre ordinateur local. Cela vous permet d’exécuter des commandes Windows PowerShell sur plusieurs ordinateurs de votre réseau à partir de votre ordinateur client plutôt que d’établir une connexion avec chaque ordinateur.

L’un des principaux objectifs de la communication à distance Windows PowerShell est d’activer l’administration par lots, qui vous permet d’exécuter des commandes sur un ensemble d’ordinateurs distants simultanément. Vous pouvez utiliser la communication à distance de l’une des trois manières décrites dans le tableau suivant.

Méthode Description
Communication à distance un-à-un Dans le scénario de communication à distance un-à-un (également appelé communication à distance interactive), vous vous connectez à un ordinateur distant unique et vous exécutez des commandes Windows PowerShell sur celui-ci exactement comme si vous étiez connecté à l’ordinateur et que vous ouvriez une fenêtre Windows PowerShell.
Communication à distance un-à-plusieurs Dans le scénario de communication à distance un-à-plusieurs (également appelé communication à distance fan-out), vous émettez une commande qui sera exécutée sur un ou plusieurs ordinateurs distants en parallèle. Vous n’utilisez pas chaque ordinateur distant de manière interactive. Au lieu de cela, vos commandes sont émises et exécutées dans un lot, et les résultats sont renvoyés à votre ordinateur en vue de les utiliser.
Communication à distance plusieurs-à-un Dans le scénario de communication à distance plusieurs-à-un (également appelé communication à distance fan-in), plusieurs administrateurs établissent des connexions à distance à un seul ordinateur. En règle générale, ces administrateurs disposent d’autorisations différentes sur le même ordinateur distant et peuvent travailler dans une session Windows PowerShell restreinte.

Attention

Lorsque vous exécutez des commandes sur plusieurs ordinateurs, tenez compte des différences entre les ordinateurs distants, telles que les différences de systèmes d’exploitation, de structures de système de fichiers et de registres système.

PowerShell Direct

Nombre d’administrateurs choisissent d’exécuter certains de leurs serveurs dans des environnements virtualisés. Pour pouvoir administrer plus facilement des machines virtuelles Hyper-V exécutant Windows 10 ou Windows Server, vous pouvez utiliser une fonctionnalité appelée PowerShell Direct.

PowerShell Direct vous permet d’exécuter une applet de commande ou un script Windows PowerShell à l’intérieur d’une machine virtuelle à partir du système d’exploitation hôte, quelles que soient les configurations de réseau, de pare-feu et de gestion à distance.