{"id":208546,"date":"2024-01-22T11:00:17","date_gmt":"2024-01-22T11:00:17","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/verwenden-von-powershell-zum-auflisten-lokaler-benutzer-auf-windows-systemen\/"},"modified":"2024-03-07T15:22:56","modified_gmt":"2024-03-07T15:22:56","slug":"verwenden-von-powershell-zum-auflisten-lokaler-benutzer-auf-windows-systemen","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/verwenden-von-powershell-zum-auflisten-lokaler-benutzer-auf-windows-systemen\/","title":{"rendered":"Verwenden von PowerShell zum Auflisten lokaler Benutzer:innen auf Windows-Systemen"},"content":{"rendered":"<p>PowerShell ist ein leistungsf\u00e4higes Tool im Arsenal von IT-Expert:innen, das h\u00e4ufig f\u00fcr die Automatisierung von Aufgaben und die nahtlose Extraktion von Daten genutzt wird. Eine kritische Aufgabe, mit der <a href=\"https:\/\/www.ninjaone.com\/de\/was-ist-ein-msp\">Managed Service Provider (MSPs)<\/a> und Systemadministratoren h\u00e4ufig konfrontiert werden, ist die Auflistung von Benutzer:innen in einem Computersystem. Heute befassen wir uns mit einem PowerShell-Skript, das speziell f\u00fcr diesen Zweck entwickelt wurde: zum <strong>Auflisten lokaler Benutzer:innen.\u00a0<\/strong><\/p>\n<h2>Hintergrund<\/h2>\n<p>In der heutigen schnelllebigen IT-Umgebung ist die M\u00f6glichkeit, schnell Daten \u00fcber Systembenutzer:innen zu extrahieren, unbestreitbar von unsch\u00e4tzbarem Wert. Dies gilt vor allem in gro\u00dfen Unternehmen oder wenn neue Ger\u00e4te oder Software eingef\u00fchrt werden. Systemadministratoren und MSPs m\u00fcssen oft wissen, wer wann auf was Zugriff hat. Das mitgelieferte PowerShell-Skript erf\u00fcllt diese Anforderung, indem es lokale Benutzer:innen auf einem Windows-Computer auflistet, so dass Fachleute schnell Einblicke gewinnen k\u00f6nnen.<\/p>\n<h2>Das Skript<\/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;\">Zugriff auf \u00fcber 300 Skripte im NinjaOne Dojo<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaone.com\/de\/kostenlosetestversionformular\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detailansicht<\/h2>\n<p>Im Kern ist das Drehbuch recht einfach. Es beginnt mit der Definition des Parameters <strong>$AllUsers<\/strong>, der bei seinem Aufruf sowohl aktivierte als auch deaktivierte Benutzer:innen in die Ausgabe einbezieht.\u00a0Im Block &#8222;prozess&#8220; \u00fcberpr\u00fcft das Skript zun\u00e4chst die Systemarchitektur und die Verf\u00fcgbarkeit des Cmdlets &#8220; <strong>Get-LocalUser<\/strong> &#8222;. Wenn eine Nicht\u00fcbereinstimmung vorliegt oder das Cmdlet nicht verf\u00fcgbar ist, wird auf den \u00e4lteren <strong>net.exe-Benutzerbefehl<\/strong> zur\u00fcckgegriffen.\u00a0Die aus beiden Methoden abgeleiteten Daten werden dann verarbeitet, um die Benutzer aufzulisten. Wenn der Befehl <strong>net.exe user<\/strong> verwendet wird, ruft das Skript den Benutzerstatus ab und pr\u00fcft, ob jedes Konto aktiv ist. Anschlie\u00dfend werden diese Daten strukturiert ausgegeben.\u00a0In Szenarien, in denen <strong>Get-LocalUser<\/strong> verf\u00fcgbar ist, werden die Benutzer:innen direkt abgerufen und aufgelistet, wobei nur die aktivierten Benutzer:innen gefiltert werden, sofern nicht der Parameter <strong>$AllUsers<\/strong> aufgerufen wird.<\/p>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Stellen Sie sich eine IT-Fachkraft, Jane, vor, die in ihrem Unternehmen ein neues Software-Update einf\u00fchrt. Vor der Bereitstellung des Updates muss sie die Benutzerkonten auf jedem Rechner \u00fcberpr\u00fcfen, um sicherzustellen, dass alle Softwarelizenzen korrekt zugewiesen sind. Anstatt jeden Computer manuell zu \u00fcberpr\u00fcfen, setzt sie das PowerShell-Skript ein und spart so Stunden ihrer wertvollen Zeit.<\/p>\n<h2>Vergleiche<\/h2>\n<p>W\u00e4hrend das Skript nach M\u00f6glichkeit das Cmdlet &#8220; <strong>Get-LocalUser<\/strong> &#8220; verwendet, ist der alternative Ansatz mit <strong>net.exe user<\/strong> eine Anspielung auf \u00e4ltere Systeme. Einige andere Skripte verlassen sich m\u00f6glicherweise nur auf neuere Cmdlets oder Methoden. Der duale Ansatz des bereitgestellten Skripts gew\u00e4hrleistet die Kompatibilit\u00e4t mit einer Vielzahl von Windows-Systemen und macht es vielseitig in unterschiedlichen Umgebungen einsetzbar.<\/p>\n<h2>FAQs<\/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>Kann das Skript auf jedem Windows-Rechner verwendet werden?<\/strong><br \/>\nEs ist f\u00fcr Windows 7 und Windows Server 2012 und h\u00f6her konzipiert.<\/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>Was ist, wenn Get-LocalUser auf meinem System nicht verf\u00fcgbar ist?<\/strong><br \/>\nDas Skript greift automatisch auf den <strong>net.exe-Benutzerbefehl<\/strong> zur\u00fcck, wenn <strong>Get-LocalUser<\/strong> nicht verf\u00fcgbar ist oder die Architektur nicht \u00fcbereinstimmt.<\/li>\n<\/ul>\n<h2>Auswirkungen<\/h2>\n<p>Eine Liste der Benutzer:innen eines Computers kann einen \u00dcberblick \u00fcber potenzielle Zugriffspunkte f\u00fcr unbefugtes Personal geben. Im Kontext der IT-Sicherheit ist das Verst\u00e4ndnis dieser Benutzer und ihres Status ein grundlegender Schritt, um sicherzustellen, dass nur autorisierte Personen Zugang haben.<\/p>\n<h2>Empfehlungen<\/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\">Aktualisieren Sie Ihre PowerShell regelm\u00e4\u00dfig, um Zugriff auf die neuesten Cmdlets zu haben.<\/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\">F\u00fchren Sie immer Skripte aus vertrauensw\u00fcrdigen Quellen aus, um die Systemsicherheit zu gew\u00e4hrleisten.<\/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\">Pr\u00fcfen Sie regelm\u00e4\u00dfig die Benutzerlisten, um sicherzustellen, dass keine nicht autorisierten Konten hinzugef\u00fcgt wurden.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>NinjaOne mit seinen robusten IT-Management-L\u00f6sungen erg\u00e4nzt Tools wie dieses PowerShell-Skript. Wenn IT-Profis lokale Benutzer:innen mit unserem PowerShell-Skript auflisten, k\u00f6nnen sie die <a href=\"https:\/\/www.ninjaone.com\/de\/\">umfassende Plattform von NinjaOne<\/a> nutzen, um diese Benutzer:innen zu verwalten, zu \u00fcberwachen und abzusichern und so sicherzustellen, dass die <a href=\"https:\/\/www.ninjaone.com\/de\/it-management-fuer-unternehmen\/infrastruktur\/\">IT-Infrastruktur<\/a> sowohl optimiert als auch sicher bleibt.<\/p>\n","protected":false},"author":35,"featured_media":144244,"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":[4309],"class_list":["post-208546","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-benutzerinnen-und-zugangsverwaltung"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/208546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/comments?post=208546"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media\/144244"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=208546"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=208546"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=208546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}