Descobrir objetos
Quando um cmdlet é executado, ele retorna um objeto. Quando você invoca um cmdlet, a resposta exibida foi formatada e pode não representar necessariamente todas as informações disponíveis para a resposta. Para saber mais sobre o que está sendo retornado e como você pode modificar o que é retornado, você pode usar o comando Get-Member
.
Descobrir objetos usando Get-Member
O Get-Member
cmdlet deve ser canalizado sobre o comando executado para que você possa filtrar a saída. Uma invocação de linha de comando típica de Get-Member
pode se parecer com o exemplo a seguir:
Get-Process -Name 'name-of-process' | Get-Member
Este comando primeiro produz um resultado de objeto chamando Get-Process
. Esse resultado é passado como uma entrada usando Get-Member
o tubo (|
). Em troca, você obtém um resultado de tabela que inclui as Name
colunas , MemberType
e Definition
. Você também obtém o tipo do objeto retornado.
Gorjeta
Para obter uma lista dos processos em execução na sua máquina, execute Get-Process
.
Pesquisa por tipo
A primeira linha da resposta, executando o comando, é o Get-Member
tipo do objeto retornado. Quando você conhece o tipo, pode procurar outros cmdlets que operam no mesmo tipo. Explore estes comandos relacionados para desenvolver rapidamente o seu conhecimento no domínio em que está a trabalhar.
Digamos que você invocou o comando PowerShell que lista todos os membros para um processo específico. As primeiras linhas do resultado são parecidas com esta saída:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
A primeira linha indica que o tipo é System.Diagnostics.Process
. Use esse tipo como um argumento de pesquisa para procurar outros cmdlets que usam esse tipo. Aqui está um comando de exemplo:
Get-Command -ParameterType Process
O resultado é uma lista de cmdlets que operam nesse tipo. Pouco a pouco, você pode aprender mais sobre o PowerShell usando Get-Member
e aprendendo a interpretar seu resultado.
Gorjeta
O PowerShell deve ser aprendido um pouco de cada vez. Uma ótima maneira de descobrir cmdlets relacionados é usando o tipo retornado para pesquisar cmdlets por tipo.
Filtrar um resultado Get-Member usando Select-Object
Quando você executa Get-Member
, o resultado é detalhado. Ou seja, muitas linhas são devolvidas. O objeto pode ter propriedades, como eventos e métodos. Para tornar a resposta menos detalhada, você pode filtrar colunas específicas e também decidir quais colunas exibir. Lembre-se de que a resposta retornada já é um subconjunto de todas as colunas da resposta.
Dê uma olhada em uma Get-Member
resposta que inclui muitas colunas. Ao introduzir o Select-Object
cmdlet, você pode escolher quais colunas aparecem na resposta. O comando espera uma lista separada por vírgulas de nomes de colunas ou um caractere curinga, como um asterisco (*
), que indica todas as colunas.
Ao usar o Select-Object
comando no contexto do Select-Object Name, MemberType
, você especifica apenas as colunas desejadas. Neste caso, as colunas são Name
e MemberType
. A linha de comando ficaria assim:
Get-Process -Name 'name-of-process' | Get-Member | Select-Object Name, MemberType
Esse padrão de filtragem retorna uma saída que inclui menos colunas. Aqui está um exemplo do resultado:
Name MemberType
---- ----------
Handles AliasProperty
Você também pode filtrar a resposta por linhas. Por exemplo, você pode usar o sinalizador para especificar que está interessado nas linhas nas quais o -MemberType Method
tipo de membro é um método. Talvez você queira mostrar apenas linhas específicas, por exemplo, se quiser localizar e executar um método específico.
Gorjeta
Geralmente, é melhor usar cmdlets dedicados do que executar métodos em um objeto.