/
/

Come creare script di correzione personalizzati e utilizzarli con uno strumento RMM, per correggere automaticamente i problemi di DNS, patching e BitLocker

di Francis Sevilleja, IT Technical Writer   |  
translated by Sergio Oricci
Come creare script di correzione personalizzati e utilizzarli con uno strumento RMM, per correggere automaticamente i problemi di DNS, patching e BitLocker Immagine del banner del blog

I malfunzionamenti legati ai DNS, le patch di Windows non riuscite e le configurazioni errate di BitLocker possono indebolire la sicurezza di un ambiente. L’automazione della risoluzione di questi problemi mediante script migliora il tempo medio di correzione (MTTR), riducendo la frequenza dei ticket di assistenza e la durata dei tempi di inattività. Questa guida illustra gli script di correzione che gli amministratori possono distribuire attraverso un software di gestione e monitoraggio da remoto (RMM) per risolvere i problemi.

Script di correzione per risolvere i problemi relativi a DNS, patch e BitLocker

L’uso di una piattaforma RMM per distribuire gli script riduce al minimo la necessità di correzioni manuali e ripetute, consentendo agli amministratori di gestire automaticamente gli endpoint a livello centrale. Questo li aiuta a garantire una fornitura di servizi più rapida e una risoluzione immediata dei problemi, e a mantenere gli endpoint conformi.

📌 Prerequisiti:

  • Accesso a una piattaforma RMM.
  • PowerShell 5.1 o versioni successive sugli endpoint di destinazione.
  • Accesso a un account amministrazione.
  • Funzioni BitLocker e Windows Update installate.
  • Accesso ai Criteri di gruppo per la distribuzione centralizzata.

📌 Strategie di implementazione consigliate:

Scegli un metodo💻

Più adatto per utenti individuali

💻💻💻

Più adatto per ambienti enterprise

Metodo 1: Utilizzo di script PowerShell per la risoluzione automatica dei problemi DNS
Metodo 2: Sfruttare i comandi batch per la correzione DNS tramite CMD
Metodo 3: Script PowerShell per risolvere i problemi di patching
Metodo 4: Esecuzione di comandi batch su CMD per la risoluzione dei problemi di aggiornamento
Metodo 5: Ripristino di BitLocker tramite script di correzione PowerShell
Metodo 6: Utilizzo del registro di sistema per i criteri relativi a DNS, patch o BitLocker
Metodo 7: Utilizzo di GPO per la distribuzione centralizzata degli script di correzione

💡 Nota: Gli script di questa guida funzionano per le piattaforme RMM che offrono la distribuzione remota di PowerShell e di script batch. Per semplicità, utilizzeremo NinjeOne RMM come strumento di distribuzione per i nostri script di correzione.

⚠️ Importante: Esegui le seguenti operazioni per i metodi 1-6 prima di procedere:

La piattaforma RMM di NinjaOne supporta i linguaggi JavaScript, PowerShell, Batch, ShellScript e VBS Script. Ecco come puoi caricare script personalizzati all’interno della libreria di script di NinjaOne:

  1. Apri NinjaOne RMM, quindi vai su:

Amministrazione > Libreria > Automazione.

  1. All’interno di Automazione, premi Aggiungi e seleziona Nuovo script.
  2. Compila i campi e inserisci i parametri necessari per lo script personalizzato.
  3. Inserisci gli script forniti in questa guida per salvarli come script di automazione.
    • Assicurati che il linguaggio selezionato corrisponda al linguaggio dello script.
  4. Dopo aver salvato gli script, potrai utilizzare gli strumenti integrati di NinjaOne per selezionare i dispositivi di destinazione per l’automazione, spuntando la casella accanto ad essi.

Metodo 1: Utilizzo di script PowerShell per la risoluzione automatica dei problemi DNS

📌 Casi d’uso: Sfrutta gli script PowerShell per eseguire il flush del DNS, sostituendo i record dei nomi di dominio e degli indirizzi IP con quelli nuovi. Gli amministratori possono anche usare PowerShell per riavviare il servizio client DNS e ristabilire la connessione con i server DNS.

