{"id":208587,"date":"1970-01-01T00:00:00","date_gmt":"1970-01-01T00:00:00","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=208587"},"modified":"2024-03-13T19:34:46","modified_gmt":"2024-03-13T19:34:46","slug":"benutzer-leerlaufzeit-erkennen-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/benutzer-leerlaufzeit-erkennen-powershell\/","title":{"rendered":"Erkennen der Leerlaufzeit von Benutzern mit PowerShell"},"content":{"rendered":"<p>Die Erkennung von Leerlaufzeiten auf Computern ist ein wichtiger Aspekt f\u00fcr IT-Fachleute, insbesondere in Zeiten erh\u00f6hter Bedrohungen der Cyber-Sicherheit und der Ressourcenverwaltung. Angesichts der rasanten Digitalisierung von Unternehmen und der Tatsache, dass Benutzer oft \u00fcber l\u00e4ngere Zeitr\u00e4ume angemeldet bleiben, ist die <strong>Erkennung von Leerlaufzeiten<\/strong> aus Sicherheits- und Betriebsgr\u00fcnden von gr\u00f6\u00dfter Bedeutung. In diesem Beitrag tauchen wir tief in ein PowerShell-Skript ein, das die l\u00e4ngste Leerlaufzeit von Benutzern erkennt und diese Aufgabe nahtlos und effizient gestaltet.<\/p>\n<h2>Hintergrund<\/h2>\n<p>Die M\u00f6glichkeit, festzustellen, wie lange ein Benutzer inaktiv war, kann IT-Fachleuten und Managed Service Providern (MSPs) wertvolle Erkenntnisse liefern. Ob es nun darum geht, Ressourcen freizugeben, sicherzustellen, dass Sitzungen nicht f\u00fcr potenzielle Sicherheitsbedrohungen offen bleiben, oder sogar um Abrechnungserw\u00e4gungen f\u00fcr Cloud-Service-Anbieter, eine effektive und zuverl\u00e4ssige Methode zur Bestimmung der Inaktivit\u00e4t von Benutzern ist unerl\u00e4sslich. Dieses spezielle Skript nutzt die F\u00e4higkeiten von PowerShell, um direkt mit dem Windows-Betriebssystem zu interagieren und relevante Daten zur Messung der Leerlaufzeiten abzurufen.<\/p>\n<h2>Das Skript<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Returns the longest idle time of any user logged in or for a specific user.\r\n.DESCRIPTION\r\n    Returns the longest idle time of any user logged in or for a specific user.\r\n    If RDS(Remote Desktop Services) is installed and the RSAT tools for it as well,\r\n     then this will get the idle time of each logged in user.\r\n    For workstations and servers(with out RDS installed),\r\n     this will get the current idle of the currently logged in user.\r\n    If a user is logged in via the console and another is via the admin RDP session,\r\n     then both will be considered as one user for calculating idle time.\r\n.EXAMPLE\r\n    No parameters needed.\r\n    Returns the longest idle time of all users logged in.\r\n.EXAMPLE\r\n     -UserName \"Fred\"\r\n    Returns the longest idle time of the user Fred.\r\n.EXAMPLE\r\n    PS C:&gt; Get-User-Idle-Time.ps1 -UserName \"Fred\"\r\n    Returns the longest idle time of the user Fred.\r\n.OUTPUTS\r\n    PSCustomObject[]\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    Adds functions to get idle time from RDS and non-RDS computers.\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.COMPONENT\r\n    ManageUsers\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    # Specify one user on a Terminal Services Server, else leave blank for normal servers and workstations\r\n    [Parameter(Mandatory = $false)]\r\n    $UserName\r\n)\r\n\r\nbegin {\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))\r\n        { Write-Output $true }\r\n        else\r\n        { Write-Output $false }\r\n    }\r\n    Function Get-QueryUser() {\r\n        Param()\r\n        $Result = @()\r\n        # Replaces all occurrences of 2 or more spaces in a row with a single comma\r\n        $Lines = @(query.exe user).foreach({ $(($_) -replace ('s{2,}', ',')) })\r\n        if ($Lines.Count -gt 1) {\r\n            $Header = $($Lines[0].split(',').trim())\r\n            for ($i = 1; $i -lt $($Lines.Count); $i++) {\r\n                $Res = \"\" | Select-Object $Header\r\n                $Line = $($Lines[$i].split(',')).foreach({ $_.trim().trim('&gt;') })\r\n                # Accounts for disconnected users\r\n                if ($Line.count -eq 5) {\r\n                    $Line = @($Line[0], \"$($null)\", $Line[1], $Line[2], $Line[3], $Line[4] )\r\n                }\r\n                for ($j = 0; $j -lt $($Line.count); $j++) {\r\n                    $Res.$($Header[$j]) = $Line[$j]\r\n                }\r\n                $Result += $Res\r\n                Remove-Variable Res\r\n            }\r\n            return $Result\r\n        }\r\n        else {\r\n            return $null\r\n        }\r\n    }\r\n\r\n    Add-Type @\"\r\nusing System;\r\nusing System.Runtime.InteropServices;\r\nusing System.ComponentModel;\r\n\r\nnamespace GetLastUserInput\r\n{\r\n    public class GetLastUserInput\r\n    {\r\n        private struct LASTINPUTINFO\r\n        {\r\n            public uint cbSize;\r\n            public uint dwTime;\r\n        }\r\n        private static LASTINPUTINFO lastInPutNfo;\r\n        static GetLastUserInput()\r\n        {\r\n            lastInPutNfo = new LASTINPUTINFO();\r\n            lastInPutNfo.cbSize = (uint)Marshal.SizeOf(lastInPutNfo);\r\n        }\r\n        [DllImport(\"User32.dll\")]\r\n        private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ Idle time in ticks\r\n        \/\/\/ &lt;\/summary&gt;\r\n        \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n        public static uint GetIdleTickCount()\r\n        {\r\n            return ((uint)Environment.TickCount - GetLastInputTime());\r\n        }\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ Last input time in ticks\r\n        \/\/\/ &lt;\/summary&gt;\r\n        \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n        public static uint GetLastInputTime()\r\n        {\r\n            if (!GetLastInputInfo(ref lastInPutNfo))\r\n            {\r\n                throw new Win32Exception(Marshal.GetLastWin32Error());\r\n            }\r\n            return lastInPutNfo.dwTime;\r\n        }\r\n    }\r\n}\r\n\"@\r\n}\r\n\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    if ($(Get-Module -Name \"RemoteDesktop\") -and $(Get-RDServer -ErrorAction SilentlyContinue)) {\r\n        try {\r\n            $Sessions = Get-RDUserSession\r\n            $Sessions | Select-Object UserName, IdleTime\r\n        }\r\n        catch {\r\n            Write-Warning -Message \"A Remote Desktop Services deployment does not exist on $env:COMPUTERNAME.\"\r\n        }\r\n    }\r\n    else {\r\n        Write-Warning -Message \"Remote Desktop Services is not installed on this computer, Falling back to query user.\"\r\n        $Results = Get-QueryUser\r\n        if ($null -eq $Results) {\r\n            Write-Host \"No user(s) logged in.\"\r\n            exit 0\r\n        }\r\n        # Parse query results and loop through each user\r\n        $Results | ForEach-Object {\r\n            $CurrentUser = $_.USERNAME\r\n            # If UserName param is used, only filter that user; If UserName param isn't used, return all users\r\n            if ($CurrentUser -like $UserName -or ([string]::IsNullOrEmpty($UserName) -or [string]::IsNullOrWhiteSpace($UserName))) {\r\n                # Output a PowerShell Custom Object array\r\n                [PSCustomObject]@{\r\n                    UserName    = $CurrentUser\r\n                    SessionName = $_.SESSIONNAME\r\n                    Id          = $_.ID\r\n                    State       = $_.STATE\r\n                    LogonTime   = $_.'LOGON TIME'\r\n                    IdleTime    = if ($_.'IDLE TIME' -like 'none') { 0 }else { $_.'IDLE TIME' }\r\n                }\r\n            }\r\n        } | Sort-Object -Property IdleTime | Select-Object -Property UserName, @{\r\n            # Modify IdleTime when it shows none\r\n            Label      = \"IdleTime\"\r\n            Expression = {\r\n                New-TimeSpan -Start $(Get-Date) -End $(Get-Date).AddMilliseconds([GetLastUserInput.GetLastUserInput]::GetIdleTickCount())\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nend {}<\/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\/freetrialform\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detailansicht<\/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>Cmdlet-Bindung &amp; Parameter:<\/strong> Das Skript beginnt mit einem CmdletBinding, so dass es als Cmdlet verwendet werden kann. Er enth\u00e4lt einen optionalen Parameter f\u00fcr einen bestimmten Benutzernamen.<\/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\"><strong>Innere Funktionen:<\/strong><\/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\"><strong>Test-IsElevated<\/strong> pr\u00fcft, ob das Skript mit administrativen Rechten l\u00e4uft.<\/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=\"4\" data-aria-level=\"1\"><strong>Get-QueryUser<\/strong> arbeitet mit <strong>query.exe<\/strong> zusammen, um Details \u00fcber die aktuellen Benutzer abzurufen.<\/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=\"5\" data-aria-level=\"1\"><strong>Integration externer Bibliotheken:<\/strong> Eine externe Bibliothek (<strong>GetLastUserInput<\/strong>) wird verwendet, um die genaue Anzahl der Leerlaufticks abzurufen.<\/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=\"5\" data-aria-level=\"1\"><strong>Prozess-Block:<\/strong> Hier liegt der Kern der Logik.<\/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=\"5\" data-aria-level=\"1\">Zun\u00e4chst wird gepr\u00fcft, ob das Skript mit Administratorrechten ausgef\u00fchrt wird.<\/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=\"5\" data-aria-level=\"1\">Wenn die Remote-Desktop-Dienste (RDS) installiert sind, wird die Leerlaufzeit f\u00fcr jeden angemeldeten Benutzer abgefragt.<\/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=\"5\" data-aria-level=\"1\">Wenn kein RDS vorhanden ist, wird auf <strong>query user<\/strong> zur\u00fcckgegriffen und die Leerlaufzeit auf der Grundlage der letzten Benutzereingabe berechnet.<\/li>\n<\/ul>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Stellen Sie sich vor, Sie sind IT-Administrator in einer mittelgro\u00dfen Organisation. Ihnen ist aufgefallen, dass viele Benutzer ihre Arbeitspl\u00e4tze eingeschaltet und angemeldet lassen, auch nach den B\u00fcrozeiten. Dies stellt nicht nur ein Sicherheitsrisiko dar, sondern belastet auch die Netz- und Energieressourcen. Wenn Sie dieses Skript unternehmensweit einsetzen, k\u00f6nnen Sie schnell feststellen, welche Benutzer aktiv arbeiten und welche Arbeitsstationen im Leerlauf waren. Mit diesen Informationen k\u00f6nnen Sie Richtlinien f\u00fcr die automatische Abmeldung durchsetzen oder Erinnerungen an die Benutzer senden, damit diese ihre Rechner herunterfahren.<\/p>\n<h2>Vergleiche<\/h2>\n<p>Es gibt zwar Tools von Drittanbietern, die Leerlaufzeiten erkennen, aber sie sind oft \u00fcberladen oder haben nicht die erforderliche Detailgenauigkeit. Manche entscheiden sich f\u00fcr die Abfrage des Windows-Ereignisprotokolls nach bestimmten Ereignissen, aber bei diesem Ansatz k\u00f6nnten Nuancen wie ein laufendes Video, das die Sitzung aktiv h\u00e4lt, \u00fcbersehen werden. Dieses Skript bietet eine direkte und anpassbare Methode, die die nativen Windows-Tools und -Befehle nutzt.<\/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>Ist RDS f\u00fcr dieses Skript erforderlich?<\/strong><br \/>\nNein, es ist so konzipiert, dass es Leerlaufzeiten sowohl mit als auch ohne RDS erkennt.<\/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\"><strong>Wie genau ist die Berechnung der Leerlaufzeit?<\/strong><br \/>\nSie ist pr\u00e4zise auf die Anzahl der Systemticks seit der letzten Benutzereingabe.<\/li>\n<\/ul>\n<h2>Auswirkungen<\/h2>\n<p>Bei der Erkennung von Leerlaufzeiten geht es nicht nur um Ressourcenmanagement. Eine offene und inaktive Sitzung k\u00f6nnte eine potenzielle Schwachstelle darstellen. B\u00f6swillige Akteure k\u00f6nnen, sobald sie in das Netz eingedrungen sind, diese Sitzungen kapern. Daher sind die rechtzeitige Erkennung und das Session-Management f\u00fcr die IT-Sicherheit von entscheidender Bedeutung.<\/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\">F\u00fchren Sie das Skript immer mit administrativen Rechten aus, um genaue Ergebnisse zu erzielen.<\/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\">Aktualisieren und pflegen Sie das Skript regelm\u00e4\u00dfig, um es an \u00c4nderungen in der Windows-Umgebung anzupassen.<\/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\">Integrieren Sie es mit \u00dcberwachungstools, um Echtzeitwarnungen bei l\u00e4ngeren Leerlaufsitzungen zu erhalten.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Im Zusammenhang mit der Verwaltung ungenutzter Benutzersitzungen k\u00f6nnen Tools wie NinjaOne die Effektivit\u00e4t weiter steigern, indem sie <a href=\"https:\/\/www.ninjaone.com\/blog\/single-pane-of-glass-software-explained\/\">eine einheitliche Plattform zur \u00dcberwachung, Warnung und Verwaltung<\/a>bereitstellen. Ganz gleich, ob es um die Optimierung von Ressourcen oder die Versch\u00e4rfung der Sicherheitsvorkehrungen geht, das Verst\u00e4ndnis des Benutzerverhaltens w\u00e4hrend der Leerlaufzeiten kann eine entscheidende Rolle spielen. Der Einsatz von Skripten wie dem hier vorgestellten kann das R\u00fcckgrat dieses Unterfangens bilden, insbesondere in Kombination mit <a href=\"https:\/\/www.ninjaone.com\">umfassenden IT-Management-L\u00f6sungen<\/a>.<\/p>\n","protected":false},"author":35,"featured_media":143957,"parent":0,"menu_order":0,"comment_status":"open","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-208587","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\/208587","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=208587"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media\/143957"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=208587"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=208587"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=208587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}