PowerShell | Objetos


O PowerShell é baseado em objetos e não em texto. Dessa forma, antes de entender PowerShell é necessário entender o conceito de objetos.

De uma forma bem simples, nós podemos dizer que um objeto é uma representação digital de algo que é composto de partes e detalhes de como utilizar essas partes.

Se nós pensarmos em uma bicicleta. Podemos observar que ela é feita de partes: roda, pedais, frame, guidão. Essas partes são usadas como um todo.

Em uma bicicleta nós podemos: pedalar, virar à esquerda, direita e frear.

As peças são denominadas propriedades, enquanto as coisas que podem ser feitas na moto são chamadas de seus métodos.

 

No PowerShell, praticamente tudo é um objeto. Ao trabalhar com caixas de correio, usuários, processos, logs de eventos ou placas de rede, todos são representados como objetos e simplesmente incluem métodos e propriedades.

Por exemplo: um serviço do Windows é representado por um objeto.

Como todo objeto esse serviço possuí propriedades e métodos.

Como eu sei quais são as propriedades e métodos de um objeto? Por exemplo:

Se eu digitar get-service –name netlogn eu vou obter um objeto que representa o serviço NetLogon

O retorno da execução do comando acima exibe três propriedades. Mas será que essas são todas as propriedades do objeto serviço? Como eu sei quais são os métodos?

Para eu descobrir quais são as propriedades de um objeto basta eu informar o | e o get-member ou gm na frente de um cmdlet.

No nosso exemplo ficaria: get-service -Name netlogon | gm

Se eu quiser filtrar apenas as propriedades eu posso digitar:

get-service -Name netlogon | gm -membertype property

Se eu quiser filtrar apenas os métodos eu posso digitar

get-service -Name netlogon | gm -membertype method

O get-member também nos mostra qual é o tipo de objeto. Nesse caso, o tipo de objeto retornado pelo get-service é o System.ServiceProcess.ServiceController que é o mesmo tipo do .NET Framework.

 

Mais de PowerShell em:

Introdução ao PowerShell

Como trabalhar com WMI no Powershell

Comments (0)

Skip to main content