⚠️ Importante: I riavvii DNS si applicano solo temporaneamente in un ambiente unito al dominio con configurazioni DNS tramite GPO. (Fai riferimento alla sezione ⚠️ Cose da tenere d’occhio. )

Script di correzione per svuotare la cache DNS:

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("8.8.8.8","8.8.4.4")
Clear-DnsClientCache

💡 Nota: Non tutti i dispositivi utilizzano “Ethernet” come nome predefinito della scheda di rete, il che può causare errori quando vengono distribuiti in blocco. Puoi utilizzare la corrispondenza dei caratteri jolly per le distribuzioni di script su dispositivi di destinazione con nomi di schede di rete diversi.

Get-NetAdapter | Where-Object { $_.Status -eq "Up" } | ForEach-Object {
Set-DnsClientServerAddress -InterfaceAlias $_.Name -ServerAddresses ("8.8.8.8", "8.8.4.4")
}
Clear-DnsClientCache

Script PowerShell per riavviare il servizio client DNS:

Gli amministratori possono ripristinare il client DNS all’interno di Services.msc, cancellando la cache DNS in memoria e reimpostando il resolver DNS.

Restart-Service -Name dnscache

Script per registrare i risultati dei test di risoluzione

Il seguente script verifica se la risoluzione DNS funziona, registrando gli errori nel log eventi di Windows in caso di fallimento.

$test = Test-Connection google.com -Count 2 -Quiet
if (-not $test) {
Write-EventLog -LogName Application -Source "DNSFix" -EventID 3001 -EntryType Warning -Message "DNS resolution failed after fix."
}

💡 Suggerimento: Gli amministratori possono pianificare questi script all’interno delle piattaforme RMM per la manutenzione regolare del DNS. Se il tuo RMM offre avvisi in tempo reale, puoi attivare automaticamente questi script di correzione DNS in base agli avvisi e ai log.

Metodo 2: Sfruttare i comandi batch per la correzione DNS tramite CMD

📌 Caso d’uso: Utilizza il seguente script batch per svuotare la cache DNS, riavviare il client, impostare un server e testare la correzione in un’unica soluzione.

Correzione dei problemi DNS di base mediante uno script batch:

@echo off
ipconfig /flushdns
net stop dnscache
net start dnscache
netsh interface ip set dns "Ethernet" static 8.8.8.8
if not exist C:\Logs mkdir C:\Logs
echo [%DATE% %TIME%] DNS test >> C:\Logs\dns_fix_result.txt
nslookup google.com >> C:\Logs\dns_fix_result.txt

⚠️ Importante: Un nome codificato come “Ethernet” può causare il fallimento dello script se non esiste una scheda corrispondente, poiché netsh richiede nomi esatti. (Fai riferimento alla sezione ⚠️ Cose da tenere d’occhio.)

Metodo 3: Script PowerShell per risolvere i problemi di patching

📌 Casi d’uso: Sfrutta gli script PowerShell per forzare gli aggiornamenti mancati, reimpostare i componenti di aggiornamento e registrare i risultati degli aggiornamenti per la diagnosi degli errori.

Per ricontrollare e installare in modo forzato gli aggiornamenti mancanti:

Questo script installa e importa innanzitutto il modulo PSWindowsUpdate, necessario per fornire agli amministratori un migliore controllo della gestione degli aggiornamenti. Successivamente, esegue la scansione e installa tutti gli aggiornamenti in sospeso, assicurando che i computer di destinazione siano aggiornati.

Install-Module PSWindowsUpdate -Force -AllowClobber
Import-Module PSWindowsUpdate
Get-WindowsUpdate -AcceptAll -Install -AutoReboot

Script PowerShell per ripristinare i componenti di Windows Update:

