Embora não seja possível perceber no início, ao trabalhar no Windows PowerShell, você estará trabalhando com objetos do .NET Framework. Conforme obtiver mais experiência, a capacidade de processamento de objetos ficará mais evidente, e será possível usar e até mesmo lembrar dos objetos.
Tecnicamente, um objeto do .NET Framework é uma ocorrência de uma classe do .NET Framework, que consiste em dados e operações associadas a esses dados. No entanto, é possível imaginar um objeto como uma entidade de dados que apresenta propriedades, como características e métodos, que são ações que podem ser realizadas no objeto.
Por exemplo, ao obter um serviço no Windows PowerShell, você estará na verdade obtendo um objeto que representa o serviço. Ao exibir informações sobre um serviço, serão mostradas as propriedades do objeto de serviço desse serviço. Além disso, ao iniciar um serviço, ou seja, quando altera a propriedade Status do serviço para "iniciado", você estará usando um método do objeto de serviço.
Todos os objetos do mesmo tipo têm as mesmas propriedades e métodos, mas cada ocorrência de um objeto pode ter valores diferentes para as propriedades. Por exemplo, cada objeto de serviços tem uma propriedade Nome e uma propriedade Status. No entanto, cada serviço pode ter um nome e um status diferentes.
Quando estiver pronto, será fácil obter informações sobre os objetos. Para descobrir qual é o tipo de objeto obtido por um cmdlet, utilize um operador de pipeline (|) para enviar os resultados de um comando "get" para o comando Get-Member. Por exemplo, o comando a seguir envia os objetos recuperados por um comando Get-Service ao comando Get-Member.
get-service | get-member
Get-Member exibe informações sobre o objeto de serviço, inclusive o nome de tipo do objeto e uma lista de suas propriedades e métodos.
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() ...
Para obter informações sobre a classe do objeto, copie e cole o nome do tipo, como System.ServiceProcess.ServiceController, no MSDN. Ao localizar a classe, leia os subtópicos do MSDN para saber mais sobre as propriedades e os métodos de objetos com base nessa classe, como os objetos no Windows PowerShell.
Para localizar os valores de todas as propriedades de um objeto específico, use um operador de pipeline (|) para enviar os resultados de um comando "get" para um comando Format-List ou Format-Table. Use o parâmetro Property dos cmdlets de formato com um valor de all (*). Por exemplo, para localizar todas as propriedades do serviço Schedule no sistema, digite:
get-service schedule | format-list -property *
Este é um exemplo do resultado:
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 :
Não é necessário ter conhecimentos sobre objetos para aprender a utilizar o Windows PowerShell, mas tenha sempre em mente o conceito de objeto. Em breve, será possível utilizar o máximo de recursos dos objetos.