{"id":208423,"date":"2024-01-22T10:36:17","date_gmt":"2024-01-22T10:36:17","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/utiliser-powershell-pour-voir-tous-les-utilisateurs-locaux\/"},"modified":"2024-03-07T15:22:55","modified_gmt":"2024-03-07T15:22:55","slug":"utiliser-powershell-pour-voir-tous-les-utilisateurs-locaux","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/utiliser-powershell-pour-voir-tous-les-utilisateurs-locaux\/","title":{"rendered":"Utilisation de PowerShell pour voir tous les utilisateurs locaux sur les syst\u00e8mes Windows"},"content":{"rendered":"<p>Aujourd&rsquo;hui, nous nous penchons sur un script PowerShell sp\u00e9cialement con\u00e7u \u00e0 cet effet : <strong>voir tous les utilisateurs locaux. <\/strong>PowerShell est un outil puissant pour les professionnels de l&rsquo;informatique, souvent utilis\u00e9 pour sa capacit\u00e9 \u00e0 automatiser des t\u00e2ches et \u00e0 extraire des donn\u00e9es de mani\u00e8re optimale. Une t\u00e2che cruciale fr\u00e9quemment rencontr\u00e9e par les <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> et les administrateurs de syst\u00e8mes consiste \u00e0 dresser la liste des utilisateurs d&rsquo;un syst\u00e8me informatique.<\/p>\n<h2>Contexte<\/h2>\n<p>Il est ind\u00e9niable que dans l&rsquo;environnement informatique actuel, qui \u00e9volue rapidement, la capacit\u00e9 d&rsquo;extraire rapidement des donn\u00e9es sur les utilisateurs du syst\u00e8me est d&rsquo;une valeur inestimable. C&rsquo;est particuli\u00e8rement vrai dans les grandes entreprises ou lors de la mise en place de nouveaux \u00e9quipements ou logiciels. Les administrateurs syst\u00e8me et les entreprises MSP ont souvent besoin de savoir qui a acc\u00e8s \u00e0 quoi et quand. Le script PowerShell fourni r\u00e9pond \u00e0 ce besoin en r\u00e9pertoriant les utilisateurs locaux sur une machine Windows, ce qui permet aux professionnels d&rsquo;obtenir rapidement des informations.<\/p>\n<h2>Le script<\/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;\">Acc\u00e9dez \u00e0 plus de 700 scripts dans le Dojo NinjaOne<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaone.com\/fr\/phase-de-test-gratuit\/\">Obtenez l&rsquo;acc\u00e8s<\/a><\/p>\n<\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Au fond, le script est assez simple. Il commence par d\u00e9finir un param\u00e8tre, <strong>$AllUsers<\/strong>, qui, lorsqu&rsquo;il est invoqu\u00e9, inclut les utilisateurs activ\u00e9s et d\u00e9sactiv\u00e9s dans son r\u00e9sultat.\u00a0Dans le bloc \u00ab\u00a0process\u00a0\u00bb, le script v\u00e9rifie d&rsquo;abord l&rsquo;architecture du syst\u00e8me et la disponibilit\u00e9 de la cmdlet <strong>Get-LocalUser<\/strong>. En cas de non-concordance ou si la cmdlet n&rsquo;est pas disponible, la commande <strong>net.exe user<\/strong> est utilis\u00e9e. Les donn\u00e9es obtenues par l&rsquo;une ou l&rsquo;autre m\u00e9thode sont ensuite trait\u00e9es pour dresser la liste et voir tous les utilisateurs locaux. Lorsque la commande <strong>net.exe user<\/strong> est utilis\u00e9e, le script r\u00e9cup\u00e8re le statut de l&rsquo;utilisateur, en v\u00e9rifiant si chaque compte est actif. Ces donn\u00e9es sont ensuite pr\u00e9sent\u00e9es de mani\u00e8re structur\u00e9e.\u00a0Dans les sc\u00e9narios o\u00f9 <strong>Get-LocalUser<\/strong> est disponible, il r\u00e9cup\u00e8re et r\u00e9pertorie directement les utilisateurs, en ne filtrant que ceux qui sont activ\u00e9s, \u00e0 moins que le param\u00e8tre <strong>$AllUsers<\/strong> ne soit invoqu\u00e9.<\/p>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez une informaticienne, Jane, en train de d\u00e9ployer une nouvelle mise \u00e0 jour logicielle dans son entreprise. Avant de d\u00e9ployer la mise \u00e0 jour, elle doit v\u00e9rifier les comptes d&rsquo;utilisateurs sur chaque machine pour s&rsquo;assurer que toutes les licences logicielles sont correctement attribu\u00e9es. Au lieu de v\u00e9rifier manuellement chaque ordinateur, elle utilise le script PowerShell, ce qui lui permet d&rsquo;\u00e9conomiser des heures de son pr\u00e9cieux temps.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Bien que le script utilise la cmdlet <strong>Get-LocalUser<\/strong> dans la mesure du possible, son approche alternative utilisant <strong>net.exe user<\/strong> est un clin d&rsquo;\u0153il aux anciens syst\u00e8mes. D&rsquo;autres scripts peuvent s&rsquo;appuyer uniquement sur des cmdlets ou des m\u00e9thodes plus r\u00e9centes. La double approche du script fourni garantit la compatibilit\u00e9 avec un large \u00e9ventail de syst\u00e8mes Windows, ce qui le rend polyvalent dans divers environnements.<\/p>\n<h2>FAQ<\/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\"><strong>Le script peut-il \u00eatre utilis\u00e9 sur n&rsquo;importe quelle machine Windows ?<\/strong><br \/>\nIl est con\u00e7u pour les syst\u00e8mes d&rsquo;exploitation Windows 7 et Windows Server 2012.<\/li>\n<\/ul>\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\"><strong>Que faire si Get-LocalUser n&rsquo;est pas disponible sur mon syst\u00e8me ?<\/strong><br \/>\nLe script recourt automatiquement \u00e0 la commande <strong>net.exe user<\/strong> si <strong>Get-LocalUser<\/strong> n&rsquo;est pas disponible ou s&rsquo;il y a une incompatibilit\u00e9 d&rsquo;architecture.<\/li>\n<\/ul>\n<h2>Implications<\/h2>\n<p>La liste des utilisateurs d&rsquo;un ordinateur peut fournir un aper\u00e7u des points d&rsquo;acc\u00e8s potentiels pour le personnel non autoris\u00e9. Dans le contexte de la s\u00e9curit\u00e9 informatique, la compr\u00e9hension de ces utilisateurs et de leurs statuts est une \u00e9tape fondamentale pour s&rsquo;assurer que seules les personnes autoris\u00e9es y ont acc\u00e8s.<\/p>\n<h2>Recommandations<\/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\">Mettez r\u00e9guli\u00e8rement \u00e0 jour votre PowerShell pour avoir acc\u00e8s aux derni\u00e8res cmdlets.<\/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\">Ex\u00e9cutez toujours des scripts provenant de sources fiables afin de garantir la s\u00e9curit\u00e9 du syst\u00e8me.<\/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\">V\u00e9rifiez r\u00e9guli\u00e8rement les listes d&rsquo;utilisateurs pour s&rsquo;assurer que des comptes non autoris\u00e9s n&rsquo;ont pas \u00e9t\u00e9 ajout\u00e9s.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>NinjaOne, avec ses solutions de gestion informatique performantes, compl\u00e8te des outils tels que ce script PowerShell. Lorsque les professionnels de l&rsquo;informatique listent les utilisateurs locaux \u00e0 l&rsquo;aide de notre script PowerShell, ils peuvent ensuite utiliser la <a href=\"https:\/\/www.ninjaone.com\/fr\/\">plateforme compl\u00e8te de NinjaOne<\/a> pour g\u00e9rer, surveiller et s\u00e9curiser ces utilisateurs, en veillant \u00e0 ce que <a href=\"https:\/\/www.ninjaone.com\/fr\/gestion-informatique-grande-entreprise\/infrastructure\">l&rsquo;infrastructure informatique<\/a> reste \u00e0 la fois optimis\u00e9e et s\u00e9curis\u00e9e.<\/p>\n","protected":false},"author":35,"featured_media":144243,"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":[4289],"class_list":["post-208423","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-gestion-des-utilisateurs-et-des-acces"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/208423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=208423"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/144243"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=208423"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=208423"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=208423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}