Il seguente script arresta il servizio di aggiornamento di Windows (wuauserv). Lo script elimina quindi la cartella SoftwareDistribution contenente gli aggiornamenti memorizzati nella cache e i file temporanei, che potrebbero potenzialmente causare corruzione o aggiornamenti bloccati. Usa questo script per risolvere gli errori di aggiornamento dopo un download danneggiato o per correggere scansioni di aggiornamento bloccate o lente.

Stop-Service wuauserv
Remove-Item -Path "C:\Windows\SoftwareDistribution" -Recurse -Force
Start-Service wuauserv

Per generare un riepilogo dei log dopo un aggiornamento tramite script:

Utilizza lo script seguente per raccogliere i dati diagnostici dopo l’aggiornamento e per aiutare a centralizzare il logging per facilitare il monitoraggio degli errori.

Get-WindowsUpdateLog -LogPath "C:\Logs\WindowsUpdateSummary.txt"

⚠️ Importante: Assicurati che C:\Logs esista prima di designarlo come percorso dei log. (Fai riferimento alla sezione ⚠️ Cose da tenere d’occhio. )

Metodo 4: Esecuzione di comandi batch su CMD per la risoluzione dei problemi di aggiornamento

📌 Caso d’uso: CMD può distribuire comandi batch che azzerano i componenti di aggiornamento e attivano una scansione.

Script batch per la correzione degli aggiornamenti di base:

Il seguente comando batch consente di reimpostare rapidamente i componenti di aggiornamento e di eseguire la scansione degli aggiornamenti in sospeso o mancanti. Tuttavia, a differenza del metodo 3, questo metodo tramite CMD non può installare automaticamente gli aggiornamenti e richiede l’installazione manuale tramite Windows Update.

@echo off
net stop wuauserv
rd /s /q C:\Windows\SoftwareDistribution
net start wuauserv
wuauclt /detectnow

💡 Tip: Imposta una condizione di criterio nel tuo RMM per attivare questo script quando l’ultimo aggiornamento installato supera un determinato numero di giorni. Ciò consente agli endpoint gestiti di eseguire automaticamente la scansione degli aggiornamenti in modo regolare e coerente.

Metodo 5: Ripristino di BitLocker tramite script di correzione PowerShell

Avere BitLocker disabilitato sugli endpoint rende un dispositivo non conforme e i suoi dati vulnerabili alle minacce. Garantire che la protezione BitLocker sia costantemente abilitata su tutti gli endpoint gestiti aumenta quindi la sicurezza di un’organizzazione.

📌 Casi d’uso: Gli amministratori possono utilizzare gli script sul proprio RMM per verificare lo stato di BitLocker, effettuare il backup delle chiavi di ripristino, controllare lo stato della crittografia e registrare i dati in un log.

📌 Prerequisiti: Dispositivi con Trusted Platform Module (TPM)

Script per controllare se BitLocker è abilitato e abilitarlo se necessario:

Questo script PowerShell consente agli amministratori di recuperare l’oggetto volume BitLocker da un’unità specifica, per esempio C:. Inoltre, lo script abilita automaticamente BitLocker se è disattivato senza richiedere l’interazione dell’utente finale.

$bitlocker = Get-BitLockerVolume -MountPoint "C:"
if ($bitlocker.ProtectionStatus -eq "Off") {
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector
}

💡 NOTA: -TpmProtector richiede un TPM disponibile e pronto sul dispositivo di destinazione. L’applicazione di questo metodo su dispositivi privi di TPM causerà un errore.

Per esportare la chiave di ripristino del backup nel domain controller o localmente:

Lo script seguente cerca il Recovery Password protector su un volume BitLocker specificato. Successivamente, lo script esegue il backup della chiave di ripristino sul domain controller o sullo spazio di archiviazione predefinito. Ciò garantisce il ripristino di BitLocker in caso di reimpostazione del TPM o di corruzione del sistema operativo.

Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId (
$bitlocker.KeyProtector | Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' }
).KeyProtectorId

Per verificare e registrare lo stato della crittografia BitLocker:

