{"id":251461,"date":"2024-05-08T09:50:36","date_gmt":"2024-05-08T09:50:36","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=251461"},"modified":"2024-05-08T09:53:03","modified_gmt":"2024-05-08T09:53:03","slug":"automatisieren-der-erkennung-von-inaktiven-benutzerkonten-mit-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/automatisieren-der-erkennung-von-inaktiven-benutzerkonten-mit-powershell\/","title":{"rendered":"Automatisieren der Erkennung von inaktiven Benutzerkonten mit PowerShell"},"content":{"rendered":"<h2>Die wichtigsten Erkenntnisse<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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>Automatisiertes Sicherheitsprotokoll<\/strong>: Das Skript automatisiert die Identifizierung inaktiver Benutzerkonten und erh\u00f6ht damit die Sicherheit.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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\"><strong>Individuell einstellbare Grenzwerte<\/strong>: Passen Sie die Inaktivit\u00e4tsschwelle an die Unternehmensrichtlinien an.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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\"><strong>Kompatibilit\u00e4t mit verschiedenen Umgebungen<\/strong>: Kann lokale, Active Directory- und Azure AD-Konten verwalten.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"4\" data-aria-level=\"1\"><strong>Zeit- und ressourceneffizient<\/strong>: Automatisiert einen zeitaufw\u00e4ndigen manuellen Prozess.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"5\" data-aria-level=\"1\"><strong>Proaktives Risikomanagement<\/strong>: Hilft bei der Vermeidung von Sicherheitsverst\u00f6\u00dfen durch die Verwaltung potenzieller Schwachstellen.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"6\" data-aria-level=\"1\"><strong>Transparenz und Flexibilit\u00e4t<\/strong>: Da es sich um ein PowerShell-Skript handelt, ist es transparent und kann f\u00fcr bestimmte Anforderungen angepasst werden.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"7\" data-aria-level=\"1\"><strong>Geplante Audits<\/strong>: Kann so eingestellt werden, dass es in regelm\u00e4\u00dfigen Abst\u00e4nden zur kontinuierlichen \u00dcberwachung l\u00e4uft.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"8\" data-aria-level=\"1\"><strong>Umfassende Berichterstattung<\/strong>: Erzeugt detaillierte Berichte \u00fcber inaktive Konten, die die Entscheidungsfindung erleichtern.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"9\" data-aria-level=\"1\"><strong>Integration mit Verwaltungstools<\/strong>: Erg\u00e4nzt und integriert sich mit IT-Management-L\u00f6sungen wie NinjaOne.<\/li>\n<\/ul>\n<p>In der dynamischen Landschaft der IT-Verwaltung haben Sicherheit und Effizienz der Benutzerkontenverwaltung nach wie vor oberste Priorit\u00e4t. Die regelm\u00e4\u00dfige \u00dcberwachung und Beseitigung inaktiver Benutzerkonten ist nicht nur eine bew\u00e4hrte Praxis, sondern eine Notwendigkeit f\u00fcr die Aufrechterhaltung einer sicheren IT-Umgebung. Hier kommen <a href=\"https:\/\/www.ninjaone.com\/script-hub\/\">PowerShell-Skripte<\/a>, wie das, \u00fcber das wir heute sprechen, f\u00fcr IT-Profis und <a href=\"https:\/\/www.ninjaone.com\/what-is-an-msp\/\">Managed Service Provider (MSPs), besonders wertvoll zum Einsatz.&nbsp;<\/a><\/p>\n<h2>Hintergrund<\/h2>\n<p>Das fragliche Skript dient dazu, Administratoren \u00fcber inaktive oder ungenutzte Konten in einer Windows-Umgebung zu informieren und zu warnen. Inaktive Konten k\u00f6nnen ein erhebliches Sicherheitsrisiko darstellen, da sie als potenzielle Einstiegspunkte f\u00fcr unbefugten Zugriff dienen, wenn sie kompromittiert werden. F\u00fcr IT-Profis und <a href=\"https:\/\/www.ninjaone.com\/blog\/it-compliance\/\">MSPs sind solche Skripte entscheidend, um Sicherheitsl\u00fccken vorzeitig anzugehen und die Einhaltung verschiedener IT-Richtlinien<\/a> und Vorschriften sicherzustellen.<\/p>\n<h2>Das Skript:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">&lt;#\r\n.SYNOPSIS\r\n    Alerts when there is an inactive \/ unused account that has not logged in or has not had their password set in the specified number of days.\r\n.DESCRIPTION\r\n    Alerts when there is an inactive \/ unused account that has not logged in or has not had their password set in the specified number of days.\r\n.EXAMPLE\r\n    -IncludeDisabled\r\n    \r\n    Action completed: Run Monitor Account Last Logon Result: FAILURE Output: Action: Run Monitor Account Last Logon, Result: Failed\r\n    WARNING: Inactive accounts detected!\r\n\r\n    Username       PasswordLastSet       LastLogon              Enabled\r\n    --------       ---------------       ---------              -------\r\n    Administrator  4\/12\/2023 9:05:18 AM  11\/28\/2023 10:31:06 AM    True\r\n    Guest                                12\/31\/1600 4:00:00 PM    False\r\n    DefaultAccount                       12\/31\/1600 4:00:00 PM    False\r\n    kbohlander     11\/29\/2023 1:49:51 PM 12\/5\/2023 1:09:43 PM      True\r\n    tuser1         12\/1\/2023 5:59:58 PM  12\/4\/2023 9:34:32 AM      True\r\n    krbtgt         11\/27\/2023 3:40:20 PM 12\/31\/1600 4:00:00 PM    False\r\n    tuser2         12\/4\/2023 3:40:27 PM  12\/31\/1600 4:00:00 PM     True\r\n.EXAMPLE\r\n    -Days 60\r\n    \r\n    Action completed: Run Monitor Account Last Logon Result: FAILURE Output: Action: Run Monitor Account Last Logon, Result: Failed\r\n    WARNING: Inactive accounts detected!\r\n\r\n    Username       PasswordLastSet       LastLogon              Enabled\r\n    --------       ---------------       ---------              -------\r\n    Administrator  4\/12\/2023 9:05:18 AM  11\/28\/2023 10:31:06 AM    True\r\n    kbohlander     11\/29\/2023 1:49:51 PM 12\/5\/2023 1:09:43 PM      True\r\n    tuser1         12\/1\/2023 5:59:58 PM  12\/4\/2023 9:34:32 AM      True\r\n    tuser2         12\/4\/2023 3:40:27 PM  12\/31\/1600 4:00:00 PM     True\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 7, Windows Server 2012\r\n    Exit code 1: Found users that haven't logged in over X days and are enabled.\r\n    Exit code 2: Calling \"net.exe user\" or \"Get-LocalUser\" failed.\r\n    Release Notes: Renamed script, added Script Variable support, improved ad support, removed requires statement.\r\nBy using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter()]\r\n    [int]$Days = 90,\r\n    [Parameter()]\r\n    [switch]$IncludeDisabled = [System.Convert]::ToBoolean($env:includeDisabled)\r\n)\r\n\r\nbegin {\r\n    # Use script variables if available.\r\n    if ($env:days -and $env:days -notlike \"null\") {\r\n        $Days = $env:Days\r\n    }\r\n\r\n    # Change negative days to the expected positive days\r\n    if ($Days -lt 0) {\r\n        $Days = 0 - $Days\r\n    }\r\n\r\n    # Date where an account is considered inactive.\r\n    $InactivityCutOff = (Get-Date).AddDays(-$Days)\r\n\r\n    function Test-IsDomainJoined {\r\n        if ($PSVersionTable.PSVersion.Major -lt 5) {\r\n            return $(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain\r\n        }\r\n        else {\r\n            return $(Get-CimInstance -Class Win32_ComputerSystem).PartOfDomain\r\n        }\r\n    }\r\n\r\n    function Test-IsDomainController {\r\n        $OS = if ($PSVersionTable.PSVersion.Major -lt 5) {\r\n            Get-WmiObject -Class Win32_OperatingSystem\r\n        }\r\n        else {\r\n            Get-CimInstance -ClassName Win32_OperatingSystem\r\n        }\r\n\r\n        if ($OS.ProductType -eq \"2\") {\r\n            return $true\r\n        }\r\n    }\r\n\r\n    # We'll want to warn that we're unable to check the actual Azure AD account \r\n    # (it requires O365 credentials and a powershell module both of which are not supported by this script).\r\n    function Test-IsAzureJoined {\r\n        try {\r\n            $dsreg = dsregcmd.exe \/status | Select-String \"AzureAdJoined : YES\"\r\n        }\r\n        catch {\r\n            return $False\r\n        }\r\n        if ($dsreg) { return $True }\r\n    }\r\n\r\n    # For Non-Domain Controllers we'll check net user for the information we need.\r\n    function Get-NetAccountInfo {\r\n        [CmdletBinding()]\r\n        param(\r\n            [Parameter()]\r\n            [string]$User,\r\n            [Parameter()]\r\n            [switch]$Domain\r\n        )\r\n        process {\r\n            # Get user info from net.exe user\r\n            $netuser = if ($Domain) { net.exe user $user \/Domain }else { net.exe user $user }\r\n\r\n            $success = $netuser | Select-String 'The command completed successfully.'\r\n            if (-not $success) {\r\n                throw \"Failed to retrieve account info for user $user!\"\r\n            }\r\n\r\n            #Pre-formatted Object\r\n            $Object = New-Object psobject -Property @{\r\n                Username        = $User\r\n                Name            = \"$(($netuser | Select-String 'Full Name') -split '  ' | Select-Object -Last 1)\".Trim()\r\n                Enabled         = \"$(($netuser | Select-String 'Account active') -split '  ' | Select-Object -Last 1)\".Trim()\r\n                LastLogon       = \"$(($netuser | Select-String 'Last logon') -split '  ' | Select-Object -Last 1)\".Trim()\r\n                PasswordLastSet = \"$(($netuser | Select-String 'Password last set') -split '  ' | Select-Object -Last 1)\".Trim()\r\n            }\r\n\r\n            # Formatted object using PowerShell datatypes (for easier parsing later).\r\n            New-Object psobject -Property @{\r\n                Username        = $Object.Username\r\n                Name            = $Object.Name\r\n                Enabled         = if ($Object.Enabled -eq \"Yes\") { $True }elseif ($Object.Enabled -eq \"No\") { $False }else { $Object.Enabled }\r\n                LastLogon       = try { Get-Date $Object.LastLogon }catch { $Object.LastLogon };\r\n                PasswordLastSet = try { Get-Date $Object.PasswordLastSet }catch { $Object.PasswordLastSet }\r\n            }\r\n        }\r\n    }\r\n}\r\nprocess {\r\n\r\n    # If it's an azure joined machine we should warn that we're not checking any of the Azure AD Accounts.\r\n    if (Test-IsAzureJoined) {\r\n        Write-Warning -Message \"This script is unable to check Azure AD accounts however this script will check the local accounts on this machine.\"\r\n    }\r\n\r\n    $Report = New-Object System.Collections.Generic.List[object]\r\n\r\n    # Warn if ad accounts are not able to be checked.\r\n    if (-not (Test-IsDomainController) -and (Test-IsDomainJoined) -and -not (Test-ComputerSecureChannel)) {\r\n        Write-Warning \"Domain is not reachable! We'll be unable to check active directory accounts!\"\r\n    }\r\n\r\n    # There are two ways this script will check for an inactive account one of which uses the Active Directory PowerShell module which is only availalbe on Domain Controllers \/ machines with RSAT installed.\r\n    if (-not (Test-IsDomainController)) {\r\n\r\n        # Compile a list of users to check.\r\n        $Users = if ($PSVersionTable.PSVersion.Major -lt 5) {\r\n            Get-WmiObject -Class \"win32_UserAccount\"        \r\n        }\r\n        else {\r\n            Get-CimInstance -Class \"win32_UserAccount\"\r\n        }\r\n\r\n        # Grab the account info using net user (which is slightly different if it's a domain account or not).\r\n        $Accounts = foreach ($User in $Users) {\r\n            if ($User.Domain -ne $env:COMPUTERNAME ) {\r\n                Get-NetAccountInfo -User $User.Name -Domain\r\n            }\r\n            else {\r\n                Get-NetAccountInfo -User $User.Name\r\n            }\r\n        }\r\n    }\r\n    else {\r\n        # Older OS's need to have the module manually imported.\r\n        try {\r\n            Import-Module ActiveDirectory\r\n        }\r\n        catch {\r\n            Write-Error -Message \"[Error] Failed to import PowerShell Active Directory Module. Is RSAT installed?\" -Category DeviceError -Exception (New-Object System.Exception)\r\n        }\r\n\r\n        # Compile a list of users with the relevant attributes\r\n        $Users = Get-AdUser -Filter * -Properties SamAccountName, DisplayName, PasswordLastSet, lastLogonTimestamp, lastLogon, Enabled\r\n        \r\n        # Convert that into a more parseable object\r\n        $Accounts = foreach ($User in $Users) {\r\n            $LastLogon = [datetime]::FromFileTime($User.lastLogon)\r\n            $LastLogonTimeStamp = [datetime]::FromFileTime($User.LastLogonTimestamp)\r\n            New-Object psobject -Property @{\r\n                Username        = $User.SamAccountName\r\n                Name            = $User.DisplayName\r\n                Enabled         = $User.Enabled\r\n                LastLogon       = if ($LastLogon -gt $LastLogonTimeStamp) { $LastLogon }else { $LastLogonTimeStamp }\r\n                PasswordLastSet = $User.PasswordLastSet\r\n            }\r\n        }\r\n    }\r\n\r\n    # Compile a list of accounts that could be considered inactive\r\n    $InactiveAccounts = $Accounts | Where-Object { ($_.LastLogon -eq \"Never\" -or $_.LastLogon -lt $InactivityCutOff) -and $_.PasswordLastSet -lt $InactivityCutOff }\r\n\r\n    # Filter out disabled accounts if we're asked to.\r\n    if ($IncludeDisabled) {\r\n        $InactiveAccounts | ForEach-Object { $Report.Add($_) }\r\n    }\r\n    else {\r\n        $InactiveAccounts | Where-Object { $_.Enabled -notlike $False } | ForEach-Object { $Report.Add($_) }\r\n    }\r\n\r\n    # If no inactive accounts exit\r\n    if (-not $Report) {\r\n        Write-Host \"No inactive accounts detected!\"\r\n        exit 0\r\n    }\r\n\r\n    Write-Warning \"Inactive accounts detected!\"\r\n    $Report | Format-Table -AutoSize -Property Username, PasswordLastSet, LastLogon, Enabled | Out-String | Write-Host\r\n    exit 1\r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Zugriff auf \u00fcber 300 Skripte im NinjaOne Dojo<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detaillierte Aufschl\u00fcsselung<\/h2>\n<p>Das Skript arbeitet in einem mehrstufigen Prozess:<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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>Initialisierung der Parameter<\/strong>: Sie beginnt mit der Definition von Parametern, einschlie\u00dflich der Anzahl der Tage, nach denen ein Konto als inaktiv gilt, und einer Option zur Einbeziehung deaktivierter Konten.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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\"><strong>Umgebungs\u00fcberpr\u00fcfungen<\/strong>: Das Skript \u00fcberpr\u00fcft, ob die Maschine einer Dom\u00e4ne beigetreten ist, ein Dom\u00e4nencontroller ist oder mit Azure AD verbunden ist. Dies bestimmt den Umfang der Kontrollen f\u00fcr Konten &#8211; lokal, Active Directory oder Azure.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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\"><strong>Accountabruf<\/strong>: F\u00fcr Nicht-Dom\u00e4nencontroller werden Kontoinformationen mithilfe von <strong>&#8222;net.exe user&#8220;<\/strong> oder WMI\/CIM-Instanzen abgerufen, w\u00e4hrend f\u00fcr Dom\u00e4nencontroller das Active Directory PowerShell-Modul verwendet wird.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"4\" data-aria-level=\"1\"><strong>Bewertung der Aktivit\u00e4t<\/strong>: Die Kernfunktion besteht darin, die Benutzerkonten anhand des Datums der letzten Anmeldung und des Passworts im Vergleich zur Inaktivit\u00e4tsschwelle zu bewerten.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"5\" data-aria-level=\"1\"><strong>Erstellung von Berichten<\/strong>: Inaktive Konten werden in einem Bericht zusammengefasst, mit der Option, deaktivierte Konten auszuschlie\u00dfen.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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=\"6\" data-aria-level=\"1\"><strong>Warnmeldungen und Exit-Codes<\/strong>: Das Skript schlie\u00dft damit ab, dass es Administratoren \u00fcber inaktive Konten informiert und mit einem Code beendet, der das Vorhandensein oder Nichtvorhandensein solcher Konten anzeigt.<\/li>\n<\/ul>\n<h2>M\u00f6gliche Anwendungsf\u00e4lle<\/h2>\n<p>Stellen Sie sich ein Szenario vor, in dem ein IT-Administrator in einem gro\u00dfen Unternehmen dieses Skript verwendet, um routinem\u00e4\u00dfig Benutzerkonten zu \u00fcberpr\u00fcfen. Sie k\u00f6nnten das Skript so planen, dass es monatlich ausgef\u00fchrt wird und sie auf Konten aufmerksam macht, die seit mehr als 90 Tagen nicht mehr aktiv waren. Dies erm\u00f6glicht eine proaktive Verwaltung der Benutzerkonten und verringert das Risiko von Sicherheitsverletzungen durch inaktive Konten.<\/p>\n<h2>Vergleiche<\/h2>\n<p>Es gibt alternative Ans\u00e4tze, wie manuelle Audits oder die Verwendung von Tools von Drittanbietern. Allerdings bietet dieses PowerShell-Skript eine direktere, anpassbare und kosteng\u00fcnstige L\u00f6sung. Im Gegensatz zu manuellen Kontrollen automatisiert es den Prozess, spart Zeit und reduziert menschliche Fehler. Im Vergleich zu Tools von Drittanbietern bietet es Transparenz und Flexibilit\u00e4t, da IT-Experten das Skript an ihre spezifischen Bed\u00fcrfnisse anpassen k\u00f6nnen.<\/p>\n<h2>FAQs<\/h2>\n<p><strong>Q1: Kann das Skript zwischen verschiedenen Arten von Benutzerkonten unterscheiden? <\/strong><br \/>\nA1: Ja, es kann zwischen lokalen, Active Directory- und Azure AD-Konten unterscheiden.<\/p>\n<p><strong>Q2: Ist es m\u00f6glich, dieses Skript automatisch ablaufen zu lassen? <\/strong><br \/>\nA2: Absolut, dies kann mithilfe des Windows Taskplaners oder \u00e4hnlicher Automatisierungstools durchgef\u00fchrt werden.       <\/p>\n<p><strong>Q3: Kann dieses Skript Konten in einer Cloud-Umgebung verwalten? <\/strong><br \/>\nA3: Es ist in erster Linie f\u00fcr lokale und Active Directory-Konten konzipiert; f\u00fcr Azure AD-Konten sind zus\u00e4tzliche Module und Anmeldedaten erforderlich.<\/p>\n<h2>Auswirkungen<\/h2>\n<p>Die Auswirkungen der Verwendung dieses Skripts sind weitreichend. Durch die Identifizierung inaktiver Konten wird die Angriffsfl\u00e4che f\u00fcr potenzielle Sicherheitsverst\u00f6\u00dfe erheblich reduziert. IT-Fachleute m\u00fcssen jedoch verantwortungsvoll mit dem Output umgehen und sicherstellen, dass die Deaktivierung oder L\u00f6schung von Konten mit den Unternehmensrichtlinien und den Bed\u00fcrfnissen der Benutzer:innen \u00fcbereinstimmt.<\/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;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>Regelm\u00e4\u00dfige Audits<\/strong>: Planen Sie das Skript so, dass es in regelm\u00e4\u00dfigen Abst\u00e4nden ausgef\u00fchrt wird.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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\"><strong>Anpassungen<\/strong>: Passen Sie die Skriptparameter an die Unternehmensrichtlinien an.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&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\"><strong>Folgema\u00dfnahmen<\/strong>: Erstellung eines Protokolls f\u00fcr den Umgang mit inaktiven Konten.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Zusammenfassend l\u00e4sst sich sagen, dass Skripte wie diese, wenn sie effektiv eingesetzt werden, erheblich zur allgemeinen Sicherheit und <a href=\"https:\/\/www.ninjaone.com\/de\/effizienz\/\">Effizienz des IT-Betriebs<\/a>beitragen. Sie erg\u00e4nzen L\u00f6sungen wie NinjaOne, die <a href=\"https:\/\/www.ninjaone.com\/de\/effizienz\/\">umfassende IT-Management-Tools<\/a> bereitstellen und Administratoren helfen, die Kontrolle \u00fcber ihre IT-Umgebungen zu behalten. Die F\u00e4higkeit von NinjaOne, sich in PowerShell-Skripte zu integrieren, erh\u00f6ht seinen Nutzen und macht es zu einer idealen Wahl f\u00fcr proaktives IT-Management.<\/p>\n","protected":false},"author":35,"featured_media":0,"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-251461","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/251461","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=251461"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=251461"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=251461"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=251461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}