{"id":215487,"date":"2024-03-15T13:27:02","date_gmt":"2024-03-15T13:27:02","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=215487"},"modified":"2024-03-15T13:31:48","modified_gmt":"2024-03-15T13:31:48","slug":"mise-a-jour-vers-powershell-5-1","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/mise-a-jour-vers-powershell-5-1\/","title":{"rendered":"Le guide complet : Comment mettre \u00e0 jour PowerShell vers PowerShell 5.1"},"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>Mise \u00e0 jour automatis\u00e9e de PowerShell<\/strong>: Le script automatise la mise \u00e0 jour vers PowerShell\u00a0 5.1 sur des versions sp\u00e9cifiques de 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>Efficacit\u00e9 pour les professionnels de l&rsquo;informatique<\/strong>: Id\u00e9al pour les entreprises MSP et les professionnels de l&rsquo;informatique qui g\u00e8rent plusieurs syst\u00e8mes, ce qui permet d&rsquo;assurer l&rsquo;uniformit\u00e9 et de gagner du temps.<\/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>V\u00e9rifications de la compatibilit\u00e9<\/strong>: V\u00e9rifie automatiquement la compatibilit\u00e9 du syst\u00e8me et emp\u00eache l&rsquo;ex\u00e9cution sur les syst\u00e8mes o\u00f9 Exchange Server est install\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=\"4\" data-aria-level=\"1\"><strong>Gestion performante des erreurs<\/strong>: Comprend la gestion et la journalisation des erreurs pour permettre des mises \u00e0 jour fiables et tra\u00e7ables.<\/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>Gestion des conditions pr\u00e9alablement n\u00e9cessaires<\/strong>: Identifie et installe les pr\u00e9requis n\u00e9cessaires tels que les mises \u00e0 jour de .NET Framework avant de mettre \u00e0 jour PowerShell.<\/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>Personnalisable et \u00e9volutif<\/strong>: Peut \u00eatre modifi\u00e9 pour des environnements sp\u00e9cifiques et peut \u00eatre \u00e9tendu \u00e0 plusieurs syst\u00e8mes.<\/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>Mesures de s\u00e9curit\u00e9<\/strong>: Il est recommand\u00e9 de le tester dans des environnements contr\u00f4l\u00e9s et d&rsquo;assurer des sauvegardes avant le d\u00e9ploiement.<\/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>Am\u00e9lior\u00e9e par des outils de gestion<\/strong>: A utiliser avec des outils tels que NinjaOne pour une gestion et une surveillance compl\u00e8tes 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=\"9\" data-aria-level=\"1\"><strong>Mise \u00e0 jour par script VS. manuelle<\/strong>: Offre un processus de mise \u00e0 jour plus fiable et plus efficace que les m\u00e9thodes manuelles traditionnelles.<\/li>\n<\/ul>\n<h2>Contexte<\/h2>\n<p>PowerShell est un outil essentiel dans les environnements informatiques modernes, offrant une plateforme polyvalente pour l&rsquo;automatisation des t\u00e2ches et la gestion des syst\u00e8mes. La mise \u00e0 jour de PowerShell est essentielle pour la s\u00e9curit\u00e9, la compatibilit\u00e9 et l&rsquo;acc\u00e8s aux nouvelles fonctionnalit\u00e9s. Cet article se penche sur un script PowerShell sp\u00e9cialement con\u00e7u pour mettre \u00e0 jour PowerShell vers la version 5.1, une t\u00e2che qui concerne de nombreux professionnels de l&rsquo;informatique et <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\/\">fournisseurs de services g\u00e9r\u00e9s (MSP).\u00a0<\/a><\/p>\n<p>Le script en question automatise la mise \u00e0 niveau de PowerShell vers la version 5.1 sur <a href=\"https:\/\/www.ninjaone.com\/blog\/windows-server-2012-end-of-life-what-to-know\/\">Windows Server 2012<\/a> R2 et Windows 8.1. Il s&rsquo;agit d&rsquo;un grand atout, car les mises \u00e0 jour manuelles peuvent prendre beaucoup de temps et \u00eatre source d&rsquo;erreurs. Pour les professionnels de l&rsquo;informatique et les MSP qui g\u00e8rent plusieurs syst\u00e8mes, un tel script garantit la consistance et l&rsquo;efficacit\u00e9 de la maintenance de leur infrastructure.<\/p>\n<h2>Le script :<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 2\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Upgrades PowerShell to version 5.1.\r\n.DESCRIPTION\r\n    NOTICE - Multiple reboots may be required to continue with the install in the case\r\n    where 3.0 is installed.\r\n    This requires the user to log back in manually after the reboot before continuing.\r\n\r\n    The script will upgrade powershell to 5.1 on the following OS'\r\n        Windows Server 2012 R2\r\n        Windows 8.1\r\n\r\n    This script WILL NOT run if Exchange Server is installed!\r\n\r\n    A log of this process is created in $env:Temp\\upgrade_powershell.log\r\n    This log can used to see how the script faired after an automatic reboot.\r\n.EXAMPLE\r\n    -Restart\r\nPARAMETER: -Restart\r\n    Restart even if a restart isn't required.\r\n\r\n.EXAMPLE\r\n    # upgrade to 5.1 with defaults and manual login and reboots\r\n    (No Parameters)\r\n\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minium Supported OS: Windows 8.1, 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.ninjaone.com\/fr\/conditions-dutilisation\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    [string]$Version = \"5.1\",\r\n    [switch]$ForceRestart = [System.Convert]::ToBoolean($env:ForceRestart)\r\n)\r\n\r\nbegin {\r\n\r\n    # Modified version from: https:\/\/github.com\/jborean93\/ansible-windows\/tree\/master\/scripts\r\n    #\r\n    # LICENSE: https:\/\/github.com\/jborean93\/ansible-windows\/blob\/master\/LICENSE\r\n    # MIT License\r\n    #\r\n    # Copyright (c) 2017 Jordan Borean\r\n    #\r\n    # Permission is hereby granted, free of charge, to any person obtaining a copy\r\n    # of this software and associated documentation files (the \"Software\"), to deal\r\n    # in the Software without restriction, including without limitation the rights\r\n    # to use, copy, modify, merge, publish, distribute, sublicense, and\/or sell\r\n    # copies of the Software, and to permit persons to whom the Software is\r\n    # furnished to do so, subject to the following conditions:\r\n    #\r\n    # The above copyright notice and this permission notice shall be included in all\r\n    # copies or substantial portions of the Software.\r\n    #\r\n    # THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n    # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n    # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n    # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n    # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n    # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n    # SOFTWARE.\r\n\r\n\r\n    $ErrorActionPreference = 'Stop'\r\n    if ([System.Management.Automation.ActionPreference]::SilentlyContinue -ne $VerbosePreference) {\r\n        $VerbosePreference = \"Continue\"\r\n    }\r\n\r\n    if ([System.Convert]::ToBoolean($env:Verbose)) {\r\n        $Verbose = $true\r\n    }\r\n\r\n    # Don't upgrade PowerShell if Exchange is installed, this needs manual intervention to not cause problems.\r\n    if ($(Get-Service -Name MSExchangeServiceHost -ErrorAction SilentlyContinue) -or $(Get-Command Exsetup.exe -ErrorAction SilentlyContinue | ForEach-Object { $_.FileVersionInfo })) {\r\n        Write-Host \"Exchange looks to be installed. Aborting PowerShell upgrade.\"\r\n        exit 1\r\n    }\r\n\r\n    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }\r\n\r\n    $tmp_dir = $env:temp\r\n    if (-not (Test-Path -Path $tmp_dir)) {\r\n        New-Item -Path $tmp_dir -ItemType Directory &gt; $null\r\n    }\r\n\r\n    Function Write-Log($message, $level = \"INFO\") {\r\n        # Poor man's implementation of Log4Net\r\n        $date_stamp = Get-Date -Format s\r\n        $log_entry = \"$date_stamp - $level - $message\"\r\n        $log_file = \"$tmp_dir\\upgrade_powershell.log\"\r\n        Write-Host -Message $log_entry\r\n        Add-Content -Path $log_file -Value $log_entry\r\n    }\r\n\r\n    Function Invoke-Reboot {\r\n\r\n        Write-Log -message \"need to reboot server to continue powershell upgrade\"\r\n\r\n        shutdown.exe \/r \/t 30\r\n    }\r\n\r\n    Function Invoke-RunProcess($executable, $arguments) {\r\n        $process = New-Object -TypeName System.Diagnostics.Process\r\n        $psi = $process.StartInfo\r\n        $psi.FileName = $executable\r\n        $psi.Arguments = $arguments\r\n        Write-Log -message \"starting new process '$executable $arguments'\"\r\n        $process.Start() | Out-Null\r\n    \r\n        $process.WaitForExit() | Out-Null\r\n        $exit_code = $process.ExitCode\r\n        Write-Log -message \"process completed with exit code '$exit_code'\"\r\n\r\n        return $exit_code\r\n    }\r\n\r\n    Function Invoke-DownloadFile($url, $path) {\r\n        Write-Log -message \"downloading url '$url' to '$path'\"\r\n        $client = New-Object -TypeName System.Net.WebClient\r\n        $client.DownloadFile($url, $path)\r\n    }\r\n\r\n    Write-Log -message \"starting script\"\r\n    # on PS v1.0, upgrade to 2.0 and then run the script again\r\n    if ($PSVersionTable -eq $null) {\r\n        Write-Log -message \"upgrading powershell v1.0 to v2.0\"\r\n        $architecture = $env:PROCESSOR_ARCHITECTURE\r\n        if ($architecture -eq \"AMD64\") {\r\n            $url = \"https:\/\/download.microsoft.com\/download\/2\/8\/6\/28686477-3242-4E96-9009-30B16BED89AF\/Windows6.0-KB968930-x64.msu\"\r\n        }\r\n        else {\r\n            $url = \"https:\/\/download.microsoft.com\/download\/F\/9\/E\/F9EF6ACB-2BA8-4845-9C10-85FC4A69B207\/Windows6.0-KB968930-x86.msu\"\r\n        }\r\n        $filename = $url.Split(\"\/\")[-1]\r\n        $file = \"$tmp_dir\\$filename\"\r\n        Invoke-DownloadFile -url $url -path $file\r\n        $exit_code = Invoke-RunProcess -executable $file -arguments \"\/quiet \/norestart\"\r\n        if ($exit_code -ne 0 -and $exit_code -ne 3010) {\r\n            $error_msg = \"failed to update Powershell from 1.0 to 2.0: exit code $exit_code\"\r\n            Write-Log -message $error_msg -level \"ERROR\"\r\n            throw $error_msg\r\n        }\r\n        Invoke-Reboot\r\n    }\r\n\r\n    # exit if the target version is the same as the actual version\r\n    $current_ps_version = [version]\"$($PSVersionTable.PSVersion.Major).$($PSVersionTable.PSVersion.Minor)\"\r\n    if ($current_ps_version -eq [version]$Version) {\r\n        Write-Log -message \"current and target PS version are the same, no action is required\"\r\n        exit 0\r\n    }\r\n\r\n    $os_version = [Version](Get-Item -Path \"$env:SystemRoot\\System32\\kernel32.dll\").VersionInfo.ProductVersion\r\n    $architecture = $env:PROCESSOR_ARCHITECTURE\r\n    if ($architecture -eq \"AMD64\") {\r\n        $architecture = \"x64\"\r\n    }\r\n    else {\r\n        $architecture = \"x86\"\r\n    }\r\n}\r\n\r\nprocess {\r\n    $actions = @()\r\n    switch ($Version) {\r\n        \"5.1\" {\r\n            if ($os_version -lt [version]\"6.3\") {\r\n                $error_msg = \"cannot upgrade Server 2008 to Powershell v5.1, v3 is the latest supported\"\r\n                Write-Log -message $error_msg -level \"ERROR\"\r\n                throw $error_msg\r\n            }\r\n            # check if WMF 3 is installed, need to be uninstalled before 5.1\r\n            if ($os_version.Minor -lt 2) {\r\n                $wmf3_installed = Get-HotFix -Id \"KB2506143\" -ErrorAction SilentlyContinue\r\n                if ($wmf3_installed) {\r\n                    $error_msg = \"cannot upgrade to Powershell v5.1, this needs manual intervention.\"\r\n                    Write-Log -message $error_msg -level \"ERROR\"\r\n                    throw $error_msg\r\n                }\r\n            }\r\n            $actions += \"5.1\"\r\n            break\r\n        }\r\n        default {\r\n            $error_msg = \"version '$Version' is not supported in this upgrade script\"\r\n            Write-Log -message $error_msg -level \"ERROR\"\r\n            throw $error_msg\r\n        }\r\n    }\r\n\r\n    # detect if .NET 4.5.2 is not installed and add to the actions\r\n    $dotnet_path = \"HKLM:\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full\"\r\n    if (-not $(Test-Path -Path $dotnet_path -ErrorAction SilentlyContinue)) {\r\n        $dotnet_upgrade_needed = $true\r\n    }\r\n    else {\r\n        $dotnet_version = Get-ItemProperty -Path $dotnet_path -Name Release -ErrorAction SilentlyContinue\r\n        if ($dotnet_version) {\r\n            # 379893 == 4.5.2\r\n            if ($dotnet_version.Release -lt 379893) {\r\n                $dotnet_upgrade_needed = $true\r\n            }        \r\n        }\r\n        else {\r\n            $dotnet_upgrade_needed = $true\r\n        }\r\n    }\r\n    if ($dotnet_upgrade_needed) {\r\n        $actions = @(\"dotnet\") + $actions\r\n    }\r\n\r\n    Write-Log -message \"The following actions will be performed: $($actions -join \", \")\"\r\n    foreach ($action in $actions) {\r\n        $url = $null\r\n        $file = $null\r\n        $arguments = \"\/quiet \/norestart\"\r\n\r\n        switch ($action) {\r\n            \"dotnet\" {\r\n                Write-Log -message \"running .NET update to 4.5.2\"\r\n                $url = \"https:\/\/download.microsoft.com\/download\/E\/2\/1\/E21644B5-2DF2-47C2-91BD-63C560427900\/NDP452-KB2901907-x86-x64-AllOS-ENU.exe\"\r\n                $error_msg = \"failed to update .NET to 4.5.2\"\r\n                $arguments = \"\/q \/norestart\"\r\n                break\r\n            }\r\n            \"5.1\" {\r\n                Write-Log -message \"running powershell update to version 5.1\"\r\n                if ($os_version.Minor -eq 2) {\r\n                    # Server 2012\r\n                    $url = \"http:\/\/download.microsoft.com\/download\/6\/F\/5\/6F5FF66C-6775-42B0-86C4-47D41F2DA187\/W2K12-KB3191565-x64.msu\"\r\n                }\r\n                else {\r\n                    # Server 2012 R2 and Windows 8.1\r\n                    if ($architecture -eq \"x64\") {\r\n                        $url = \"http:\/\/download.microsoft.com\/download\/6\/F\/5\/6F5FF66C-6775-42B0-86C4-47D41F2DA187\/Win8.1AndW2K12R2-KB3191564-x64.msu\"\r\n                    }\r\n                    else {\r\n                        $url = \"http:\/\/download.microsoft.com\/download\/6\/F\/5\/6F5FF66C-6775-42B0-86C4-47D41F2DA187\/Win8.1-KB3191564-x86.msu\"\r\n                    }\r\n                }\r\n                break\r\n            }\r\n            default {\r\n                $error_msg = \"unknown action '$action'\"\r\n                Write-Log -message $error_msg -level \"ERROR\"\r\n            }\r\n        }\r\n\r\n        if ($null -eq $file) {\r\n            $filename = $url.Split(\"\/\")[-1]\r\n            $file = \"$tmp_dir\\$filename\"\r\n        }\r\n        if ($null -ne $url) {\r\n            Invoke-DownloadFile -url $url -path $file\r\n        }\r\n    \r\n        $exit_code = Invoke-RunProcess -executable $file -arguments $arguments\r\n        if ($exit_code -ne 0 -and $exit_code -ne 3010) {\r\n            $log_msg = \"$($error_msg): exit code $exit_code\"\r\n            Write-Log -message $log_msg -level \"ERROR\"\r\n            throw $log_msg\r\n        }\r\n        if ($exit_code -eq 3010) {\r\n            $log_msg = \"Reboot is required!\"\r\n            Write-Log -message $log_msg -level \"WARN\"\r\n            break\r\n        }\r\n    }\r\n    if ($ForceRestart) {\r\n        Invoke-Reboot\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 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>Pr\u00e9paration et v\u00e9rification<\/strong>: Il commence par d\u00e9finir les pr\u00e9f\u00e9rences en mati\u00e8re de traitement des erreurs et v\u00e9rifie la pr\u00e9sence de Microsoft Exchange Server, qui n\u00e9cessite une approche diff\u00e9rente en mati\u00e8re de mise \u00e0 jour.<\/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>Journalisation initiale<\/strong>: Il initialise ensuite la journalisation pour suivre la progression du script, ce qui est particuli\u00e8rement utile dans les environnements o\u00f9 les t\u00e2ches automatis\u00e9es s&rsquo;ex\u00e9cutent fr\u00e9quemment.<\/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>V\u00e9rification de la version de PowerShell<\/strong>: Le script v\u00e9rifie la version actuelle de PowerShell. S&rsquo;il s&rsquo;agit d\u00e9j\u00e0 de la version 5.1, le script s&rsquo;arr\u00eate car aucune mise \u00e0 jour n&rsquo;est n\u00e9cessaire.<\/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>V\u00e9rification du syst\u00e8me d&rsquo;exploitation et de l&rsquo;architecture<\/strong>: Il identifie le syst\u00e8me d&rsquo;exploitation et l&rsquo;architecture (x64 ou x86) pour d\u00e9terminer le bon paquet de mise \u00e0 jour.<\/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>D\u00e9termination de l&rsquo;action<\/strong>: Le script d\u00e9cide s&rsquo;il faut mettre \u00e0 jour <a href=\"https:\/\/www.ninjaone.com\/fr\/script-hub\/comment-installer-net-framework-4-avec-powershell\/\">.NET Framework<\/a> avant PowerShell, ce qui est indispensable pour PowerShell 5.1.<\/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>T\u00e9l\u00e9chargement et installation des mises \u00e0 jour<\/strong>: Il t\u00e9l\u00e9charge et installe ensuite les paquets n\u00e9cessaires, en g\u00e9rant les red\u00e9marrages si n\u00e9cessaire.<\/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>Option de red\u00e9marrage forc\u00e9<\/strong>: Un param\u00e8tre permet un red\u00e9marrage forc\u00e9 si n\u00e9cessaire, garantissant que les mises \u00e0 jour sont enti\u00e8rement appliqu\u00e9es.<\/li>\n<\/ul>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Prenons l&rsquo;exemple d&rsquo;une entreprise MSP charg\u00e9e de la maintenance de plusieurs environnements de clients. Ils peuvent d\u00e9ployer ce script sur plusieurs syst\u00e8mes, en veillant \u00e0 ce que tous soient mis \u00e0 jour avec la m\u00eame version de PowerShell. Cette uniformit\u00e9 simplifie la gestion et r\u00e9duit les probl\u00e8mes de compatibilit\u00e9.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Traditionnellement, les mises \u00e0 jour PowerShell peuvent \u00eatre effectu\u00e9es manuellement ou par le biais d&rsquo;un script batch. Ce script PowerShell offre une approche plus sophistiqu\u00e9e avec la gestion des erreurs, la journalisation et les v\u00e9rifications au niveau de l&rsquo;environnement, r\u00e9duisant ainsi le risque d&rsquo;interruption ou de d\u00e9faillance.<\/p>\n<h2>FAQ<\/h2>\n<p><strong>Q\u00a0: Ce script fonctionnera-t-il sur n&rsquo;importe quel syst\u00e8me d&rsquo;exploitation Windows ?<\/strong><br \/>\nR\u00a0: Non, il est con\u00e7u pour Windows Server 2012 R2 et Windows 8.1.<\/p>\n<p><strong>Q\u00a0: Que se passe-t-il si Microsoft Exchange Server est install\u00e9 ?<\/strong><br \/>\nR\u00a0: Le script ne proc\u00e9dera pas \u00e0 la mise \u00e0 jour, car Exchange Server n\u00e9cessite un processus de mise \u00e0 jour diff\u00e9rent.<\/p>\n<p><strong>Q\u00a0: Puis-je utiliser ce script pour une mise \u00e0 jour vers des versions autres que 5.1 ?<\/strong><br \/>\nR\u00a0: Le script actuel est sp\u00e9cialement con\u00e7u pour la mise \u00e0 jour vers PowerShell 5.1. Des modifications seraient n\u00e9cessaires pour les autres versions.<\/p>\n<h2>Implications<\/h2>\n<p>L&rsquo;utilisation de ce script peut grandement am\u00e9liorer <a href=\"https:\/\/www.ninjaone.com\/fr\/efficacite\/\">l&rsquo;efficacit\u00e9 informatique<\/a>, mais n\u00e9cessite une attention particuli\u00e8re. Une mise \u00e0 jour incorrecte peut entra\u00eener une instabilit\u00e9 du syst\u00e8me. Testez toujours les scripts dans un environnement contr\u00f4l\u00e9 avant de proc\u00e9der \u00e0 un d\u00e9ploiement \u00e0 grande \u00e9chelle.<\/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\"><strong>D&rsquo;abord tester<\/strong>: Ex\u00e9cutez toujours le script dans un environnement de test avant de le d\u00e9ployer \u00e0 grande \u00e9chelle.<\/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>Syst\u00e8mes de sauvegarde<\/strong>: Assurez-vous que les sauvegardes du syst\u00e8me sont \u00e0 jour en cas de d\u00e9faillance.<\/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>Personnaliser selon les besoins<\/strong>: Modifiez le script pour des environnements sp\u00e9cifiques si n\u00e9cessaire.<\/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>Contr\u00f4ler les journaux<\/strong>: V\u00e9rifiez r\u00e9guli\u00e8rement les journaux g\u00e9n\u00e9r\u00e9s pour d\u00e9tecter tout probl\u00e8me ou anomalie.<\/li>\n<\/ul>\n<h2>Derni\u00e8res r\u00e9flexions<\/h2>\n<p>Dans le cadre d&rsquo;une gestion informatique rationalis\u00e9e, des outils comme NinjaOne peuvent compl\u00e9ter ces scripts en offrant un <a href=\"https:\/\/www.ninjaone.com\/fr\/\">contr\u00f4le et une surveillance centralis\u00e9s<\/a>. Les capacit\u00e9s de NinjaOne en mati\u00e8re de gestion des mises \u00e0 jour et de surveillance de la sant\u00e9 du syst\u00e8me peuvent fonctionner en tandem avec de tels scripts, am\u00e9liorant ainsi l&rsquo;efficacit\u00e9 et la fiabilit\u00e9 globales de l&rsquo;informatique. La combinaison de <a href=\"https:\/\/www.ninjaone.com\/fr\/script-hub\/\">l&rsquo;automatisation par le biais de scripts<\/a> et d&rsquo;un outil de gestion performante comme NinjaOne garantit que les environnements informatiques sont non seulement mis \u00e0 jour, mais aussi surveill\u00e9s et g\u00e9r\u00e9s de fa\u00e7on constante pour permettre des performances optimales.<\/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":[4288],"class_list":["post-215487","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows","use_cases-mise-a-jour-de-logiciel"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/215487","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=215487"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=215487"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=215487"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=215487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}