Gli amministratori possono utilizzare lo script seguente per creare un semplice record di registro come prova locale dello stato di crittografia di un dispositivo.

$bitlocker | Select-Object MountPoint, VolumeType, ProtectionStatus, EncryptionPercentage | Out-File "C:\Logs\bitlocker_status.txt"

💡 Suggerimento: Gli amministratori possono assegnare a questo script l’esecuzione automatica in base alla pianificazione o in base a quando lo stato di protezione di BitLocker viene rilevato come disattivato.

Metodo 6: Utilizzo del registro per i criteri relativi a DNS, patch o BitLocker

Il registro di sistema contiene valori che gli amministratori possono configurare per sostituire i server DNS errati, disabilitare i rinvii di Windows Update e forzare l’abilitazione di BitLocker sui dispositivi privi di TPM.

⚠️ Attenzione: Le configurazioni errate nel registro di sistema possono compromettere la stabilità del sistema, introducendo problemi anche di avvio e un significativo rallentamento delle prestazioni. (Fai riferimento alla sezione ⚠️ Cose da tenere d’occhio.)

📌 Casi d’uso: Sfrutta gli script PowerShell per automatizzare le configurazioni del registro e distribuirle in modo coerente sugli endpoint utilizzando una piattaforma RMM.

Per assegnare un nuovo server DNS utilizzando uno script PowerShell:

Questo script assegna un server DNS statico a livello di sistema, sovrascrivendo qualsiasi configurazione DNS automatica. In questo modo si forza il sistema a utilizzare il DNS specificato nel registro; tuttavia, le impostazioni DNS effettuate tramite GPO avranno la precedenza su questa modifica.

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "NameServer" -Value "8.8.8.8"

Per disabilitare i rinvii di Windows Update (se il patching è bloccato):

Puoi abilitare gli aggiornamenti automatici nel Registro di sistema impostando il valore DWORD NoAutoUpdate su 0. Utilizza questo script negli ambienti in cui il patching è bloccato a causa di una configurazione errata o è disabilitato per impostazione predefinita.

New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 0 -Type DWord

Per abilitare BitLocker utilizzando uno script che modifica il registro di sistema:

Questo script abilita BitLocker sui dispositivi, anche quelli più vecchi privi di TPM, fornendo una crittografia coerente in tutto l’ambiente.

New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\FVE" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\FVE" -Name "EnableBDEWithNoTPM" -Value 1 -Type DWord

💡 Nota: Sebbene tu possa abilitare BitLocker su dispositivi privi di TPM, dovrai disporre di protezioni alternative come password di avvio e chiavi USB.

Metodo 7: Utilizza i GPO per la distribuzione centralizzata degli script di correzione

📌 Casi d’uso: Gli amministratori possono distribuire un GPO per configurare le assegnazioni dei server DNS, l’installazione di Windows Update e le configurazioni di BitLocker a livello centrale utilizzando degli script.

📌 Prerequisiti:

⚠️ Importante: Testa le configurazioni a livello locale prima di distribuirle in un intero ambiente. (Fai riferimento alla sezione ⚠️ Cose da tenere d’occhio.)

  1. Premi la combinazione di tasti Win + R, digita Notepad e premi Invio.
  2. Scegli lo script appropriato in questa guida per risolvere i problemi relativi a DNS, patch o BitLocker.
  3. Incolla lo script nel Blocco note, premi la combinazione di tastiCtrl + Maiusc + S, dai un nome al fine e aggiungi l’estensione.
    • Utilizza l’estensione .ps1 se si tratta di uno script PowerShell (per esempio DNS-powershell.ps1).
    • Utilizza invece l’estensione .bat se si tratta di uno script batch (per esempio patching-batch.BAT).
  4. Apri il menu a tendina accanto a Salva come tipo, quindi seleziona Tutti i file.
  5. Apri la Console di gestione dei Criteri di gruppo.
  6. Individua e cicca con il tasto destro del mouse sull’OU di destinazione, quindi scegli Crea un GPO in questo dominio e collegalo qui…
  7. Clicca con il pulsante destro del mouse sul GPO appena creato e scegli Modifica.
  8. Vai a:

