{"id":228913,"date":"2024-04-04T09:55:11","date_gmt":"2024-04-04T09:55:11","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=228913"},"modified":"2024-04-04T09:55:11","modified_gmt":"2024-04-04T09:55:11","slug":"comment-surveiller-les-connexions-des-utilisateurs-windows-avec-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaonesandbox.dev\/fr\/script-hub\/comment-surveiller-les-connexions-des-utilisateurs-windows-avec-powershell\/","title":{"rendered":"Comment surveiller les connexions des utilisateurs Windows avec PowerShell"},"content":{"rendered":"<h2>Points \u00e0 retenir<\/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>Surveillance automatis\u00e9e des utilisateurs<\/strong> : Ce script PowerShell automatise la surveillance des connexions d&rsquo;utilisateurs Windows.<\/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>V\u00e9rifications personnalisables<\/strong> : Adaptez le script pour qu&rsquo;il v\u00e9rifie la pr\u00e9sence d&rsquo;utilisateurs sp\u00e9cifiques ou de n&rsquo;importe quel utilisateur connect\u00e9.<\/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>Int\u00e9gration de NinjaOne RMM<\/strong> : Il s&rsquo;int\u00e8gre \u00e0 NinjaOne RMM pour une meilleure personnalisation et un meilleur approvisionnement en donn\u00e9es.<\/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>Efficacit\u00e9 op\u00e9rationnelle<\/strong> : Il s&rsquo;assure que les comptes d&rsquo;utilisateurs n\u00e9cessaires sont actifs pour la fonctionnalit\u00e9 de l&rsquo;application.<\/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>Renforcement de la s\u00e9curit\u00e9<\/strong> : Il contribue au maintien de la s\u00e9curit\u00e9 en contr\u00f4lant les connexions autoris\u00e9es et non autoris\u00e9es.<\/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>Flexibilit\u00e9<\/strong>\u00a0: Il s&rsquo;adapte aux diff\u00e9rents environnements d&rsquo;ex\u00e9cution gr\u00e2ce \u00e0 la gestion des variables d&rsquo;environnement.<\/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>Alertes en temps r\u00e9el<\/strong> : Il fournit des alertes imm\u00e9diates bas\u00e9es sur le statut de connexion de l&rsquo;utilisateur.<\/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>Compatibilit\u00e9<\/strong> : Il prend en charge Windows 10 et Windows Server 2012 R2.<\/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>Int\u00e9gration facile<\/strong> : Il peut \u00eatre int\u00e9gr\u00e9 dans les outils de gestion informatique existants pour une surveillance optimale du syst\u00e8me.<\/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=\"10\" data-aria-level=\"1\"><strong>Aide \u00e0 la conformit\u00e9<\/strong> : Il aide \u00e0 garantir le respect des protocoles de s\u00e9curit\u00e9 en suivant les activit\u00e9s des utilisateurs.<\/li>\n<\/ul>\n<h2>Contexte<\/h2>\n<p>Le script fourni est un outil PowerShell con\u00e7u pour les professionnels de l&rsquo;informatique et les <a href=\"https:\/\/www.ninjaonesandbox.dev\/fr\/quest-ce-quun-msp\/\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> afin de surveiller les connexions des utilisateurs Windows. Son importance d\u00e9coule de la n\u00e9cessit\u00e9 de s&rsquo;assurer que des comptes d&rsquo;utilisateurs sp\u00e9cifiques sont actifs ou de v\u00e9rifier si un utilisateur est connect\u00e9, en particulier pour les applications anciennes n\u00e9cessitant des sessions d&rsquo;utilisateurs authentifi\u00e9es. Le script se distingue par ses options de personnalisation et son int\u00e9gration avec NinjaOne RMM, notre <a href=\"https:\/\/www.ninjaonesandbox.dev\/fr\/rmm\/\">plateforme de surveillance et de gestion \u00e0 distance<\/a>.<\/p>\n<h2>Le script :<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">&lt;#\r\n.SYNOPSIS\r\n    Alert if no user is logged in, or if a specified user is not logged in. It can also accept a custom text field name to identify the user to check.\r\n.DESCRIPTION\r\n    Alert if no user is logged in, or if a specified user is not logged in. It can also accept a custom text field name to identify the user to check.\r\n    \r\n    Intended for legacy apps that are non-functional without an actual user account signed in.\r\n.EXAMPLE\r\n    (No Parameters)\r\n    itAdmin alternateAdmin tuser is currently signed in!\r\n\r\nPARAMETER: -CheckUser \"itAdmin\"\r\n    Enter in the user you'd like to alert on. ex. to alert on user itAdmin use -CheckUser \"itAdmin\"\r\n.EXAMPLE\r\n    -CheckUser \"itAdmin\"\r\n    itAdmin is currently signed in!\r\n\r\nPARAMETER: -CustomFieldName \"ReplaceMeWithAnyTextCustomField\"\r\n    The name of a text custom field to grab the CheckUser value from.\r\n.EXAMPLE\r\n    -CustomFieldName \"ReplaceMeWithAnyTextCustomField\"\r\n    itAdmin is currently signed in!\r\n\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2012 R2\r\n    Release Notes: Renamed script and added Script Variable support\r\nBy using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaonesandbox.dev\/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    [Switch]$ActiveOnly = [System.Convert]::ToBoolean($env:userMustBeActive),\r\n    [Parameter()]\r\n    [String]$CheckUser,\r\n    [Parameter()]\r\n    [String]$CustomFieldName\r\n)\r\n\r\nbegin {\r\n    # If script variables are used overwrite the existing variables.\r\n    if ($env:userToCheckFor -and $env:userToCheckFor -notlike \"null\") { $CheckUser = $env:userToCheckFor }\r\n    if ($env:retrieveUserFromCustomFieldName -and $env:retrieveUserFromCustomFieldName -notlike \"null\") { $CustomFieldName = $env:retrieveUserFromCustomFieldName }\r\n\r\n    # This function is to make it easier to parse Ninja Custom Fields.\r\n    function Get-NinjaProperty {\r\n        [CmdletBinding()]\r\n        Param(\r\n            [Parameter(Mandatory = $True, ValueFromPipeline = $True)]\r\n            [String]$Name,\r\n            [Parameter()]\r\n            [String]$Type,\r\n            [Parameter()]\r\n            [String]$DocumentName\r\n        )\r\n\r\n        if($PSVersionTable.PSVersion.Major -lt 3){\r\n            throw \"PowerShell 3.0 or higher is required to retrieve data from custom fields. https:\/\/ninjarmm.zendesk.com\/hc\/en-us\/articles\/4405408656013\"\r\n        }\r\n\r\n        # If we're requested to get the field value from a Ninja document we'll specify it here.\r\n        $DocumentationParams = @{}\r\n        if ($DocumentName) { $DocumentationParams[\"DocumentName\"] = $DocumentName }\r\n\r\n        # These two types require more information to parse.\r\n        $NeedsOptions = \"DropDown\",\"MultiSelect\"\r\n\r\n        # Grabbing document values requires a slightly different command.\r\n        if ($DocumentName) {\r\n            # Secure fields are only readable when they're a device custom field\r\n            if ($Type -Like \"Secure\") { throw \"$Type is an invalid type! Please check here for valid types. https:\/\/ninjarmm.zendesk.com\/hc\/en-us\/articles\/16973443979789-Command-Line-Interface-CLI-Supported-Fields-and-Functionality\" }\r\n\r\n            # We'll redirect the error output to the success stream to make it easier to error out if nothing was found or something else went wrong.\r\n            Write-Host \"Retrieving value from Ninja Document...\"\r\n            $NinjaPropertyValue = Ninja-Property-Docs-Get -AttributeName $Name @DocumentationParams 2&gt;&amp;1\r\n\r\n            # Certain fields require more information to parse.\r\n            if ($NeedsOptions -contains $Type) {\r\n                $NinjaPropertyOptions = Ninja-Property-Docs-Options -AttributeName $Name @DocumentationParams 2&gt;&amp;1\r\n            }\r\n        }\r\n        else {\r\n            # We'll redirect error output to the success stream to make it easier to error out if nothing was found or something else went wrong.\r\n            $NinjaPropertyValue = Ninja-Property-Get -Name $Name 2&gt;&amp;1\r\n\r\n            # Certain fields require more information to parse.\r\n            if ($NeedsOptions -contains $Type) {\r\n                $NinjaPropertyOptions = Ninja-Property-Options -Name $Name 2&gt;&amp;1\r\n            }\r\n        }\r\n\r\n        # If we received some sort of error it should have an exception property and we'll exit the function with that error information.\r\n        if ($NinjaPropertyValue.Exception) { throw $NinjaPropertyValue }\r\n        if ($NinjaPropertyOptions.Exception) { throw $NinjaPropertyOptions }\r\n\r\n        # This switch will compare the type given with the quoted string. If it matches, it'll parse it further; otherwise, the default option will be selected.\r\n        switch ($Type) {\r\n            \"Attachment\" {\r\n                # Attachments come in a JSON format this will convert it into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Checkbox\" {\r\n                # Checkbox's come in as a string representing an integer. We'll need to cast that string into an integer and then convert it to a more traditional boolean.\r\n                [System.Convert]::ToBoolean([int]$NinjaPropertyValue)\r\n            }\r\n            \"Date or Date Time\" {\r\n                # In Ninja Date and Date\/Time fields are in Unix Epoch time in the UTC timezone the below should convert it into local time as a datetime object.\r\n                $UnixTimeStamp = $NinjaPropertyValue\r\n                $UTC = (Get-Date \"1970-01-01 00:00:00\").AddSeconds($UnixTimeStamp)\r\n                $TimeZone = [TimeZoneInfo]::Local\r\n                [TimeZoneInfo]::ConvertTimeFromUtc($UTC, $TimeZone)\r\n            }\r\n            \"Decimal\" {\r\n                # In ninja decimals are strings that represent a decimal this will cast it into a double data type.\r\n                [double]$NinjaPropertyValue\r\n            }\r\n            \"Device Dropdown\" {\r\n                # Device Drop-Downs Fields come in a JSON format this will convert it into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Device MultiSelect\" {\r\n                # Device Multi-Select Fields come in a JSON format this will convert it into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Dropdown\" {\r\n                # Drop-Down custom fields come in as a comma-separated list of GUIDs; we'll compare these with all the options and return just the option values selected instead of a GUID.\r\n                $Options = $NinjaPropertyOptions -replace '=', ',' | ConvertFrom-Csv -Header \"GUID\", \"Name\"\r\n                $Options | Where-Object { $_.GUID -eq $NinjaPropertyValue } | Select-Object -ExpandProperty Name\r\n            }\r\n            \"Integer\" {\r\n                # Cast's the Ninja provided string into an integer.\r\n                [int]$NinjaPropertyValue\r\n            }\r\n            \"MultiSelect\" {\r\n                # Multi-Select custom fields come in as a comma-separated list of GUID's we'll compare these with all the options and return just the option values selected instead of a guid.\r\n                $Options = $NinjaPropertyOptions -replace '=', ',' | ConvertFrom-Csv -Header \"GUID\", \"Name\"\r\n                $Selection = ($NinjaPropertyValue -split ',').trim()\r\n\r\n                foreach ($Item in $Selection) {\r\n                    $Options | Where-Object { $_.GUID -eq $Item } | Select-Object -ExpandProperty Name\r\n                }\r\n            }\r\n            \"Organization Dropdown\" {\r\n                # Turns the Ninja provided JSON into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Organization Location Dropdown\" {\r\n                # Turns the Ninja provided JSON into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Organization Location MultiSelect\" {\r\n                # Turns the Ninja provided JSON into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Organization MultiSelect\" {\r\n                # Turns the Ninja provided JSON into a PowerShell Object.\r\n                $NinjaPropertyValue | ConvertFrom-Json\r\n            }\r\n            \"Time\" {\r\n                # Time fields are given as a number of seconds starting from midnight. This will convert it into a datetime object.\r\n                $Seconds = $NinjaPropertyValue\r\n                $UTC = ([timespan]::fromseconds($Seconds)).ToString(\"hh\\:mm\\:ss\")\r\n                $TimeZone = [TimeZoneInfo]::Local\r\n                $ConvertedTime = [TimeZoneInfo]::ConvertTimeFromUtc($UTC, $TimeZone)\r\n\r\n                Get-Date $ConvertedTime -DisplayHint Time\r\n            }\r\n            default {\r\n                # If no type was given or not one that matches the above types just output what we retrieved.\r\n                $NinjaPropertyValue\r\n            }\r\n        }\r\n    }\r\n\r\n    function Get-User {\r\n        $quser = quser.exe\r\n        $quser -replace '\\s{2,}', ',' -replace '&gt;' | ConvertFrom-Csv\r\n    }\r\n\r\n}process {\r\n\r\n    # If a custom field name is provided grab the text and overwrite the $CheckUser variable with it.\r\n    if ($CustomFieldName) { \r\n        if (-not ($CheckUser)) {\r\n            try{\r\n                $CheckUser = Get-NinjaProperty -Name $CustomFieldName\r\n            }catch{\r\n                Write-Warning \"$($_.ToString())\"\r\n            }\r\n\r\n            if(-not $CheckUser){\r\n                Write-Warning \"The custom field $CustomFieldName was empty!\" \r\n            }\r\n        }\r\n    }\r\n\r\n    if($CheckUser){\r\n        Write-Host \"Checking for $CheckUser.\"\r\n    }else{\r\n        Write-Host \"Checking if any user is logged in.\"\r\n    }\r\n\r\n    # This will work whether or not your looking for any user to be logged in ($CheckUser = $null) or a specific one.\r\n    $LoggedInUsers = Get-User\r\n    if ($ActiveOnly) {\r\n        $Test = $LoggedInUsers | Where-Object { $_.USERNAME -match $CheckUser } | Where-Object { $_.STATE -like \"Active\" }\r\n    }\r\n    else {\r\n        $Test = $LoggedInUsers | Where-Object { $_.USERNAME -match $CheckUser } \r\n    }\r\n\r\n    # If we didn't find the user or users we were looking for error out and exit 1\r\n    if (!$Test) {\r\n        Write-Error \"The user(s) you are checking for is not currently logged in!\"\r\n        $LoggedInUsers | Format-Table USERNAME, STATE, \"LOGON TIME\", SESSIONNAME | Out-String | Write-Host\r\n        exit 1\r\n    }\r\n    else {\r\n        # Otherwise exit 0\r\n        Write-Host \"$($LoggedInUsers.USERNAME) is currently signed in!\"\r\n        $LoggedInUsers | Format-Table USERNAME, STATE, \"LOGON TIME\", SESSIONNAME | Out-String | Write-Host\r\n        exit 0\r\n    }\r\n    \r\n}end {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Acc\u00e9dez \u00e0 plus de 700 scripts dans le Dojo NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaonesandbox.dev\/fr\/phase-de-test-gratuit\/\">Obtenir l&rsquo;acc\u00e8s<\/a><\/p>\n<\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Le script op\u00e8re en plusieurs \u00e9tapes\u00a0:<\/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>Initialisation<\/strong>\u00a0: Il commence par d\u00e9finir des param\u00e8tres qui contr\u00f4lent son comportement, par exemple en v\u00e9rifiant uniquement les utilisateurs actifs ou en se concentrant sur un utilisateur sp\u00e9cifique.<\/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>Gestion des variables d&rsquo;environnement<\/strong> : Il v\u00e9rifie l&rsquo;existence de variables d&rsquo;environnement susceptibles de remplacer ses param\u00e8tres, ce qui garantit son adaptabilit\u00e9 \u00e0 diff\u00e9rents environnements d&rsquo;ex\u00e9cution.<\/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>R\u00e9cup\u00e9ration de champs personnalis\u00e9s<\/strong> : Le script peut r\u00e9cup\u00e9rer des informations sur l&rsquo;utilisateur \u00e0 partir de champs personnalis\u00e9s d\u00e9finis, ce qui offre une certaine souplesse dans l&rsquo;obtention des donn\u00e9es de connexion.<\/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>R\u00e9cup\u00e9ration de l&rsquo;identifiant de l&rsquo;utilisateur<\/strong> : En utilisant la commande <strong>quser<\/strong>, il r\u00e9cup\u00e8re la liste des utilisateurs connect\u00e9s, une fonctionnalit\u00e9 essentielle du script.<\/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>Contr\u00f4le des utilisateurs et alertes<\/strong> : En fonction des param\u00e8tres d\u00e9finis, le script v\u00e9rifie si des utilisateurs ou un utilisateur sp\u00e9cifique est connect\u00e9 et \u00e9met des alertes en cons\u00e9quence.<\/li>\n<\/ul>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez un administrateur informatique responsable d&rsquo;un r\u00e9seau avec des applications sp\u00e9cifiques qui exigent qu&rsquo;un utilisateur administrateur soit constamment connect\u00e9. Gr\u00e2ce \u00e0 ce script, ils peuvent mettre en place des contr\u00f4les automatis\u00e9s pour s&rsquo;assurer que les comptes utilisateurs n\u00e9cessaires sont actifs, ce qui permet de maintenir la fonctionnalit\u00e9 de l&rsquo;application et la s\u00e9curit\u00e9 du syst\u00e8me.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Les m\u00e9thodes traditionnelles de surveillance des connexions d&rsquo;utilisateurs peuvent impliquer des contr\u00f4les manuels ou des scripts de base sans options de personnalisation. Ce script PowerShell surpasse ces m\u00e9thodes gr\u00e2ce \u00e0 son <a href=\"https:\/\/www.ninjaonesandbox.dev\/fr\/integration\/\">int\u00e9gration avec NinjaOne RMM<\/a>, sa personnalisation et ses capacit\u00e9s d&rsquo;alerte automatique.<\/p>\n<h2>FAQ<\/h2>\n<p><strong>Q\u00a0: Comment ce script am\u00e9liore-t-il la s\u00e9curit\u00e9 ?<\/strong><br \/>\nR\u00a0: En s&rsquo;assurant que les comptes utilisateurs n\u00e9cessaires sont actifs et en contr\u00f4lant les connexions non autoris\u00e9es.<\/p>\n<p><strong>Q\u00a0: Peut-il \u00eatre personnalis\u00e9 pour les utilisateurs qui ne sont pas administrateurs ?<\/strong><br \/>\nR\u00a0: Absolument, le script peut \u00eatre adapt\u00e9 pour surveiller n&rsquo;importe quel compte d&rsquo;utilisateur.<\/p>\n<p><strong>Q\u00a0: Est-il compatible avec toutes les versions de Windows ?<\/strong><br \/>\nR\u00a0: Il prend en charge Windows 10 et Windows Server 2012 R2 et les versions plus r\u00e9centes.<\/p>\n<h2>Implications<\/h2>\n<p>La capacit\u00e9 du script \u00e0 surveiller les connexions des utilisateurs est essentielle pour maintenir les protocoles de s\u00e9curit\u00e9, garantir la conformit\u00e9 et emp\u00eacher les acc\u00e8s non autoris\u00e9s. Il facilite \u00e9galement le d\u00e9pannage et la maintenance op\u00e9rationnelle en fournissant des donn\u00e9es de connexion des utilisateurs en temps r\u00e9el.<\/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;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 le script \u00e0 jour pour qu&rsquo;il soit adapt\u00e9 aux mises \u00e0 jour du syst\u00e8me.<\/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\">Personnalisez les param\u00e8tres du script en fonction des besoins sp\u00e9cifiques de l&rsquo;environnement informatique.<\/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\">Int\u00e9grez le script aux outils de gestion informatique existants pour permettre une supervision optimale.<\/li>\n<\/ul>\n<h2>Conclusion :<\/h2>\n<p>L&rsquo;int\u00e9gration de ce script PowerShell dans votre infrastructure informatique, en particulier lorsqu&rsquo;il est associ\u00e9 \u00e0 NinjaOne, am\u00e9liore votre capacit\u00e9 \u00e0 surveiller efficacement les connexions des utilisateurs. La plateforme de NinjaOne fournit une couche suppl\u00e9mentaire de gestion et de s\u00e9curit\u00e9, ce qui fait du script un \u00e9l\u00e9ment inestimable d&rsquo;une strat\u00e9gie globale de gestion informatique.<\/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":[4289],"class_list":["post-228913","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/script_hub\/228913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/comments?post=228913"}],"wp:attachment":[{"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/media?parent=228913"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/operating_system?post=228913"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/fr\/wp-json\/wp\/v2\/use_cases?post=228913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}