Bien que vous puissiez ne pas vous en rendre compte de prime abord, lorsque vous travaillez dans Windows PowerShell, vous travaillez avec des objets .NET Framework. Avec l'expérience, la puissance du traitement d'objets deviendra plus évidente et vous vous retrouverez à utiliser les objets et à « penser objets ».
D'un point de vue technique, un objet .NET Framework est une instance d'une classe .NET Framework constituée de données et des opérations associées à ces données. Mais vous pouvez considérer un objet comme étant une entité de données assortie de propriétés, qui sont en quelque sorte des caractéristiques, et de méthodes, qui sont des actions que vous pouvez effectuer sur l'objet.
Par exemple, lorsque vous obtenez un service dans Windows PowerShell, vous obtenez en réalité un objet qui représente le service. Lorsque vous consultez des informations sur un service, vous consultez les propriétés de son objet service. Et lorsque vous démarrez un service, c'est-à-dire lorsque vous affectez à la propriété Status du service la valeur « started », vous utilisez une méthode de l'objet service.
Tous les objets du même type ont les mêmes propriétés et méthodes, mais chaque instance d'un objet peut avoir des valeurs différentes pour les propriétés. Par exemple, chaque objet service a une propriété Name (nom) et Status (état). Toutefois, chaque service peut avoir un nom différent et un état différent.
Vous constaterez lorsque vous serez prêt à l'entreprendre que l'apprentissage relatif aux objets est simple. Pour déterminer le type d'objet obtenu par une applet de commande, utilisez un opérateur de pipeline (|) afin d'envoyer les résultats d'une commande « get » à la commande Get-Member. Par exemple, la commande suivante envoie les objets récupérés par une commande Get-Service à Get-Member.
get-service | get-member
Get-Member affiche des informations sur l'objet service, y compris le nom de type (TypeName) de l'objet et une liste de ses propriétés et méthodes.
TypeName: System.ServiceProcess.ServiceController Name MemberType Definition ---- ---------- ---------- Name AliasProperty Name = ServiceName add_Disposed Method System.Void add_Disposed(EventHandler value) Close Method System.Void Close() Continue Method System.Void Continue() ...
Pour plus d'informations sur la classe de l'objet, copiez et collez le nom de type, tel que System.ServiceProcess.ServiceController, dans MSDN. Une fois la classe trouvée, vous pouvez lire les sous-rubriques MSDN afin d'en savoir plus sur les propriétés et méthodes des objets basés sur cette classe, comme ceux de Windows PowerShell.
Pour rechercher les valeurs de toutes les propriétés d'un objet particulier, utilisez un opérateur de pipeline (|) afin d'envoyer les résultats d'une commande « get » à une commande Format-List ou Format-Table. Utilisez le paramètre Property des applets de commande format avec une valeur visant à tout inclure (*). Par exemple, pour rechercher toutes les propriétés du service Planification du système, tapez :
get-service schedule | format-list -property *
Vous trouverez ci-dessous un exemple du résultat.
Name : Schedule CanPauseAndContinue : True CanShutdown : True CanStop : True DisplayName : Task Scheduler DependentServices : {} MachineName : . ServiceName : Schedule ServicesDependedOn : {RpcSs} ServiceHandle : SafeServiceHandle Status : Running ServiceType : Win32ShareProcess Site : Container :
Il n'est pas nécessaire de comprendre tout ce qui a trait aux objets pour commencer avec Windows PowerShell, mais il est important d'en conserver le concept à l'esprit. Vous serez bientôt en mesure de tirer le meilleur parti des objets.