{"id":208392,"date":"2024-01-22T09:46:14","date_gmt":"2024-01-22T09:46:14","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/comment-detecter-le-temps-d-inactivite-avec-powershell\/"},"modified":"2024-03-04T19:24:28","modified_gmt":"2024-03-04T19:24:28","slug":"comment-detecter-le-temps-d-inactivite-avec-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/comment-detecter-le-temps-d-inactivite-avec-powershell\/","title":{"rendered":"Comment d\u00e9tecter le temps d&rsquo;inactivit\u00e9 d&rsquo;un utilisateur \u00e0 l&rsquo;aide de PowerShell"},"content":{"rendered":"<p>La d\u00e9tection des temps d&rsquo;inactivit\u00e9 sur les ordinateurs est un aspect crucial pour les professionnels de l&rsquo;informatique, en particulier face \u00e0 l&rsquo;augmentation des menaces de cybers\u00e9curit\u00e9 et aux probl\u00e8mes de gestion des ressources. Les entreprises sont de plus en plus num\u00e9ris\u00e9es et les utilisateurs restent souvent connect\u00e9s pendant de longues p\u00e9riodes. Il est donc primordial de <strong>d\u00e9tecter les temps d&rsquo;inactivit\u00e9 des utilisateurs<\/strong> pour des raisons de s\u00e9curit\u00e9 et de fonctionnement. Dans cet article, nous allons nous plonger dans un script PowerShell con\u00e7u pour d\u00e9tecter le temps d&rsquo;inactivit\u00e9 des utilisateurs le plus long, ce qui rend la t\u00e2che simple et efficace.<\/p>\n<h2>Contexte<\/h2>\n<p>La possibilit\u00e9 de d\u00e9terminer le temps d&rsquo;inactivit\u00e9 d&rsquo;un utilisateur peut fournir des informations pr\u00e9cieuses aux professionnels de l&rsquo;informatique et aux fournisseurs de services g\u00e9r\u00e9s (MSP). Qu&rsquo;il s&rsquo;agisse de lib\u00e9rer des ressources, de s&rsquo;assurer que les sessions ne restent pas expos\u00e9es \u00e0 des menaces de s\u00e9curit\u00e9 potentielles, ou m\u00eame de prendre en compte les aspects li\u00e9s \u00e0 la facturation pour les fournisseurs de services cloud, il est essentiel de disposer d&rsquo;une m\u00e9thode efficace et fiable pour d\u00e9terminer l&rsquo;inactivit\u00e9 de l&rsquo;utilisateur. Ce script particulier exploite les prouesses de PowerShell pour interagir directement avec le syst\u00e8me d&rsquo;exploitation Windows et extraire des donn\u00e9es pertinentes pour \u00e9valuer les temps d&rsquo;inactivit\u00e9.<\/p>\n<h2>Le script<\/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;\">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<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>CmdletBinding et param\u00e8tres :<\/strong> Le script commence par un CmdletBinding, ce qui permet de l&rsquo;utiliser comme cmdlet. Il contient un param\u00e8tre facultatif pour d\u00e9signer un nom d&rsquo;utilisateur sp\u00e9cifique.<\/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>Fonctions int\u00e9rieures :<\/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> v\u00e9rifie si le script s&rsquo;ex\u00e9cute avec des droits d&rsquo;administrateur.<\/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> s&rsquo;interface avec <strong>query.exe<\/strong> pour obtenir des informations sur les utilisateurs actuels.<\/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>Int\u00e9gration d&rsquo;une biblioth\u00e8que externe :<\/strong> Une biblioth\u00e8que externe (<strong>GetLastUserInput<\/strong>) est utilis\u00e9e pour obtenir le temps d&rsquo;inactivit\u00e9.<\/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>Bloc de processus :<\/strong> La logique de base est la suivante.<\/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\">Tout d&rsquo;abord, il v\u00e9rifie si le script s&rsquo;ex\u00e9cute avec des droits d&rsquo;administrateur.<\/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\">Si le RDS (Remote Desktop Services) est install\u00e9, il r\u00e9cup\u00e8re le temps d&rsquo;inactivit\u00e9 de chaque utilisateur connect\u00e9.<\/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\">Si le RDS n&rsquo;est pas pr\u00e9sent, il revient \u00e0 l&rsquo;approche <strong>d&rsquo;interrogation de l&rsquo;utilisateur<\/strong> et calcule le temps d&rsquo;inactivit\u00e9 sur la base de la derni\u00e8re entr\u00e9e de l&rsquo;utilisateur.<\/li>\n<\/ul>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez que vous \u00eates administrateur informatique dans une entreprise de taille moyenne. Vous avez remarqu\u00e9 que de nombreux utilisateurs laissent leur poste de travail allum\u00e9 et connect\u00e9, m\u00eame apr\u00e8s les heures de bureau. Il s&rsquo;agit non seulement d&rsquo;un risque pour la s\u00e9curit\u00e9, mais aussi d&rsquo;un co\u00fbt de ressources du r\u00e9seau et de l&rsquo;alimentation \u00e9lectrique. En d\u00e9ployant ce script \u00e0 l&rsquo;\u00e9chelle de l&rsquo;entreprise, vous pouvez rapidement d\u00e9terminer quels utilisateurs travaillent activement et quels postes de travail sont rest\u00e9s inactifs. Gr\u00e2ce \u00e0 ces informations, vous pouvez appliquer des politiques de d\u00e9connexion automatique ou envoyer des rappels aux utilisateurs pour qu&rsquo;ils \u00e9teignent leur machine.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Bien qu&rsquo;il existe des outils tiers qui d\u00e9tectent les temps d&rsquo;inactivit\u00e9, ils s&rsquo;accompagnent souvent d&rsquo;un surcro\u00eet de travail ou n&rsquo;offrent pas assez de pr\u00e9cision. Certains opteront pour l&rsquo;interrogation du journal des \u00e9v\u00e9nements de Windows \u00e0 la recherche d&rsquo;\u00e9v\u00e9nements sp\u00e9cifiques, mais cette approche risque de ne pas tenir compte d&rsquo;\u00e9l\u00e9ments tels qu&rsquo;une vid\u00e9o en cours d&rsquo;ex\u00e9cution qui maintient la session active. Ce script propose une m\u00e9thode directe et personnalisable, qui s&rsquo;appuie sur les outils et les commandes natives de Windows.<\/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 RDS est-il n\u00e9cessaire pour ce script ?<\/strong><br \/>\nNon, il est con\u00e7u pour d\u00e9tecter les temps d&rsquo;inactivit\u00e9 avec et sans RDS.<\/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>Quelle est la pr\u00e9cision du calcul des temps d&rsquo;inactivit\u00e9 ?<\/strong><br \/>\nSa pr\u00e9cision correspond au nombre de ticks du syst\u00e8me depuis la derni\u00e8re action de l&rsquo;utilisateur.<\/li>\n<\/ul>\n<h2>Implications<\/h2>\n<p>La d\u00e9tection des temps d&rsquo;inactivit\u00e9 n&rsquo;est pas seulement une question de gestion des ressources. Une session ouverte et inactive peut constituer une vuln\u00e9rabilit\u00e9. Les personnes malveillantes, une fois entr\u00e9es dans le r\u00e9seau, peuvent d\u00e9tourner ces sessions. La d\u00e9tection en temps utile et la gestion des sessions sont donc cruciales pour la s\u00e9curit\u00e9 informatique.<\/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\">Pour obtenir des r\u00e9sultats pr\u00e9cis, ex\u00e9cutez toujours le script avec des droits d&rsquo;administrateur.<\/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\">Mettez \u00e0 jour r\u00e9guli\u00e8rement le script pour tenir compte des changements dans votre environnement Windows.<\/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\">Int\u00e9grez des outils de surveillance pour obtenir des alertes en temps r\u00e9el sur les temps d&rsquo;inactivit\u00e9 de longue dur\u00e9e.<\/li>\n<\/ul>\n<h2>Conclusions<\/h2>\n<p>En ce qui concerne la gestion des sessions d&rsquo;utilisateurs inactifs, des outils comme NinjaOne peuvent encore amplifier l&rsquo;efficacit\u00e9 en fournissant <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/logiciel-a-guichet-unique-explications\/\">une plateforme unifi\u00e9e pour surveiller, alerter et g\u00e9rer<\/a>. Qu&rsquo;il s&rsquo;agisse d&rsquo;optimiser les ressources ou de renforcer le p\u00e9rim\u00e8tre de s\u00e9curit\u00e9, la compr\u00e9hension des comportements des utilisateurs pendant les temps d&rsquo;inactivit\u00e9 peut changer la donne. L&rsquo;utilisation de scripts tels que celui-ci peut constituer le pilier de cette initiative, en particulier lorsqu&rsquo;ils sont associ\u00e9s \u00e0 des <a href=\"https:\/\/www.ninjaone.com\/fr\/\">solutions de gestion informatique compl\u00e8tes<\/a>.<\/p>\n","protected":false},"author":35,"featured_media":143956,"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":[4289],"class_list":["post-208392","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/208392","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=208392"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/143956"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=208392"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=208392"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=208392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}