{"id":810195,"date":"2026-05-20T14:08:11","date_gmt":"2026-05-20T14:08:11","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=810195"},"modified":"2026-05-20T14:08:11","modified_gmt":"2026-05-20T14:08:11","slug":"usando-powershell-para-listar-usuarios-locais","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/pt-br\/script-hub\/usando-powershell-para-listar-usuarios-locais\/","title":{"rendered":"Uso do PowerShell para listar usu\u00e1rios locais em sistemas Windows"},"content":{"rendered":"<p><a href=\"https:\/\/www.ninjaone.com\/it-hub\/gerenciamento-de-endpoints\/what-is-powershell\/\">O PowerShell<\/a> \u00e9 uma ferramenta potente no arsenal dos profissionais de TI, muitas vezes aproveitada por sua capacidade de automatizar tarefas e extrair dados sem problemas. Uma tarefa cr\u00edtica frequentemente encontrada pelos <a href=\"https:\/\/www.ninjaone.com\/what-is-an-msp\/\">provedores de servi\u00e7os gerenciados (MSPs)<\/a> e administradores de sistemas \u00e9 listar os usu\u00e1rios em um sistema de computador. Hoje, vamos nos aprofundar em um script do PowerShell criado especificamente para isso: <strong>listar usu\u00e1rios locais.\u00a0<\/strong><\/p>\n<h2>Hist\u00f3rico<\/h2>\n<p>N\u00e3o h\u00e1 como negar que, no atual ambiente de TI de ritmo acelerado, a capacidade de extrair rapidamente dados sobre os usu\u00e1rios do sistema \u00e9 inestim\u00e1vel. Isso \u00e9 particularmente verdadeiro em grandes empresas ou sempre que um novo equipamento ou software estiver sendo implementado. Os administradores de sistemas e MSPs geralmente precisam entender quem tem acesso a qu\u00ea e quando. O script do PowerShell fornecido atende a essa necessidade, listando os usu\u00e1rios locais em uma m\u00e1quina Windows, permitindo que os profissionais obtenham insights rapidamente.<\/p>\n<h2>O roteiro<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 2.0\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Lists local computers' users.\r\n.DESCRIPTION\r\n    Lists local computers' users. By default it lists only the enabled users.\r\n.EXAMPLE\r\n    No parameters needed.\r\n    Lists enabled users on the local computer.\r\n.EXAMPLE\r\n     -AllUsers\r\n    Lists enabled and disabled users on the local computer.\r\n.EXAMPLE\r\n    PS C:&gt; List-Users.ps1 -AllUsers\r\n    Lists enabled and disabled users on the local computer.\r\n.OUTPUTS\r\n    System.Management.Automation.SecurityAccountsManager.LocalUser[]\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 7, Windows Server 2012\r\n    Release Notes:\r\n    Initial Release\r\n.COMPONENT\r\n    ManageUsers\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    # Will return disabled users as well as enabled users\r\n    [Switch]\r\n    $AllUsers\r\n)\r\n\r\nbegin {\r\n    Write-Output \"Starting List Users\"\r\n}\r\n\r\nprocess {\r\n    # If we are running powershell under a 32bit OS or running a 32bit version of powershell\r\n    # or we don't have access to Get-LocalUser\r\n    if (\r\n        [Environment]::Is64BitProcess -ne [Environment]::Is64BitOperatingSystem -or\r\n            (Get-Command -Name \"Get-LocalUser\" -ErrorAction SilentlyContinue).Count -eq 0\r\n    ) {\r\n        # Get users from net.exe user\r\n        $Data = $(net.exe user) | Select-Object -Skip 4\r\n        # Check if the command ran the way we wanted and the exit code is 0\r\n        if ($($Data | Select-Object -last 2 | Select-Object -First 1) -like \"*The command completed successfully.*\" -and $LASTEXITCODE -eq 0) {\r\n            # Process the output and get only the users\r\n            $Users = $Data[0..($Data.Count - 3)] -split 's+' | Where-Object { -not $([String]::IsNullOrEmpty($_) -or [String]::IsNullOrWhiteSpace($_)) }\r\n            # Loop through each user\r\n            $Users | ForEach-Object {\r\n                # Get the Account active property look for a Yes\r\n                $Enabled = $(net.exe user $_) | Where-Object {\r\n                    $_ -like \"Account active*\" -and\r\n                    $($_ -split 's+' | Select-Object -Last 1) -like \"Yes\"\r\n                }\r\n                # Output Name and Enabled almost like how Get-LocalUser displays it's data\r\n                [PSCustomObject]@{\r\n                    Name    = $_\r\n                    Enabled = if ($Enabled -like \"*Yes*\") { $true }else { $false }\r\n                }\r\n            } | Where-Object { if ($AllUsers) { $_.Enabled }else { $true } }\r\n        }\r\n        else {\r\n            exit 1\r\n        }\r\n    }\r\n    else {\r\n        try {\r\n            if ($AllUsers) {\r\n                Get-LocalUser\r\n            }\r\n            else {\r\n                Get-LocalUser | Where-Object { $_.Enabled -eq $true }\r\n            }\r\n        }\r\n        catch {\r\n            Write-Error $_\r\n            exit 1\r\n        }\r\n    }\r\n}\r\n\r\nend {\r\n    Write-Output \"Completed List Users\"\r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p style=\"text-align: center;\">Acesse mais de 300 scripts no NinjaOne Dojo<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Obter acesso<\/a><\/p>\n<\/div>\n<h2>Detalhamento<\/h2>\n<p>Em sua ess\u00eancia, o roteiro \u00e9 bastante simples. Ele come\u00e7a definindo um par\u00e2metro, <strong>$AllUsers<\/strong>, que, quando invocado, inclui usu\u00e1rios habilitados e desabilitados em sua sa\u00edda.\u00a0No bloco &#8216;process&#8217;, o script primeiro verifica a arquitetura do sistema e a disponibilidade do cmdlet <strong>Get-LocalUser<\/strong>. Se houver uma incompatibilidade ou se o cmdlet n\u00e3o estiver dispon\u00edvel, ele voltar\u00e1 a usar o comando legado <strong>net.exe user<\/strong>.\u00a0Os dados derivados de qualquer um dos m\u00e9todos s\u00e3o processados para listar os usu\u00e1rios. Quando o comando <strong>net.exe user<\/strong> \u00e9 utilizado, o script obt\u00e9m o status do usu\u00e1rio, verificando se cada conta est\u00e1 ativa. Em seguida, ele gera esses dados de forma estruturada.\u00a0Em cen\u00e1rios em que <strong>Get-LocalUser<\/strong> est\u00e1 dispon\u00edvel, ele busca e lista os usu\u00e1rios diretamente, filtrando apenas os habilitados, a menos que o par\u00e2metro <strong>$AllUsers<\/strong> seja invocado.<\/p>\n<h2>Casos de uso em potencial<\/h2>\n<p>Imagine uma profissional de TI, Jane, implementando uma nova atualiza\u00e7\u00e3o de software em sua empresa. Antes de implementar a atualiza\u00e7\u00e3o, ela precisa verificar as contas de usu\u00e1rio em cada m\u00e1quina para garantir que todas as licen\u00e7as de software sejam atribu\u00eddas corretamente. Em vez de verificar manualmente cada computador, ela utiliza o script do PowerShell, economizando horas de seu valioso tempo.<\/p>\n<h2>Compara\u00e7\u00f5es<\/h2>\n<p>Embora o script utilize o cmdlet <strong>Get-LocalUser<\/strong> sempre que poss\u00edvel, sua abordagem alternativa usando <strong>o usu\u00e1rio net.exe<\/strong> \u00e9 uma refer\u00eancia aos sistemas legados. Alguns outros scripts podem depender exclusivamente de cmdlets ou m\u00e9todos mais recentes. A abordagem dupla do script fornecido garante a compatibilidade com uma ampla gama de sistemas Windows, tornando-o vers\u00e1til em diversos ambientes.<\/p>\n<h2>Implica\u00e7\u00f5es<\/h2>\n<p>Uma lista de usu\u00e1rios em um computador pode fornecer uma vis\u00e3o geral dos poss\u00edveis pontos de acesso para pessoas n\u00e3o autorizadas. No contexto da seguran\u00e7a de TI, entender esses usu\u00e1rios e seus status \u00e9 uma etapa fundamental para garantir que somente indiv\u00edduos autorizados tenham acesso.<\/p>\n<h2>Recomenda\u00e7\u00f5es<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Atualize regularmente seu PowerShell para ter acesso aos cmdlets mais recentes.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Sempre execute scripts de fontes confi\u00e1veis para garantir a seguran\u00e7a do sistema.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">Audite regularmente as listas de usu\u00e1rios para garantir que contas n\u00e3o autorizadas n\u00e3o tenham sido adicionadas.<\/li>\n<\/ul>\n<h2>Considera\u00e7\u00f5es finais<\/h2>\n<p>O NinjaOne, com suas solu\u00e7\u00f5es robustas de gerenciamento de TI, complementa ferramentas como esse script do PowerShell. Quando os profissionais de TI listam os usu\u00e1rios locais usando nosso script do PowerShell, eles podem utilizar <a href=\"https:\/\/www.ninjaone.com\/pt-br\/\">a plataforma abrangente da NinjaOne<\/a> para gerenciar, monitorar e proteger esses usu\u00e1rios, garantindo que <a href=\"https:\/\/www.ninjaone.com\/pt-br\/gestao-ti-empresarial\/infraestrutura\/\">a infraestrutura de TI<\/a> permane\u00e7a otimizada e segura.<\/p>\n","protected":false},"author":35,"featured_media":144248,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[12435],"class_list":["post-810195","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/script_hub\/810195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/comments?post=810195"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/media\/144248"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/media?parent=810195"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/operating_system?post=810195"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/use_cases?post=810195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}