{"id":269477,"date":"2024-06-06T14:41:17","date_gmt":"2024-06-06T14:41:17","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=269477"},"modified":"2024-06-06T14:41:17","modified_gmt":"2024-06-06T14:41:17","slug":"comment-creer-un-nouveau-compte-utilisateur-local-avec-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/comment-creer-un-nouveau-compte-utilisateur-local-avec-powershell\/","title":{"rendered":"Comment cr\u00e9er un nouveau compte utilisateur local avec PowerShell"},"content":{"rendered":"<h2>Principaux 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;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>Efficacit\u00e9 de PowerShell<\/strong>: Il utilise PowerShell pour cr\u00e9er et g\u00e9rer efficacement les comptes d&rsquo;utilisateurs locaux.<\/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>Fonctionnalit\u00e9s avanc\u00e9es<\/strong>: Inclut la planification de l&rsquo;activation\/d\u00e9sactivation des comptes et l&rsquo;ajout d&rsquo;utilisateurs \u00e0 des groupes d&rsquo;administrateurs.<\/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>S\u00e9curit\u00e9 automatis\u00e9e<\/strong>: G\u00e9n\u00e8re automatiquement des mots de passe s\u00e9curis\u00e9s, am\u00e9liorant ainsi la s\u00e9curit\u00e9 des comptes.<\/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>Gestion du temps<\/strong>: Gain de temps dans la gestion des comptes utilisateurs, particuli\u00e8rement utile pour les entreprises MSP.<\/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>Script personnalisable<\/strong>: Permet la personnalisation gr\u00e2ce \u00e0 des param\u00e8tres d\u00e9finis par l&rsquo;utilisateur.<\/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=\"6\" data-aria-level=\"1\"><strong>Planifier les t\u00e2ches<\/strong>: Possibilit\u00e9 de programmer des t\u00e2ches pour activer ou d\u00e9sactiver des comptes \u00e0 des moments pr\u00e9cis.<\/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=\"7\" data-aria-level=\"1\"><strong>Gestion de groupe<\/strong>: Facilite l&rsquo;ajout d&rsquo;utilisateurs \u00e0 des groupes sp\u00e9cifiques, y compris les administrateurs.<\/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=\"8\" data-aria-level=\"1\"><strong>Adaptable pour la cr\u00e9ation en masse<\/strong>: Bien que con\u00e7u pour les comptes individuels, il peut \u00eatre adapt\u00e9 \u00e0 la cr\u00e9ation d&rsquo;un grand nombre d&rsquo;utilisateurs.<\/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=\"9\" data-aria-level=\"1\"><strong>Implications en mati\u00e8re de s\u00e9curit\u00e9<\/strong>: Souligne la n\u00e9cessit\u00e9 de contr\u00f4les d&rsquo;acc\u00e8s stricts et d&rsquo;audits r\u00e9guliers.<\/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=\"10\" data-aria-level=\"1\"><strong>Compatibilit\u00e9 avec NinjaOne<\/strong>: Peut \u00eatre int\u00e9gr\u00e9 \u00e0 NinjaOne pour une gestion informatique centralis\u00e9e.<\/li>\n<\/ul>\n<p>Dans le monde num\u00e9rique actuel, la gestion efficace des comptes d&rsquo;utilisateurs est cruciale pour les professionnels de l&rsquo;informatique. PowerShell, un puissant langage de script et shell de ligne de commande, offre un moyen dynamique de g\u00e9rer ces t\u00e2ches. Cet article explore un script PowerShell qui non seulement cr\u00e9e des comptes d&rsquo;utilisateurs locaux mais fournit \u00e9galement des options de planification et de gestion de groupe, d\u00e9montrant ainsi son utilit\u00e9 dans divers environnements informatiques.<\/p>\n<h2>Contexte<\/h2>\n<p>Ce script PowerShell se distingue par sa capacit\u00e9 \u00e0 cr\u00e9er des comptes d&rsquo;utilisateurs locaux avec des fonctionnalit\u00e9s avanc\u00e9es telles que la programmation de dates d&rsquo;activation\/d\u00e9sactivation et l&rsquo;ajout d&rsquo;utilisateurs au groupe d&rsquo;administrateurs locaux. Ces fonctionnalit\u00e9s sont particuli\u00e8rement utiles pour les professionnels de l&rsquo;informatique et les <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> qui g\u00e8rent un grand nombre de comptes d&rsquo;utilisateurs et doivent garantir un acc\u00e8s rapide et s\u00e9curis\u00e9 aux syst\u00e8mes.<\/p>\n<h2>Le script PowerShell\u00a0:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Create a local user account with options to enable and disable at specific dates, and add to local admin group. Saves randomly generated password to a custom field.\r\n.DESCRIPTION\r\n    You can specify when the account will be enabled and\/or disabled.\r\n    You can have the account be added as a member of the local Administrators group.\r\n\r\nPARAMETER: -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\"\r\n    Create use with the name JohnTSmith and display name of John T Smith.\r\n.EXAMPLE\r\n    -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\"\r\n    ## EXAMPLE OUTPUT ##\r\n    User JohnTSmith has been created successfully.\r\n    User JohnTSmith was added to the local Users group.\r\n\r\nPARAMETER: -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\" -DateAndTimeToEnable \"Monday, January 1, 2020 1:00:00 PM\"\r\n    Create use with the name JohnTSmith and display name of John T Smith.\r\n    The user will start out disabled.\r\n    A scheduled task will be create to enable the user after \"Monday, January 1, 2020 1:00:00 PM\"\r\n.EXAMPLE\r\n    -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\" -DateAndTimeToEnable \"Monday, January 1, 2020 1:00:00 PM\"\r\n    ## EXAMPLE OUTPUT ##\r\n    User JohnTSmith has been created successfully.\r\n    User JohnTSmith was added to the local Users group.\r\n    Created Scheduled Task: Enable User JohnTSmith\r\n    User JohnTSmith will be able to login after Monday, January 1, 2020 1:00:00 PM.\r\n\r\nPARAMETER: -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\" -DisableAfterDays 10\r\n    Create use with the name JohnTSmith and display name of John T Smith.\r\n    The user will be disabled after 10 days after the user's creation.\r\n.EXAMPLE\r\n    -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\" -DisableAfterDays 10\r\n    ## EXAMPLE OUTPUT ##\r\n    User JohnTSmith has been created successfully.\r\n    User JohnTSmith was added to the local Users group.\r\n\r\nPARAMETER: -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\" -AddToLocalAdminGroup\r\n    Create use with the name JohnTSmith and display name of John T Smith.\r\n    User will be added as a member of the local Administrators group.\r\n.EXAMPLE\r\n    -UserNameToAdd \"JohnTSmith\" -Name \"John T Smith\" -AddToLocalAdminGroup\r\n    ## EXAMPLE OUTPUT ##\r\n    User JohnTSmith has been created successfully.\r\n    User JohnTSmith was added to the local Users group.\r\n    User JohnTSmith was added to the local Administrators group.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes: Initial Release\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    [String]$UserNameToAdd,\r\n    [Parameter()]\r\n    [String]$Name,\r\n    [Parameter()]\r\n    [String]$PasswordCustomField,\r\n    [Parameter()]\r\n    [int]$PasswordLength,\r\n    [Parameter()]\r\n    [DateTime]$DateAndTimeToEnable,\r\n    [Parameter()]\r\n    [int]$DisableAfterDays,\r\n    [Parameter()]\r\n    [Switch]$AddToLocalAdminGroup,\r\n    [Parameter()]\r\n    $PasswordOptions\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        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)\r\n    }\r\n    function New-SecurePassword {\r\n        [CmdletBinding()]\r\n        param (\r\n            [Parameter(Mandatory = $false)]\r\n            [int]$Length = 16,\r\n            [Parameter(Mandatory = $false)]\r\n            [bool]$IncludeSpecialCharacters = $true\r\n        )\r\n        # .NET class for generating cryptographically secure random numbers\r\n        $cryptoProvider = New-Object System.Security.Cryptography.RNGCryptoServiceProvider\r\n        $SpecialCharacters = if ($IncludeSpecialCharacters) { '!@#$%&amp;-' }\r\n        $passwordChars = \"abcdefghjknpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ0123456789$SpecialCharacters\"\r\n        $password = for ($i = 0; $i -lt $Length; $i++) {\r\n            $byte = [byte[]]::new(1)\r\n            $cryptoProvider.GetBytes($byte)\r\n            $charIndex = $byte[0] % $passwordChars.Length\r\n            $passwordChars[$charIndex]\r\n        }\r\n        return $password -join ''\r\n    }\r\n    function New-LocalUserFromNinja {\r\n        param(\r\n            [string]$Username,\r\n            [string]$Name,\r\n            [string]$PasswordCustomField,\r\n            [DateTime]$EnableDate,\r\n            [int]$DisableAfterDays,\r\n            [switch]$AddToLocalAdminGroup\r\n        )\r\n        # Generate a secure localUserPassword\r\n        $Password = New-SecurePassword -Length $PasswordLength -IncludeSpecialCharacters $true\r\n        if ($Username -and $Name) {\r\n            # Check if the user already exists\r\n            if (-not (Get-LocalUser -Name $Username -ErrorAction SilentlyContinue)) {\r\n                # Create new local user\r\n                $UserSplat = @{\r\n                    Name                 = \"$Username\"\r\n                    FullName             = \"$Name\"\r\n                    Password             = ConvertTo-SecureString -String $($Password -join '') -AsPlainText -Force\r\n                    Description          = \"User account created on $(Get-Date)\"\r\n                    PasswordNeverExpires = $false\r\n                }\r\n\r\n                if ($EnableDate -and $EnableDate -gt (Get-Date)) {\r\n                    $UserSplat['Disabled'] = $true\r\n                }\r\n\r\n                if (-not $EnableDate -and $DisableAfterDays) {\r\n                    $UserSplat['AccountExpires'] = $(Get-Date).AddDays($DisableAfterDays)\r\n                }\r\n                elseif ($DisableAfterDays) {\r\n                    $UserSplat['AccountExpires'] = $(Get-Date $EnableDate).AddDays($DisableAfterDays)\r\n                }\r\n\r\n                if ($env:passwordOptions -like 'Password Never Expires' -or $PasswordOptions -like 'Password Never Expires') {\r\n                    $UserSplat['PasswordNeverExpires'] = $true\r\n                }\r\n\r\n                New-LocalUser @UserSplat\r\n                if ($env:passwordOptions -like 'User Must Change Password' -or $PasswordOptions -like 'User Must Change Password') {\r\n                    net.exe user $Username \/logonpasswordchg:yes\r\n                }\r\n                # Write it to a secure custom field\r\n                if ((Get-LocalUser -Name $Username -ErrorAction SilentlyContinue)) {\r\n                    Write-Host \"User $Username has been created successfully.\"\r\n                    if ($PasswordCustomField -like \"null\") {\r\n                        Write-Host \"CustomField not specified.\"\r\n                        Write-Host \"Password set to: $Password\"\r\n                    }\r\n                    else {\r\n                        Ninja-Property-Set -Name \"$PasswordCustomField\" -Value \"$Password\"\r\n                        Write-Host \"Password saved to $PasswordCustomField Custom Field.\"\r\n                    }\r\n                }\r\n                else {\r\n                    throw \"Failed to create User $Username.\"\r\n                }\r\n\r\n                Add-LocalGroupMember -Group $(Get-LocalGroup -Name \"Users\") -Member $Username\r\n\r\n                Write-Host \"User $UserName was added to the local Users group.\"\r\n\r\n                # If date to enable account is specified, disable account until then\r\n                if ($EnableDate) {\r\n                    if ($EnableDate -gt (Get-Date)) {\r\n                        # Schedule a job to enable the user at the specified date\r\n                        $TaskSplat = @{\r\n                            Description = \"Ninja Automation Enable User $Username\"\r\n                            Action      = New-ScheduledTaskAction -Execute \"powershell.exe\" -Argument \"-NoProfile -WindowStyle Hidden -Command &amp; {Enable-LocalUser -Name `\"$Username`\"}\"\r\n                            Trigger     = New-ScheduledTaskTrigger -Once -At $EnableDate\r\n                            Principal   = New-ScheduledTaskPrincipal -UserId \"SYSTEM\" -LogonType ServiceAccount\r\n                        }\r\n\r\n                        try {\r\n                            New-ScheduledTask @TaskSplat | Register-ScheduledTask -User \"System\" -TaskName \"Enable User $Username\" | Out-Null\r\n                            if ($(Get-ScheduledTask -TaskName \"Enable User $Username\")) {\r\n                                Write-Host \"Created Scheduled Task: Enable User $Username\"\r\n                            }\r\n                            else {\r\n                                throw \"Failed to find scheduled task with the name 'Enable User $Username'\"\r\n                            }\r\n                        }\r\n                        catch {\r\n                            Write-Error $_\r\n                            throw \"Failed to create Enable User scheduled task.\"\r\n                        }\r\n\r\n                        Write-Host \"User $Username will be able to login after $EnableDate.\"\r\n                    }\r\n                }\r\n                else {\r\n                    Write-Host \"No Enable Date is Set, $UserName is able to login now.\"\r\n                }\r\n\r\n                # Add to local admin group if specified\r\n                if ($AddToLocalAdminGroup) {\r\n                    Add-LocalGroupMember -Group $(Get-LocalGroup -Name \"Administrators\") -Member $Username\r\n                    if (-not (Get-LocalGroupMember -Group $(Get-LocalGroup -Name \"Administrators\") -Member $Username)) {\r\n                        throw \"Failed to add user to local Administrators group.\"\r\n                    }\r\n                    Write-Host \"User $UserName was added to the local Administrators group.\"\r\n                }\r\n            }\r\n            else {\r\n                Write-Host \"User $Username already exists.\"\r\n            }\r\n        }\r\n        else {\r\n            throw \"Username and Name are required to create a local account.\"\r\n        }\r\n    }\r\n}\r\nprocess {\r\n    if ($env:usernameToAdd -and $env:usernameToAdd -like \"null\") {\r\n        Write-Error \"usernameToAdd($env:usernameToAdd) parameter is invalid.\"\r\n        exit 1\r\n    }\r\n    if ($env:name -and $env:name -like \"null\") {\r\n        Write-Error \"name($env:name) parameter is invalid.\"\r\n        exit 1\r\n    }\r\n    if ($env:passwordCustomField -and $env:passwordCustomField -like \"null\") {\r\n        Write-Error \"passwordCustomField($env:passwordCustomField) parameter is invalid.\"\r\n        exit 1\r\n    }\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    $params = @{\r\n        Username = if ($PSBoundParameters.ContainsKey(\"UserNameToAdd\")) { $UserNameToAdd }else { $env:usernameToAdd }\r\n        Name     = if ($PSBoundParameters.ContainsKey(\"Name\")) { $Name }else { $env:name }\r\n    }\r\n    # Conditionally add EnableDate\r\n    if ($env:dateAndTimeToEnable -and $env:dateAndTimeToEnable -notlike \"null\") {\r\n        $params[\"EnableDate\"] = Get-Date \"$env:dateAndTimeToEnable\"\r\n    }\r\n    elseif ($PSBoundParameters.ContainsKey(\"DateAndTimeToEnable\") -and $DateAndTimeToEnable) {\r\n        $params[\"EnableDate\"] = $DateAndTimeToEnable\r\n    }\r\n    # Conditionally add DisableAfterDays\r\n    if ($env:disableAfterDays -notlike \"null\") {\r\n        $params[\"DisableAfterDays\"] = $env:disableAfterDays\r\n    }\r\n    elseif ($PSBoundParameters.ContainsKey(\"DisableAfterDays\")) {\r\n        $params[\"DisableAfterDays\"] = $DisableAfterDays\r\n    }\r\n\r\n    # Conditionally add AddToLocalAdminGroup\r\n    if ([Convert]::ToBoolean($env:addToLocalAdminGroup)) {\r\n        $params[\"AddToLocalAdminGroup\"] = $true\r\n    }\r\n    elseif ($PSBoundParameters.ContainsKey(\"AddToLocalAdminGroup\")) {\r\n        $params[\"AddToLocalAdminGroup\"] = $AddToLocalAdminGroup\r\n    }\r\n    # Conditionally add AddToLocalAdminGroup\r\n    if ($env:passwordCustomField -notlike \"null\") {\r\n        $params[\"PasswordCustomField\"] = $env:passwordCustomField\r\n    }\r\n    elseif ($env:passwordCustomField -like \"null\") {\r\n        Write-Error \"passwordCustomField: is Required\"\r\n        exit 1\r\n    }\r\n    elseif ($PSBoundParameters.ContainsKey(\"PasswordCustomField\")) {\r\n        $params[\"PasswordCustomField\"] = $PasswordCustomField\r\n    }\r\n\r\n    if ($env:passwordLength -notlike \"null\") {\r\n        $PasswordLength = $env:passwordLength\r\n    }\r\n    elseif (-not $passwordLength) {\r\n        $PasswordLength = 20\r\n    }\r\n\r\n    try {\r\n        New-LocalUserFromNinja @params\r\n    }\r\n    catch {\r\n        Write-Error $_\r\n        exit 1\r\n    }\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>Acc\u00e9dez \u00e0 plus de 700 scripts dans le Dojo NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/fr\/phase-de-test-gratuit\/\">Obtenir l&rsquo;acc\u00e8s<\/a><\/p>\n<\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Le texte est structur\u00e9 en plusieurs sections cl\u00e9s, chacune remplissant une t\u00e2che sp\u00e9cifique :<\/p>\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>D\u00e9finition de param\u00e8tres<\/strong>: Des param\u00e8tres tels que <strong>UserNameToAdd<\/strong>, <strong>Name<\/strong> et <strong>DateAndTimeToEnable<\/strong> sont d\u00e9clar\u00e9s, ce qui permet de personnaliser les entr\u00e9es 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;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<\/strong>: Des fonctions essentielles telles que <strong>Test-IsElevated<\/strong>, <strong>New-SecurePassword<\/strong> et <strong>New-LocalUserFromNinja<\/strong> sont d\u00e9finies. <strong>Test-IsElevated<\/strong> v\u00e9rifie les privil\u00e8ges d&rsquo;administrateur, <strong>New-SecurePassword<\/strong> g\u00e9n\u00e8re un mot de passe s\u00e9curis\u00e9 et <strong>New-LocalUserFromNinja<\/strong> encapsule la fonctionnalit\u00e9 de base de la cr\u00e9ation et de la gestion des utilisateurs.<\/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>Cr\u00e9ation et gestion des utilisateurs<\/strong>: Le script v\u00e9rifie si l&rsquo;utilisateur sp\u00e9cifi\u00e9 existe, cr\u00e9e un nouvel utilisateur si ce n&rsquo;est pas le cas et d\u00e9finit des propri\u00e9t\u00e9s telles que le mot de passe, la description et l&rsquo;expiration du compte. Il g\u00e8re \u00e9galement l&rsquo;ajout d&rsquo;utilisateurs \u00e0 des groupes et planifie les t\u00e2ches d&rsquo;activation\/d\u00e9sactivation des comptes.<\/li>\n<\/ul>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez qu&rsquo;une entreprise MSP g\u00e8re l&rsquo;informatique d&rsquo;une entreprise avec des employ\u00e9s en CDD. Ils peuvent utiliser ce script pour automatiser la cr\u00e9ation de comptes pour les nouveaux employ\u00e9s, en fixant des dates d&rsquo;activation et de d\u00e9sactivation sp\u00e9cifiques, ce qui permet de gagner du temps et de r\u00e9duire les erreurs manuelles.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Traditionnellement, la gestion des comptes utilisateurs peut impliquer des processus manuels ou des scripts de base qui manquent de fonctionnalit\u00e9s avanc\u00e9es telles que la g\u00e9n\u00e9ration de mots de passe s\u00e9curis\u00e9s ou l&rsquo;activation\/d\u00e9sactivation programm\u00e9e. Ce script offre une approche plus sophistiqu\u00e9e, plus s\u00fbre et plus rapide.<\/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=\"4\" data-aria-level=\"1\"><strong>Ce script peut-il g\u00e9rer la cr\u00e9ation d&rsquo;utilisateurs en masse ?<\/strong><br \/>\nBien que con\u00e7u pour les comptes individuels, il peut \u00eatre adapt\u00e9 \u00e0 la cr\u00e9ation en masse moyennant des modifications.<\/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>Est-il suffisamment s\u00fbr pour \u00eatre utilis\u00e9 dans des environnements sensibles ?<\/strong><br \/>\nOui, il comprend des fonctionnalit\u00e9s telles que la g\u00e9n\u00e9ration de mots de passe s\u00e9curis\u00e9s.<\/li>\n<\/ul>\n<h2>Implications<\/h2>\n<p>L&rsquo;utilisation d&rsquo;un tel script renforce la s\u00e9curit\u00e9 et l&rsquo;efficacit\u00e9, mais souligne \u00e9galement la n\u00e9cessit\u00e9 de contr\u00f4les d&rsquo;acc\u00e8s et de surveillance stricts, car la cr\u00e9ation automatis\u00e9e de comptes peut \u00eatre un vecteur potentiel d&rsquo;acc\u00e8s non autoris\u00e9 si elle n&rsquo;est pas g\u00e9r\u00e9e correctement.<\/p>\n<h2>Recommandations<\/h2>\n<p>Les bonnes pratiques consistent \u00e0 revoir r\u00e9guli\u00e8rement les scripts, \u00e0 les utiliser en conjonction avec des politiques d&rsquo;audit rigoureuses et \u00e0 veiller \u00e0 ce que seul le personnel autoris\u00e9 ait acc\u00e8s au script et \u00e0 ses fonctionnalit\u00e9s.<\/p>\n<h2>Conclusion<\/h2>\n<p>NinjaOne, une plateforme connue pour <a href=\"https:\/\/www.ninjaone.com\/fr\/\">rationaliser les t\u00e2ches de gestion informatique<\/a>, peut compl\u00e9ter ces scripts en fournissant une interface centralis\u00e9e et conviviale pour la gestion de ces processus automatis\u00e9s. L&rsquo;int\u00e9gration de scripts PowerShell dans un environnement NinjaOne peut am\u00e9liorer consid\u00e9rablement <a href=\"https:\/\/www.ninjaone.com\/fr\/efficacite\/\">l&rsquo;efficacit\u00e9 op\u00e9rationnelle<\/a> et la s\u00e9curit\u00e9 de la gestion informatique.<\/p>\n","protected":false},"author":35,"featured_media":193895,"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-269477","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-gestion-des-utilisateurs-et-des-acces"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/269477","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=269477"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/193895"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=269477"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=269477"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=269477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}