{"id":208125,"date":"2023-09-27T14:40:03","date_gmt":"2023-09-27T14:40:03","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/monitorare-le-modifiche-al-file-bootconfig-2\/"},"modified":"2024-03-04T18:34:14","modified_gmt":"2024-03-04T18:34:14","slug":"monitorare-le-modifiche-al-file-bootconfig-2","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/it\/script-hub\/monitorare-le-modifiche-al-file-bootconfig-2\/","title":{"rendered":"Come monitorare le modifiche al file BootConfig in Windows [PowerShell Script]"},"content":{"rendered":"<p><span class=\"TextRun SCXW142591384 BCX0\" lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW142591384 BCX0\">Nell&#8217;intricato mondo dell&#8217;IT, il<\/span> <span class=\"NormalTextRun SCXW142591384 BCX0\">mantenimento<\/span> <span class=\"NormalTextRun SCXW142591384 BCX0\">dell&#8217;integrit\u00e0 del sistema \u00e8 di estrema importanza. Un<\/span> <span class=\"NormalTextRun SCXW142591384 BCX0\">componente<\/span> <span class=\"NormalTextRun SCXW142591384 BCX0\">vitale nel sistema operativo Windows \u00e8 il file<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW142591384 BCX0\">BootConfig<\/span><span class=\"NormalTextRun SCXW142591384 BCX0\">. Monitorare le modifiche al file BootConfig \u00e8 fondamentale per gli amministratori di sistema e i professionisti IT per garantire la sicurezza e la stabilit\u00e0 del sistema. Questa guida analizza uno<\/span><\/span> <strong><span class=\"TextRun MacChromeBold SCXW142591384 BCX0\" lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW142591384 BCX0\">script PowerShell che verifica la presenza di modifiche nel file<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW142591384 BCX0\">BootConfig<\/span><\/span><\/strong><span class=\"TextRun SCXW142591384 BCX0\" lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW142591384 BCX0\">, offrendo un approccio proattivo alla gestione del sistema.<\/span><\/span><\/p>\n<h2>Background<\/h2>\n<p><span class=\"NormalTextRun SCXW94542935 BCX0\">Il file<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW94542935 BCX0\">BootConfig<\/span> <span class=\"NormalTextRun SCXW94542935 BCX0\">di Windows \u00e8 un elemento essenziale che<\/span> <span class=\"NormalTextRun SCXW94542935 BCX0\">contiene<\/span> <span class=\"NormalTextRun SCXW94542935 BCX0\">i dati di configurazione di avvio. Stabilisce come avviare il sistema, quali versioni del sistema operativo caricare e altri parametri di avvio. Considerando il suo ruolo nel processo di avvio, qualsiasi modifica non autorizzata o inaspettata pu\u00f2 portare a malfunzionamenti o vulnerabilit\u00e0 del sistema. Questo lo rende un obiettivo primario per i malintenzionati o per malware. Per i professionisti IT e i Managed Service Provider (MSP), disporre di uno strumento in grado di rilevare questi cambiamenti \u00e8 inestimabile. Aiuta nella gestione proattiva del sistema e nell&#8217;analisi forense in caso di violazioni della sicurezza.<\/span><\/p>\n<h2>Lo script per monitorare le modifiche al file BootConfig<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Checks if the BootConfig file was modified from last run.\r\n.DESCRIPTION\r\n    Checks if the BootConfig file was modified from last run.\r\n    On first run this will not produce an error, but will create a cache file for later comparison.\r\n.EXAMPLE\r\n    No parameters needed.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    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    # Path and file where the cache file will be saved for comparison\r\n    [string]\r\n    $CachePath = \"C:ProgramDataNinjaRMMAgentscriptingTest-BootConfig.clixml\"\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}\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n\r\n    # Get content and create hash of BootConfig file\r\n    $BootConfigContent = bcdedit.exe \/enum\r\n    $Stream = [IO.MemoryStream]::new([byte[]][char[]]\"$BootConfigContent\")\r\n    $BootConfigHash = Get-FileHash -InputStream $Stream -Algorithm SHA256\r\n\r\n    $Current = [PSCustomObject]@{\r\n        Content = $BootConfigContent\r\n        Hash    = $BootConfigHash\r\n    }\r\n\r\n    # Check if this is first run or not\r\n    if ($(Test-Path -Path $CachePath)) {\r\n        # Compare last content and hash\r\n        $Cache = Import-Clixml -Path $CachePath\r\n        $ContentDifference = Compare-Object -ReferenceObject $Cache.Content -DifferenceObject $Current.Content -CaseSensitive\r\n        $HashDifference = $Cache.Hash -like $Current.Hash\r\n        $Current | Export-Clixml -Path $CachePath -Force -Confirm:$false\r\n        if (-not $HashDifference) {\r\n            Write-Host \"BootConfig file has changed since last run!\"\r\n            Write-Host \"\"\r\n            $ContentDifference | ForEach-Object {\r\n                if ($_.SideIndicator -like '=&gt;') {\r\n                    Write-Host \"Added: $($_.InputObject)\"\r\n                }\r\n                elseif ($_.SideIndicator -like '&lt;=') {\r\n                    Write-Host \"Removed: $($_.InputObject)\"\r\n                }\r\n            }\r\n            exit 1\r\n        }\r\n    }\r\n    else {\r\n        Write-Host \"First run, saving comparison cache file.\"\r\n        $Current | Export-Clixml -Path $CachePath -Force -Confirm:$false\r\n    }\r\n    exit 0\r\n}\r\nend {}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Accedi a centinaia di script nel Dojo di NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/it\/prova-gratuita\/\">Ottieni l&#8217;accesso<\/a><\/p>\n<\/div>\n<h2>Analisi dettagliata<\/h2>\n<p>Lo script fornito \u00e8 uno script PowerShell meticolosamente realizzato per monitorare le modifiche apportate al file BootConfig dalla sua ultima esecuzione. Ecco una descrizione dettagliata passo dopo passo:<\/p>\n<ol>\n<li><b><span data-contrast=\"none\">Prerequisiti:<\/span><\/b><span data-contrast=\"none\"> Lo script per monitorare le modifiche al file BootConfig richiede la versione 5.1 di PowerShell.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"none\">Controllo dell&#8217;elevazione dei permessi<\/span><\/b>:<span data-contrast=\"none\"> Prima di passare alla sua funzione principale, lo script per monitorare le modifiche al file BootConfig controlla se \u00e8 stato eseguito con i privilegi di amministratore, essenziali per accedere ad alcuni file e comandi di sistema.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"none\">Hashing di BootConfig:<\/span><\/b><span data-contrast=\"none\"> Utilizzando il comando bcdedit.exe \/enum, lo script recupera il contenuto di BootConfig. Quindi crea uno hash SHA256 di questo contenuto, che serve come identificatore unico per quel contenuto specifico.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"none\">Confronto tra cache:<\/span><\/b><span data-contrast=\"none\"> Lo script per monitorare le modifiche al file BootConfig cerca quindi un file di cache precedentemente salvato. Se esiste, lo script confronta il contenuto e l&#8217;hash di BootConfig corrente con la versione memorizzata nella cache.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"none\">Output:<\/span><\/b><span data-contrast=\"none\"> Se vengono rilevate differenze, lo script per monitorare le modifiche al file BootConfig fornisce un output dettagliato delle modifiche, specificando cosa \u00e8 stato aggiunto o rimosso. Se \u00e8 la prima esecuzione dello script, salva i dati di BootConfig correnti per i confronti futuri.<\/span><\/li>\n<\/ol>\n<h2><span class=\"TextRun MacChromeBold SCXW126383188 BCX0\" lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW126383188 BCX0\">Casi d&#8217;uso potenziali<\/span><\/span><\/h2>\n<ul>\n<li><b><span data-contrast=\"none\">Controlli di routine del sistema:<\/span><\/b><span data-contrast=\"none\"> I professionisti dell&#8217;IT come Alex possono distribuire lo scriptper monitorare le modifiche al file BootConfig sui server aziendali per i controlli di routine, assicurando che non siano state apportate modifiche non autorizzate.<\/span><\/li>\n<li><b><span data-contrast=\"none\">Installazione post-software:<\/span><\/b><span data-contrast=\"none\"> Dopo l&#8217;installazione di un nuovo software o di aggiornamenti, lo script pu\u00f2 essere eseguito per verificare che il file BootConfig rimanga invariato, assicurando che il software non abbia manomesso i dati di avvio importanti.<\/span><\/li>\n<li><b><span data-contrast=\"none\">Modifiche alla configurazione del sistema:<\/span><\/b><span data-contrast=\"none\"> Prima e dopo aver apportato modifiche significative alla configurazione del sistema, lo script pu\u00f2 essere utilizzato per garantire l&#8217;integrit\u00e0 del file BootConfig.<\/span><\/li>\n<\/ul>\n<h2>Confronti<\/h2>\n<p>Sebbene esistano strumenti e software di terze parti che offrono funzionalit\u00e0 di monitoraggio del sistema, il vantaggio dello script per monitorare le modifiche al file BootConfig risiede nella sua semplicit\u00e0 e specificit\u00e0. \u00c8 leggero, facile da distribuire e si concentra esclusivamente sul file BootConfig, garantendo un controllo mirato ed efficiente.<\/p>\n<h2><b><span data-contrast=\"none\">Domande frequenti<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" 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;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">D:<\/span><\/b><span data-contrast=\"none\"> Questo script pu\u00f2 essere eseguito su versioni precedenti di Windows?<\/span><br \/>\n<span data-contrast=\"none\">R: Lo script supporta Windows 10 e Windows Server 2016 e versioni successive.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" 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;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">D:<\/span><\/b><span data-contrast=\"none\"> Cosa succede se il file BootConfig \u00e8 invariato?<\/span><br \/>\n<span data-contrast=\"none\">R: Lo script esce semplicemente senza avvisi, indicando che non ci sono state modifiche dall&#8217;ultima esecuzione.<\/span><\/li>\n<\/ul>\n<h2>Implicazioni per la sicurezza<\/h2>\n<p>Il rilevamento delle modifiche nel file BootConfig non riguarda solo la stabilit\u00e0 del sistema, ma anche la sicurezza. Le modifiche non autorizzate potrebbero indicare una potenziale violazione o un&#8217;attivit\u00e0 di malware. Monitorando questo file, i professionisti IT possono adottare una posizione proattiva contro le potenziali minacce.<\/p>\n<h2><span class=\"TextRun MacChromeBold SCXW29966334 BCX0\" lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW29966334 BCX0\">Raccomandazioni<\/span><\/span><span class=\"EOP SCXW29966334 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<ul>\n<li><span data-contrast=\"none\">Esegui sempre lo script per monitorare le modifiche al file BootConfig con i privilegi di amministratore per garantire risultati accurati.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"none\">Pianifica l&#8217;esecuzione dello script a intervalli regolari per un monitoraggio continuo.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"none\">Mantieni backup del file BootConfig per ripristinarlo rapidamente in caso di modifiche non autorizzate.<\/span><\/li>\n<\/ul>\n<h2>Considerazioni finali<\/h2>\n<p><span class=\"NormalTextRun SCXW108639527 BCX0\">Nel campo della sicurezza IT e della gestione dei sistemi, strumenti come<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW108639527 BCX0\">NinjaOne<\/span> <span class=\"NormalTextRun SCXW108639527 BCX0\">offrono soluzioni complete per diverse sfide. Il monitoraggio dei file di sistema critici, come il file<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW108639527 BCX0\">BootConfig<\/span> <span class=\"NormalTextRun SCXW108639527 BCX0\">di Windows, \u00e8 una prova dell&#8217;importanza della gestione proattiva del sistema. Con script come quello per monitorare le modifiche al file BootConfig, i professionisti IT possono garantire l&#8217;integrit\u00e0 del sistema, rafforzare la sicurezza e<\/span> <span class=\"NormalTextRun SCXW108639527 BCX0\">mantenere<\/span> <span class=\"NormalTextRun SCXW108639527 BCX0\">l\u2019efficienza operativa<\/span>.<\/p>\n<p><span data-contrast=\"none\">Ecco alcune risorse aggiuntive che potrebbero esserti utili:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:360,&quot;335559739&quot;:360,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" 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;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Il file BootConfig in Windows:<\/span> <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows-server\/administration\/windows-commands\/bcdedit\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">https:\/\/docs.microsoft.com\/en-us\/windows-server\/administration\/windows-commands\/bcdedit<\/span><\/a><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" 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;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"none\">Tutorial sugli script di PowerShell:<\/span> <a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/scripting\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">https:\/\/docs.microsoft.com\/en-us\/powershell\/scripting\/<\/span><\/a><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n","protected":false},"author":35,"featured_media":207059,"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":[4269],"class_list":["post-208125","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-configurazione-generale"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub\/208125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=208125"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media\/207059"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=208125"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/operating_system?post=208125"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/use_cases?post=208125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}