{"id":237,"date":"2012-12-05T17:11:20","date_gmt":"2012-12-05T17:11:20","guid":{"rendered":"http:\/\/www.fabiodomingos.com\/?p=237"},"modified":"2012-11-28T17:11:51","modified_gmt":"2012-11-28T17:11:51","slug":"cmdexe-5-visualizar-os-servicos-e-filtrar-resultados-com-where-object","status":"publish","type":"post","link":"https:\/\/www.fabiodomingos.com\/?p=237","title":{"rendered":"[cmdexe #5] Visualizar os Servi\u00e7os e Filtrar resultados com Where-Object"},"content":{"rendered":"<p>Continuando o nosso passeio pelo mundo das linhas de comandos, neste\u00a0post irei escrever sobre mais uma funcionalidade da PowerShell, neste caso visualizar os servi\u00e7os do Windows que est\u00e3o no computador e filtrar os mesmos.<\/p>\n<p>Assim, para visualizar esta listagem, devemos executar na PowerShell o comando seguinte:<\/p>\n<blockquote><p>get-service<\/p><\/blockquote>\n<p>Como resultado, obtemos ent\u00e3o uma listagem de todos os servi\u00e7os instalados no computador e o seu estado que pode ser <em>Running<\/em> caso este esteja a correr no momento da execu\u00e7\u00e3o do comando ou <em>Stopped<\/em> caso esteja parado:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/powershell-services.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-238\" title=\"powershell services\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/powershell-services-300x171.png\" alt=\"\" width=\"300\" height=\"171\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/powershell-services-300x171.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/powershell-services.png 603w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u00c9 poss\u00edvel filtrar os servi\u00e7os por estado, para isso vamos recorrer a um pequeno comando que nos permite filtrar os resultados das listagens, que \u00e9 o\u00a0<em>where-object.\u00a0<\/em>Para aplicarmos este comando (mais conhecido como cmdlet), utilizamos uma t\u00e9cnica das interfaces de linha de comandos intitulada de &#8220;Pipelining&#8221;, que nos permite introduzir um comando como argumento de entrada de outro, este nome deve-se ao carater pipe que se encontra \u00e0 esquerda do 1 nos teclados ( | ) e que permite fazer esta t\u00e9cnica, um exemplo desta t\u00e9cnica \u00e9 o seguinte:<\/p>\n<blockquote><p>comando1 | cmdlet_argumento<\/p><\/blockquote>\n<p>Para conhecer melhor esta t\u00e9cnica, veja o artigo referente \u00e0 mesma na wikipedia:<\/p>\n<blockquote><p>http:\/\/en.wikipedia.org\/wiki\/Pipeline_(Unix)<\/p><\/blockquote>\n<p>Agora, a t\u00edtulo de exemplo, e para que entendam a sintaxe do where-object, vamos filtrar a listagem de servi\u00e7os, mostrando para isso apenas os que estejam a correr, executando o comando seguinte:<\/p>\n<blockquote><p>\u00a0get-service | where-object {$_.status -eq &#8220;running&#8221;}<\/p><\/blockquote>\n<p>Passo a Passo, primeiro foi introduzido o comando\u00a0<em>get-service<\/em>, de seguida atrav\u00e9s de pipelining ( | ), foi introduzido o where-object, abrimos ent\u00e3o uma chaveta, e escrevemos tr\u00eas palavras cujo prop\u00f3sito \u00e9 o seguinte:<\/p>\n<p><strong>$_.status<\/strong><\/p>\n<p>Indica o nome da coluna acerca da qual queremos aplicar o filtro, neste caso como queremos apenas os processos que estejam a correr, e sendo que esta informa\u00e7\u00e3o est\u00e1 na coluna &#8220;Status&#8221;, introduzimos ent\u00e3o este comando, se fosse na &#8220;Name&#8221;, seria <strong>$_.name\u00a0<\/strong>.<\/p>\n<p><strong>-eq<\/strong><\/p>\n<p>Funciona como se fosse o operador, neste caso eq corresponde a\u00a0<em>equal,<\/em>\u00a0que \u00e9 neste caso igual, ou seja a informa\u00e7\u00e3o da coluna status tem de ser igual a.<\/p>\n<p>Existem outros operadores que podem ser usados:<\/p>\n<ul>\n<li>-lt <em>(Less Than) &#8211;\u00a0<\/em>Menor que;<\/li>\n<li>-le (<em>Less Than or Equal to)\u00a0<\/em>&#8211; Menor ou igual a;<\/li>\n<li>-gt (<em>Greater than) &#8211;\u00a0<\/em>Maior que;<\/li>\n<li>-ge (<em>Greather than or equal to) &#8211;\u00a0<\/em>Maior que ou igual a;<\/li>\n<li>-ne (<em>Not Equal To)\u00a0<\/em>N\u00e3o igual a, diferente de;<\/li>\n<li>-like (<em>Like)<\/em> filtragem atrav\u00e9s de\u00a0<em>wildcards.<\/em><\/li>\n<\/ul>\n<p><span style=\"line-height: 19px; font-size: small;\">Finalmente, temos ent\u00e3o o par\u00e2metro que queremos verificar se \u00e9 igual, neste caso &#8220;running&#8221;, o resultado da execu\u00e7\u00e3o desta filtragem, \u00e9 uma nova lista apenas com os servi\u00e7os em execu\u00e7\u00e3o:<\/span><\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/services2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-239\" title=\"services2\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/services2-300x143.png\" alt=\"\" width=\"300\" height=\"143\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/services2-300x143.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2012\/11\/services2.png 593w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Os servi\u00e7os foram ent\u00e3o filtrados.<\/p>\n<p>Como podemos ent\u00e3o ver, o cmdlet &#8220;Where-Object&#8221;, possui funcionalidades bastante \u00fateis, ao n\u00edvel da filtragem dos resultados, sendo muito \u00fatil n\u00e3o s\u00f3 nos servi\u00e7os, mas tamb\u00e9m numa simples listagem de ficheiros.<\/p>\n<p>Para saber mais:<\/p>\n<p>http:\/\/technet.microsoft.com\/en-us\/library\/ee177028.aspx<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuando o nosso passeio pelo mundo das linhas de comandos, neste\u00a0post irei escrever sobre mais uma funcionalidade da PowerShell, neste caso visualizar os servi\u00e7os do Windows que est\u00e3o no computador e filtrar os mesmos. Assim, para visualizar esta listagem, devemos executar na PowerShell o comando seguinte: get-service Como resultado, obtemos ent\u00e3o uma listagem de todos &#8230; <a title=\"[cmdexe #5] Visualizar os Servi\u00e7os e Filtrar resultados com Where-Object\" class=\"read-more\" href=\"https:\/\/www.fabiodomingos.com\/?p=237\" aria-label=\"Leia mais sobre [cmdexe #5] Visualizar os Servi\u00e7os e Filtrar resultados com Where-Object\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":34,"footnotes":""},"categories":[3,14],"tags":[],"class_list":["post-237","post","type-post","status-publish","format-standard","hentry","category-microsoft","category-powershell"],"_links":{"self":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts\/237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=237"}],"version-history":[{"count":2,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts\/237\/revisions"}],"predecessor-version":[{"id":241,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts\/237\/revisions\/241"}],"wp:attachment":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}