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.




Table des matières