{"id":353672,"date":"2024-08-27T16:10:53","date_gmt":"2024-08-27T16:10:53","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/obtenir-la-derniere-heure-du-bios\/"},"modified":"2024-10-13T19:10:24","modified_gmt":"2024-10-13T19:10:24","slug":"obtenir-la-derniere-heure-du-bios","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/obtenir-la-derniere-heure-du-bios\/","title":{"rendered":"Surveiller la derni\u00e8re heure du BIOS avec PowerShell pour des performances optimales du syst\u00e8me"},"content":{"rendered":"<p>Dans cet article, nous allons voir comment <strong>obtenir la derni\u00e8re heure du BIOS<\/strong>. De nos jours\u00a0, l&rsquo;environnement informatique \u00e9voluant rapidement, il est primordial de veiller \u00e0 ce que les syst\u00e8mes fonctionnent efficacement. Un aspect critique de cette efficacit\u00e9 est le temps de d\u00e9marrage du syst\u00e8me, souvent appel\u00e9 \u00ab\u00a0Last BIOS Time\u00a0\u00bb.<\/p>\n<p>Le contr\u00f4le et la gestion de ce temps peuvent aider les professionnels de l&rsquo;informatique \u00e0 optimiser les performances du syst\u00e8me et \u00e0 r\u00e9soudre les probl\u00e8mes plus efficacement. Ce billet de blogue se penchera sur un <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-management\/what-is-powershell\/\" target=\"_blank\" rel=\"noopener\">script PowerShell<\/a> con\u00e7u pour r\u00e9cup\u00e9rer le temps de d\u00e9marrage du BIOS dans la section de d\u00e9marrage du gestionnaire des t\u00e2ches, et alerter les utilisateurs s&rsquo;il d\u00e9passe un seuil sp\u00e9cifi\u00e9.<\/p>\n<h2>Contexte<\/h2>\n<p>Le dernier d\u00e9lai du BIOS est une mesure disponible dans la section de d\u00e9marrage du gestionnaire des t\u00e2ches de Windows qui indique le temps n\u00e9cessaire au BIOS du syst\u00e8me pour s&rsquo;initialiser au cours du processus de d\u00e9marrage. Un d\u00e9lai plus long dans le BIOS peut indiquer des probl\u00e8mes potentiels tels que des probl\u00e8mes mat\u00e9riels ou des configurations erron\u00e9es. Pour les professionnels de l&rsquo;informatique et les <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\" target=\"_blank\" rel=\"noopener\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a>, le suivi de cette mesure peut s&rsquo;av\u00e9rer crucial pour maintenir la sant\u00e9 du syst\u00e8me et garantir des temps de d\u00e9marrage rapides.<\/p>\n<h2>Le script\u00a0:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Gets the Last BIOS time from the startup section of task manager and alerts if it exceeds a threshold you specify.\r\n.DESCRIPTION\r\n    Gets the Last BIOS time from the startup section of task manager and alerts if it exceeds a threshold you specify.\r\n    Can save the result to a custom field.\r\n\r\n.EXAMPLE\r\n    (No Parameters)\r\n    ## EXAMPLE OUTPUT WITHOUT PARAMS ##\r\n    Last BIOS Time: 14.6s\r\n\r\nPARAMETER: -BootCustomField \"BootTime\"\r\n    Saves the boot time to this Text Custom Field.\r\n.EXAMPLE\r\n    -BootCustomField \"BootTime\"\r\n    ## EXAMPLE OUTPUT WITH BootCustomField ##\r\n    Last BIOS Time: 14.6s\r\n\r\nPARAMETER: -Seconds 20\r\n    Sets the threshold for when the boot time is greater than this number.\r\n    In this case the boot time is over the threshold.\r\n.EXAMPLE\r\n    -Seconds 20\r\n    ## EXAMPLE OUTPUT WITH Seconds ##\r\n    Last BIOS Time: 14.6s\r\n    [Error] Boot time exceeded threshold of 20s by 5.41s. Boot time: 14.6s\r\n\r\nPARAMETER: -Seconds 10\r\n    Sets the threshold for when the boot time is greater than this number.\r\n    In this case the boot time is under the threshold.\r\n.EXAMPLE\r\n    -Seconds 10\r\n    ## EXAMPLE OUTPUT WITH Seconds ##\r\n    Last BIOS Time: 14.6s\r\n    [Info] Boot time under threshold of 10s by 4.59s. Boot time: 14.6s\r\n\r\n.OUTPUTS\r\n    String\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    $Seconds,\r\n    [String]$BootCustomField\r\n)\r\n\r\nbegin {\r\n    if ($env:bootCustomField -and $env:bootCustomField -notlike \"null\") {\r\n        $BootCustomField = $env:bootCustomField\r\n    }\r\n    if ($env:bootTimeThreshold -and $env:bootTimeThreshold -notlike \"null\") {\r\n        # Remove any non digits\r\n        [double]$Seconds = $env:bootTimeThreshold -replace '[^0-9.]+'\r\n    }\r\n    function Set-NinjaProperty {\r\n        [CmdletBinding()]\r\n        Param(\r\n            [Parameter(Mandatory = $True)]\r\n            [String]$Name,\r\n            [Parameter()]\r\n            [String]$Type,\r\n            [Parameter(Mandatory = $True, ValueFromPipeline = $True)]\r\n            $Value,\r\n            [Parameter()]\r\n            [String]$DocumentName\r\n        )\r\n    \r\n        $Characters = $Value | Measure-Object -Character | Select-Object -ExpandProperty Characters\r\n        if ($Characters -ge 10000) {\r\n            throw [System.ArgumentOutOfRangeException]::New(\"Character limit exceeded, value is greater than 10,000 characters.\")\r\n        }\r\n        \r\n        # If we're requested to set the field value for a Ninja document we'll specify it here.\r\n        $DocumentationParams = @{}\r\n        if ($DocumentName) { $DocumentationParams[\"DocumentName\"] = $DocumentName }\r\n        \r\n        # This is a list of valid fields that can be set. If no type is given, it will be assumed that the input doesn't need to be changed.\r\n        $ValidFields = \"Attachment\", \"Checkbox\", \"Date\", \"Date or Date Time\", \"Decimal\", \"Dropdown\", \"Email\", \"Integer\", \"IP Address\", \"MultiLine\", \"MultiSelect\", \"Phone\", \"Secure\", \"Text\", \"Time\", \"URL\", \"WYSIWYG\"\r\n        if ($Type -and $ValidFields -notcontains $Type) { Write-Warning \"$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        # The field below requires additional information to be set\r\n        $NeedsOptions = \"Dropdown\"\r\n        if ($DocumentName) {\r\n            if ($NeedsOptions -contains $Type) {\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                $NinjaPropertyOptions = Ninja-Property-Docs-Options -AttributeName $Name @DocumentationParams 2&gt;&amp;1\r\n            }\r\n        }\r\n        else {\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 an error is received it will have an exception property, the function will exit with that error information.\r\n        if ($NinjaPropertyOptions.Exception) { throw $NinjaPropertyOptions }\r\n        \r\n        # The below type's require values not typically given in order to be set. The below code will convert whatever we're given into a format ninjarmm-cli supports.\r\n        switch ($Type) {\r\n            \"Checkbox\" {\r\n                # While it's highly likely we were given a value like \"True\" or a boolean datatype it's better to be safe than sorry.\r\n                $NinjaValue = [System.Convert]::ToBoolean($Value)\r\n            }\r\n            \"Date or Date Time\" {\r\n                # Ninjarmm-cli expects the GUID of the option to be selected. Therefore, the given value will be matched with a GUID.\r\n                $Date = (Get-Date $Value).ToUniversalTime()\r\n                $TimeSpan = New-TimeSpan (Get-Date \"1970-01-01 00:00:00\") $Date\r\n                $NinjaValue = $TimeSpan.TotalSeconds\r\n            }\r\n            \"Dropdown\" {\r\n                # Ninjarmm-cli is expecting the guid of the option we're trying to select. So we'll match up the value we were given with a guid.\r\n                $Options = $NinjaPropertyOptions -replace '=', ',' | ConvertFrom-Csv -Header \"GUID\", \"Name\"\r\n                $Selection = $Options | Where-Object { $_.Name -eq $Value } | Select-Object -ExpandProperty GUID\r\n        \r\n                if (-not $Selection) {\r\n                    throw [System.ArgumentOutOfRangeException]::New(\"Value is not present in dropdown\")\r\n                }\r\n        \r\n                $NinjaValue = $Selection\r\n            }\r\n            default {\r\n                # All the other types shouldn't require additional work on the input.\r\n                $NinjaValue = $Value\r\n            }\r\n        }\r\n        \r\n        # We'll need to set the field differently depending on if its a field in a Ninja Document or not.\r\n        if ($DocumentName) {\r\n            $CustomField = Ninja-Property-Docs-Set -AttributeName $Name -AttributeValue $NinjaValue @DocumentationParams 2&gt;&amp;1\r\n        }\r\n        else {\r\n            $CustomField = Ninja-Property-Set -Name $Name -Value $NinjaValue 2&gt;&amp;1\r\n        }\r\n        \r\n        if ($CustomField.Exception) {\r\n            throw $CustomField\r\n        }\r\n    }\r\n}\r\nprocess {\r\n    $Ticks = try {\r\n        # Get boot time from performance event logs\r\n        $PerfTicks = Get-WinEvent -FilterHashtable @{LogName = \"Microsoft-Windows-Diagnostics-Performance\/Operational\"; Id = 100 } -MaxEvents 1 -ErrorAction SilentlyContinue | ForEach-Object {\r\n            # Convert the event to XML and grab the Event node\r\n            $eventXml = ([xml]$_.ToXml()).Event\r\n            # Output boot time in ms\r\n            [int64]($eventXml.EventData.Data | Where-Object { $_.Name -eq 'BootTime' }).InnerXml\r\n        }\r\n        # Get the boot POST time from the firmware, when available\r\n        $FirmwareTicks = Get-ItemPropertyValue -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Power\" -Name \"FwPOSTTime\" -ErrorAction SilentlyContinue\r\n        # Get the boot POST time from Windows, used as fall back\r\n        $OsTicks = Get-ItemPropertyValue -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Power\" -Name \"POSTTime\" -ErrorAction SilentlyContinue\r\n        # Use most likely to be accurate to least accurate\r\n        if ($FirmwareTicks -gt 0) {\r\n            $FirmwareTicks\r\n        }\r\n        elseif ($OsTicks -gt 0) {\r\n            $OsTicks\r\n        }\r\n        elseif ($PerfTicks -and $PerfTicks -gt 0) {\r\n            $PerfTicks\r\n        }\r\n        else {\r\n            # Fall back to reading System event logs\r\n            $StartOfBoot = Get-WinEvent -FilterHashtable @{LogName = 'System'; Id = 12 } -MaxEvents 1 | Select-Object -ExpandProperty TimeCreated\r\n            $LastUpTime = Get-WmiObject Win32_OperatingSystem -ErrorAction Stop | Select-Object @{Label = 'LastBootUpTime'; Expression = { $_.ConvertToDateTime($_.LastBootUpTime) } } | Select-Object -ExpandProperty LastBootUpTime\r\n            New-TimeSpan -Start $LastUpTime -End $StartOfBoot -ErrorAction Stop | Select-Object -ExpandProperty TotalMilliseconds\r\n        }\r\n    }\r\n    catch {\r\n        Write-Host \"[Error] Failed to get Last BIOS Time from registry.\"\r\n        exit 2\r\n    }\r\n\r\n    $TimeSpan = [TimeSpan]::FromMilliseconds($Ticks)\r\n\r\n    $BootTime = if ($TimeSpan.Days -gt 0) {\r\n        \"$($TimeSpan.Days)d, $($TimeSpan.Hours)h, $($TimeSpan.Minutes)m, $($TimeSpan.Seconds + [Math]::Round($TimeSpan.Milliseconds \/ 1000, 1))s\"\r\n    }\r\n    elseif ($TimeSpan.Hours -gt 0) {\r\n        \"$($TimeSpan.Hours)h, $($TimeSpan.Minutes)m, $($TimeSpan.Seconds + [Math]::Round($TimeSpan.Milliseconds \/ 1000, 1))s\"\r\n    }\r\n    elseif ($TimeSpan.Minutes -gt 0) {\r\n        \"$($TimeSpan.Minutes)m, $($TimeSpan.Seconds + [Math]::Round($TimeSpan.Milliseconds \/ 1000, 1))s\"\r\n    }\r\n    elseif ($TimeSpan.Seconds -gt 0) {\r\n        \"$($TimeSpan.Seconds + [Math]::Round($TimeSpan.Milliseconds \/ 1000, 1))s\"\r\n    }\r\n    else {\r\n        # Fail safe output\r\n        \"$($TimeSpan.Days)d, $($TimeSpan.Hours)h, $($TimeSpan.Minutes)m, $($TimeSpan.Seconds + [Math]::Round($TimeSpan.Milliseconds \/ 1000, 1))s\"\r\n    }\r\n\r\n    Write-Host \"Last BIOS Time: $BootTime\"\r\n\r\n    if ($BootCustomField) {\r\n        Set-NinjaProperty -Name $BootCustomField -Type Text -Value $BootTime\r\n    }\r\n\r\n    if ($Seconds -gt 0) {\r\n        if ($TimeSpan.TotalSeconds -gt $Seconds) {\r\n            Write-Host \"[Error] Boot time exceeded threshold of $($Seconds)s by $($TimeSpan.TotalSeconds - $Seconds)s. Boot time: $BootTime\"\r\n            exit 1\r\n        }\r\n        Write-Host \"[Info] Boot time under threshold of $($Seconds)s by $($Seconds - $TimeSpan.TotalSeconds)s. Boot time: $BootTime\"\r\n    }\r\n    exit 0\r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Le script PowerShell fourni est con\u00e7u pour r\u00e9cup\u00e9rer la derni\u00e8re heure du BIOS d&rsquo;un syst\u00e8me Windows et alerter l&rsquo;utilisateur si elle d\u00e9passe un seuil sp\u00e9cifi\u00e9. En outre, il peut enregistrer le r\u00e9sultat dans un champ personnalis\u00e9 \u00e0 des fins de documentation. Vous trouverez ci-dessous une explication d\u00e9taill\u00e9e, \u00e9tape par \u00e9tape, du fonctionnement du script.<\/p>\n<h2><em>Explication \u00e9tape par \u00e9tape<\/em><\/h2>\n<h3>1. D\u00e9finition de param\u00e8tres:<\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Le script commence par d\u00e9finir deux param\u00e8tres : $Seconds et $BootCustomField.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Le param\u00e8tre $Seconds sp\u00e9cifie le seuil du temps de d\u00e9marrage.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">$BootCustomField est un champ personnalis\u00e9 dans lequel l&rsquo;heure de d\u00e9marrage peut \u00eatre enregistr\u00e9e.<\/li>\n<\/ul>\n<h3>2. V\u00e9rification des variables d&rsquo;environnement :<\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Le script v\u00e9rifie les variables d&rsquo;environnement bootCustomField et bootTimeThreshold.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">S&rsquo;ils sont d\u00e9finis, ils remplacent les param\u00e8tres du script.<\/li>\n<\/ul>\n<h3>3. Fonction Set-NinjaProperty :<\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Cette fonction est utilis\u00e9e pour d\u00e9finir la valeur de l&rsquo;heure de d\u00e9marrage dans un champ personnalis\u00e9 sp\u00e9cifi\u00e9.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Elle inclut la validation pour s&rsquo;assurer que la valeur ne d\u00e9passe pas les limites de caract\u00e8res et traite les diff\u00e9rents types de donn\u00e9es de mani\u00e8re appropri\u00e9e.<\/li>\n<\/ul>\n<h3>4. Bloc \u00ab\u00a0process\u00a0\u00bb\u00a0:<\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Le script r\u00e9cup\u00e8re la derni\u00e8re heure du BIOS \u00e0 l&rsquo;aide de plusieurs m\u00e9thodes, en privil\u00e9giant la pr\u00e9cision :<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0a7\" data-font=\"Wingdings\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:2160,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Wingdings&quot;,&quot;469769242&quot;:[9642],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0a7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"3\">Journaux des \u00e9v\u00e9nements de performance.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0a7\" data-font=\"Wingdings\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:2160,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Wingdings&quot;,&quot;469769242&quot;:[9642],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0a7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"3\">Valeurs du registre pour le temps POST du micrologiciel.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0a7\" data-font=\"Wingdings\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:2160,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Wingdings&quot;,&quot;469769242&quot;:[9642],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0a7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"3\">Les journaux d&rsquo;\u00e9v\u00e9nements du syst\u00e8me comme solution de rechange.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">L&rsquo;heure obtenue est convertie dans un format lisible par l&rsquo;homme.<\/li>\n<\/ul>\n<h3>5. Sorties et alertes :<\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Le script affiche la derni\u00e8re heure du BIOS.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"11\" data-aria-level=\"2\">Si un champ personnalis\u00e9 est sp\u00e9cifi\u00e9, il d\u00e9finit cette valeur \u00e0 l&rsquo;aide de la fonction Set-NinjaProperty.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"12\" data-aria-level=\"2\">Si un seuil est d\u00e9fini, il compare le temps de d\u00e9marrage \u00e0 ce seuil et \u00e9met une alerte en cas de d\u00e9passement.<\/li>\n<\/ul>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez un professionnel de l&rsquo;informatique nomm\u00e9 Alex, qui g\u00e8re un parc d&rsquo;ordinateurs portables d&rsquo;une entreprise. Un jour, Alex remarque que plusieurs utilisateurs signalent des temps de d\u00e9marrage anormalement longs. En d\u00e9ployant ce script PowerShell sur le r\u00e9seau, Alex peut automatiquement r\u00e9cup\u00e9rer et surveiller la derni\u00e8re heure du BIOS pour chaque syst\u00e8me.<\/p>\n<p>Si un syst\u00e8me d\u00e9passe le seuil pr\u00e9d\u00e9fini, Alex est imm\u00e9diatement alert\u00e9 et peut mener une enqu\u00eate plus approfondie, ce qui peut permettre d&rsquo;identifier des probl\u00e8mes mat\u00e9riels ou des erreurs de configuration qui doivent \u00eatre r\u00e9solus.<\/p>\n<h2>Comparaisons<\/h2>\n<p>D&rsquo;autres m\u00e9thodes permettant d&rsquo;obtenir des r\u00e9sultats similaires peuvent inclure l&rsquo;utilisation d&rsquo;outils Windows int\u00e9gr\u00e9s ou de logiciels tiers. Cependant, ces approches manquent souvent des capacit\u00e9s de personnalisation et d&rsquo;automatisation d&rsquo;un script PowerShell. Par exemple :<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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>Outils int\u00e9gr\u00e9s<\/strong>: Des outils tels que le gestionnaire des t\u00e2ches peuvent afficher la derni\u00e8re heure du BIOS, mais ne fournissent pas d&rsquo;alertes ou d&rsquo;automatisation.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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>Logiciels tiers<\/strong>: Bien qu&rsquo;ils puissent offrir une surveillance compl\u00e8te, ils peuvent \u00eatre plus co\u00fbteux et n\u00e9cessiter une configuration suppl\u00e9mentaire.<\/li>\n<\/ul>\n<h2>FAQ<\/h2>\n<h3>Q\u00a0: Que se passe-t-il si le script ne parvient pas \u00e0 r\u00e9cup\u00e9rer la derni\u00e8re heure du BIOS ?<\/h3>\n<p>R\u00a0: Le script comprend plusieurs m\u00e9thodes de secours pour s&rsquo;assurer que la derni\u00e8re heure du BIOS est r\u00e9cup\u00e9r\u00e9e avec pr\u00e9cision. Si toutes les m\u00e9thodes \u00e9chouent, un message d&rsquo;erreur est affich\u00e9.<\/p>\n<h3>Q\u00a0: Puis-je modifier le seuil apr\u00e8s avoir d\u00e9ploy\u00e9 le script ?<\/h3>\n<p>R\u00a0: Oui, vous pouvez d\u00e9finir le seuil \u00e0 l&rsquo;aide du param\u00e8tre -Seconds ou en d\u00e9finissant la variable d&rsquo;environnement bootTimeThreshold.<\/p>\n<h3>Q\u00a0: Comment enregistrer la derni\u00e8re heure du BIOS dans un champ personnalis\u00e9 ?<\/h3>\n<p>R\u00a0: Utilisez le param\u00e8tre -BootCustomField pour sp\u00e9cifier le champ personnalis\u00e9 dans lequel l&rsquo;heure de d\u00e9marrage doit \u00eatre enregistr\u00e9e.<\/p>\n<h2>Implications<\/h2>\n<p>La surveillance de la derni\u00e8re heure du BIOS peut avoir un impact significatif sur la <a href=\"https:\/\/www.ninjaone.com\/fr\/top-5-des-principes-fondamentaux-de-securite-informatique\" target=\"_blank\" rel=\"noopener\">s\u00e9curit\u00e9 et les performances informatiques<\/a>. Un temps d&rsquo;attente prolong\u00e9 au BIOS peut indiquer des probl\u00e8mes sous-jacents susceptibles d&rsquo;affecter la stabilit\u00e9 globale du syst\u00e8me et la productivit\u00e9 de l&rsquo;utilisateur. En surveillant et en traitant ces probl\u00e8mes de mani\u00e8re proactive, les professionnels de l&rsquo;informatique peuvent maintenir des performances optimales du syst\u00e8me et r\u00e9duire les temps d&rsquo;arr\u00eat.<\/p>\n<h2>Recommandations<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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\">Surveillez r\u00e9guli\u00e8rement la derni\u00e8re heure du BIOS \u00e0 l&rsquo;aide de ce script afin de d\u00e9tecter rapidement les probl\u00e8mes potentiels.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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\">Fixez des seuils r\u00e9alistes bas\u00e9s sur les performances typiques de vos syst\u00e8mes.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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\">Documenter toute anomalie et enqu\u00eater rapidement pour pr\u00e9venir les probl\u00e8mes \u00e0 long terme.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>En conclusion, ce script PowerShell offre une solution robuste pour surveiller la derni\u00e8re heure du BIOS, ce qui permet d&rsquo;obtenir des informations essentielles sur les performances du syst\u00e8me. En int\u00e9grant ce script dans vos pratiques de gestion informatique, vous pouvez garantir le bon fonctionnement et <a href=\"https:\/\/www.ninjaone.com\/fr\/efficacite\" target=\"_blank\" rel=\"noopener\">l&rsquo;efficacit\u00e9<\/a> de vos syst\u00e8mes. NinjaOne offre une suite d&rsquo;outils qui peuvent encore am\u00e9liorer vos op\u00e9rations informatiques, en fournissant des capacit\u00e9s compl\u00e8tes de surveillance et <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/tout-ce-que-vous-devez-savoir-sur-lautomatisation\" target=\"_blank\" rel=\"noopener\">d&rsquo;automatisation<\/a> pour maintenir vos syst\u00e8mes en parfait \u00e9tat.<\/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":"","_lmt_disable":""},"operating_system":[4212],"use_cases":[4284,4285],"class_list":["post-353672","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/353672","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=353672"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=353672"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=353672"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=353672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}