Configurazione del computer > Criteri > Impostazioni di Windows > Script (avvio/arresto)

  1. Clicca due volte su Avvio, quindi su Aggiungi, e infine sfoglia e seleziona lo script dall’unità di condivisione di rete.
  2. Inoltre, se stai utilizzando script .ps1, vai al seguente percorso:

Configurazione del computer > Criteri > Modelli amministrativi > Sistema > Script

  1. Imposta il criterio Specifica esecuzione script di avvio su Consenti tutti gli script.

💡 Suggerimento: Puoi distribuire il seguente script PowerShell agli endpoint di destinazione per applicare immediatamente le configurazioni:

gpupdate /force

⚠️ Cose da tenere d’occhio

RischiPotenziali conseguenzePossibilità di tornare alla configurazione precedente
Applicazione di configurazioni personalizzate sui dispositivi gestiti da GPOI GPO sovrascrivono le modifiche alle configurazioni applicate dopo un aggiornamento pianificato dei criteri.È buona norma eseguire lo script solo sulle impostazioni non applicate da GPO, a meno che tu non voglia sovrascriverle temporaneamente.
Le schede di rete non sono denominate “Ethernet” per impostazione predefinita.Alcuni script codificano i nomi delle schede di rete come Ethernet; tuttavia, questo nome non è quello predefinito per tutte le schede, e un nome diverso può causare il fallimento dello script.Puoi rinominare le schede adattatori di rete nell’ambiente e utilizzare un nome coerente, per migliorare l’efficacia degli script codificati.
C:\Logs non esiste come percorso dei log, e tu lo hai impostato come tale nei tuoi script.Se non crei la directory C:\Logs prima di designarla come percorso dei log, verrà generato un errore.Crea la cartella di destinazione e assicurati che esista nel percorso specificato prima di assegnarla come percorso di log.
Configurazioni errate nel registro di sistemaUn’errata configurazione del Registro di sistema può causare instabilità del sistema e rallentamento delle prestazioni.Crea un backup del Registro di Windows prima di procedere, per garantire un facile ripristino in caso di errate configurazioni accidentali.
Distribuzione di script non testati in un ambienteNon tutti gli ambienti sono identici, quindi gli script possono comportarsi in modo diverso nei vari sistemi gestiti.Testa le configurazioni a livello locale per convalidarne l’efficacia prima di distribuirle in un ambiente.

Considerazioni chiave quando si utilizzano gli script di correzione tramite RMM

In questa sezione vengono illustrate le considerazioni principali da tenere a mente quando si utilizzano gli script per risolvere problemi relativi a DNS, patch e BitLocker.

Considerazioni sulla sicurezza

Quando utilizzi BitLocker, archivia le chiavi di ripristino all’interno di una Active Directory e segui le pratiche di archiviazione minima in locale. Inoltre, l’imposizione di server DNS pubblici come 8.8.8.8 è ideale solo per un uso generale, ma non dovrebbe essere utilizzata in ambienti con particolari necessità di conformità.

Logging per audit e facilità di rollback

I log registrano le configurazioni effettuate dagli script, annotando le modifiche in un file di log per facilitare la documentazione e la verifica. Un logging regolare delle modifiche aiuta a risolvere i problemi di configurazione e fornisce un riferimento a cui è facile accedere nel caso in cui sia necessario un rollback.

Suddivisione di script complessi in script brevi e modulari

Anche se può sembrare comodo combinare script che risolvono più problemi in una sola operazione, è buona norma separare gli script in altri più piccoli. In questo modo è possibile effettuare una correzione mirata, riducendo al minimo il rischio di un’errata configurazione accidentale delle funzionalità che permettono a un sistema di operare correttamente.

Risoluzione dei problemi più comuni durante la distribuzione degli script

Problema 1: Gli script non vengono eseguiti correttamente quando vengono distribuiti tramite RMM

Gli script potrebbero fallire a causa di autorizzazioni insufficienti dell’agente RMM. Assicurati che lo script venga eseguito come SISTEMA o con privilegi elevati, soprattutto quando si modificano chiavi e valori del registro.

Alcuni sistemi inoltre bloccano gli script non firmati, come quelli scaricati da fonti non attendibili. Puoi consentire temporaneamente l’esecuzione degli script nella sessione corrente aggiungendo il seguente comando agli script PowerShell:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

Problema 2: BitLocker non viene abilitato dopo l’esecuzione dello script

Prima di eseguire uno script, verifica lo stato del TPM del dispositivo di destinazione aprendo un prompt elevato di PowerShell e digitando Get-Tpm. Se il TPM è presente, verifica la presenza di GPO BitLocker applicati che potrebbero entrare in conflitto con la configurazione. Quando invece stai configurando dispositivi privi di TPM, puoi utilizzare gli script per abilitare BitLocker attraverso il registro.

Problema 3: Gli script di correzione delle patch falliscono silenziosamente dopo l’esecuzione

Per risolvere questo problema, assicurati che il dispositivo abbia accesso a Internet e possa raggiungere il server WSUS. Inoltre, verifica la presenza di GPO che potrebbero bloccare Windows Update, quindi riavvia l’Agente di Windows Update e attiva una scansione degli aggiornamenti.

Servizi NinjaOne per la distribuzione degli script di correzione sugli endpoint

Con NinjaOne, gli MSP possono rendere operativa e scalare la correzione automatica con piena trasparenza e controllo. Di seguito sono riportati i servizi che puoi utilizzare per semplificare la distribuzione degli script di correzione per i problemi relativi a DNS, patch e BitLocker.

Servizio NinjaOneDefinizioneCome aiuta la distribuzione degli script
Attività pianificate da criteriNinjaOne supporta la pianificazione delle attività, consentendo l’esecuzione automatica degli script entro intervalli di tempo specificati.Gli amministratori possono pianificare la distribuzione di script relativi a DNS, di patching e di correzione BitLocker per la manutenzione periodica.
Risposta automatizzata agli avvisiI trigger basati sugli avvisi consentono all’RMM di eseguire azioni di correzione ogni volta che un avviso specifico viene visualizzato su un endpoint.Distribuisci automaticamente gli script di correzione dopo l’attivazione di un avviso, riducendo la necessità di interventi manuali e l’MTTR.
Distribuzione sulla base di modelliLa distribuzione sulla base di modelli aiuta gli amministratori a intervenire su gruppi di dispositivi specifici, evitando l’applicazione errata degli script su dispositivi incompatibili.Gli amministratori possono assegnare uno script BitLocker specializzato per i dispositivi privi di TPM, e applicare gli script standard per i dispositivi con TPM.
Visibilità dell’inventarioL’inventario completo di NinjaOne fornisce una visione dettagliata degli endpoint, il tutto all’interno del dashboard della piattaforma.Visualizza le impostazioni DNS, la cronologia di Windows Update e lo stato di BitLocker per semplificare la diagnostica e migliorare i tempi di risposta.

Correggere i problemi su larga scala distribuendo gli script attraverso un RMM

L’automazione di script personalizzati tramite una piattaforma RMM consente di risolvere, in modo coerente e anche su larga scala, i problemi DNS e di patching, e le errate configurazioni di BitLocker. Puoi utilizzare gli script modulari forniti per la risoluzione mirata di problemi specifici o combinarli per un’implementazione più ampia. Distribuisci gli script tramite uno strumento RMM, per esempio NinjaOne, per consentire attivazioni basate su avvisi e pianificazione degli script, automatizzando la risoluzione dei problemi, la distribuzione degli script e l’auditing.

Argomenti correlati:

You might also like

Pronto a semplificare le parti più complesse dell'IT?