Come cancellare dati da un disco rigido con Powershell, in modo sicuro, in ambiente Windows

Nel momento che stiamo vivendo dal punto di vista della sicurezza dei dati, cancellare dati da un disco rigido in modo corretto è fondamentale. Per i professionisti IT e i fornitori di servizi gestiti (MSP), disporre di strumenti affidabili per queste attività è essenziale. In questo post sul blog, andremo a vedere nel dettaglio un versatile script PowerShell progettato per cancellare dati da un disco rigido in modo sicuro ed efficiente. E andremo anche a fornire suggerimenti essenziali per garantire il successo dell’esecuzione dello script e della rimozione dei dati.

La potenza di PowerShell per la gestione dei dischi

PowerShell, il potente linguaggio di scripting di Microsoft, offre importanti capacità di gestione e protezione dei dati. Grazie alle sue consolidate funzionalità, come la possibilità di formattare un’unità e di cancellare dati da un disco rigido, PowerShell diventa uno strumento prezioso per chiunque abbia a che fare con frequenti attività di gestione dei dati.

Sfruttare il potenziale dello script PowerShell per cancellare dati da un disco rigido da remoto

Lo script PowerShell di cui stiamo parlando è stato creato per cancellare dati da un disco rigido in modo definitivo, da remoto, su un dispositivo. È in grado di agire in diverse modalità, ognuna delle quali offre un livello diverso di eliminazione dei dati e di ripristino del sistema, per soddisfare diversi requisiti di sicurezza dei dati che hai bisogno di cancellare da un disco.

Ma come puoi essere sicuro che questo script venga eseguito correttamente e che quindi riesca a cancellare dati da un disco con successo? Ecco alcuni suggerimenti:

  1. Verifica la compatibilità: Assicurati che il sistema di destinazione sia compatibile con il metodo scelto. Ad esempio, i metodi “WipeProtected” e ” WipePersistUserData” sono supportati solo su build specifiche di Windows 10 o superiori.
  1. Verifica il nome del computer: Il parametro ComputerName deve corrispondere al nome del computer su cui viene eseguito lo script. In caso contrario, lo script verrà eseguito senza apportare alcuna modifica e quindi senza cancellare dati da un disco. Lo switch ComputerNameBypass può essere usato per escludere questa opzione.
  1. Testa prima della distribuzione: Testa sempre lo script in un ambiente controllato prima di distribuirlo in un ambiente di produzione e tentare di cancellare dati da un disco importante. Questo aiuta a identificare e correggere eventuali problemi prima che abbiano un impatto sui sistemi critici.
  1. Monitora l’esecuzione lo script: Tieni d’occhio l’esecuzione dello script. Fai attenzione a eventuali messaggi relativi a errori o eccezioni generati dallo script. Questi messaggi possono fornire indicazioni preziose su eventuali problemi che possono impedire allo script di cancellare dati da un disco.
  1. Verifica l’avvenuta cancellazione dei dati: Dopo l’esecuzione dello script, verifica che lo script sia riuscito a cancellare i dati da un disco con successo. Questo può essere fatto tentando di recuperare i dati dall’unità. Se il recupero è impossibile, puoi essere sicuro che lo script sia stato in grado di cancellare dati da un disco.
  1. Documenta il processo: Conserva una trascrizione dell’intero processo, dall’esecuzione dello script iniziale fino al momento in cui andrai a verificare che lo script sia riuscito a cancellare dati da un disco. Questa documentazione può essere una risorsa preziosa da usare come punto di riferimento in futuro o in caso di audit.

Lo script: Cancellare dati da un disco di un dispositivo Windows da remoto

 #Requires -Version 5.1

<#
.SYNOPSIS
    Remote Wipe a device.
.DESCRIPTION
    Remote Wipe a device via InvokeMethod from a Cim Session. doWipe, doWipeProtected, doWipePersistUserData, and doWipePersistProvisionedData are supported.
    See examples for how to use each.
.EXAMPLE
    -Method Wipe -ComputerName "PC-001"
    Runs the doWipe method. Equivalent to running "Reset this PC > Remove everything" from the Settings app, with Clean Data set to No and Delete Files set to Yes.
    ComputerName needs to match the computer name of the computer the script is running on. If it doesn't then the script will exit, doing nothing.
.EXAMPLE
    -Method Wipe -ComputerNameBypass
    Runs the doWipe method. Equivalent to running "Reset this PC > Remove everything" from the Settings app, with Clean Data set to No and Delete Files set to Yes.
    Will bypass the computer name check and run regards less.
.EXAMPLE
    -Method WipeProtected -ComputerName "PC-001"
    Runs the doWipeProtected method. Performs a remote reset on the device and also fully cleans the internal drive.
    Windows 10 build version 1703 and above.
    ComputerName needs to match the computer name of the computer the script is running on. If it doesn't then the script will exit, doing nothing.
.EXAMPLE
    -Method WipePersistUserData
    Runs the doWipeProtected method. Equivalent to selecting "Reset this PC > Keep my files" when manually starting a reset from the Settings app.
    Windows 10 build version 1709 and above.
    ComputerName needs to match the computer name of the computer the script is running on. If it doesn't then the script will exit, doing nothing.
.EXAMPLE
    -Method WipePersistProvisionedData
    Runs the doWipeProtected method. Provisioning packages in the %SystemDrive%ProgramDataMicrosoftProvisioning folder will be retained and then applied to the OS after the reset.
    The information that was backed up will be restored and applied to the device when it resumes.
    ComputerName needs to match the computer name of the computer the script is running on. If it doesn't then the script will exit, doing nothing.
.NOTES
    Reference: https://docs.microsoft.com/en-us/windows/client-management/mdm/remotewipe-csp
    Release Notes:
    Initial Release
By 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.
    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. 
    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. 
    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. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, 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. 
    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. 
    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. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#>

[CmdletBinding()]
param (
    [Parameter(Mandatory = $true)]
    [ValidateSet("Wipe", "WipeProtected", "WipePersistProvisionedData", "WipePersistUserData")]
    [String]
    $Method,
    [Parameter()]
    [String]
    $ComputerName,
    [Parameter()]
    [switch]
    $ComputerNameBypass
)

# ComputerNameBypass was used, continue on.
if ($PSBoundParameters.ContainsKey("ComputerNameBypass") -and $ComputerNameBypass) {
    Write-Host "Bypassing Computer Name check."
}
else {
    # If computer name matches, continue on.
    if ($ComputerName -notlike $env:COMPUTERNAME) {
        Write-Error "Computer Name does not match."
        exit 1
    }
}

# Check if the requested Method is supported or not
$BuildVersion = [System.Environment]::OSVersion.Version.Build
if ($BuildVersion -lt 1703 -and $Method -like "WipeProtected") {
    Write-Host "WipeProtected is only supported on Windows 10 build version 1703 and above."
    exit 1
}
if ($BuildVersion -lt 1709 -and $Method -like "WipePersistUserData") {
    Write-Host "WipePersistUserData is only supported on Windows 10 build version 1709 and above."
    exit 1
}

$session = New-CimSession

$params = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection
$param = [Microsoft.Management.Infrastructure.CimMethodParameter]::Create("param", "", "String", "In")
$params.Add($param)

$CimSplat = @{
    Namespace = "rootcimv2mdmdmmap"
    ClassName = "MDM_RemoteWipe"
    Filter    = "ParentID='./Vendor/MSFT' and InstanceID='RemoteWipe'"
}

try {
    $instance = Get-CimInstance @CimSplat
    $session.InvokeMethod($CimSplat["Namespace"], $instance, "do$($Method)Method", $params)
}
catch {
    Write-Error $_
    exit 1
}

 


Accedi a oltre 700 script nel Dojo di NinjaOne Ottieni l’accesso

Gli script PowerShell, come quello di cui parliamo in questo post sul blog, possono essere strumenti potenti per i professionisti IT e gli MSP, utili a migliorare l’efficienza e la sicurezza dei dati. Con una chiara comprensione dello script e seguendo questi suggerimenti, potrai essere sicuro della corretta esecuzione dello script e del fatto che sia riuscito a cancellare dati da un disco. Nel campo della gestione dei dati, disporre di strumenti e conoscenze così affidabili ha un valore inestimabile. 

A questo punto potresti chiederti, “E per cancellare dati da un disco in ambiente Mac?”, e possiamo aiutarti anche con questo. Dai un’occhiata al nostro post sul blog “Come cancellare dati da un disco in ambiente Mac con uno script Bash“.

Come NinjaOne può aiutare

Per le organizzazioni che desiderano portare la sicurezza dei dati e la gestione IT a un livello superiore, l’integrazione di una soluzione come NinjaOne può rappresentare una differenza significativa. Sebbene gli script PowerShell siano già di per sé potenti per attività come quella di cancellare dati da un disco rigido, la gestione di questi script su un gran numero di dispositivi può risultare complessa. NinjaOne semplifica questo aspetto offrendo funzionalità centralizzate di distribuzione e automazione degli script. È possibile distribuire gli script PowerShell per cancellare dati da un disco rigido da remoto su più dispositivi, il tutto da un’unica dashboard.

Inoltre, NinjaOne offre reportistica e analisi avanzate, permettendoti di verificare facilmente il successo delle operazioni di cancellazione dei dati e di mantenere i record di conformità. Nel caso in cui lo script incontri problemi a cancellare dati da un disco o eccezioni, il monitoraggio in tempo reale di NinjaOne ti avviserà, consentendoti di intervenire rapidamente. Questo riduce al minimo i rischi e garantisce che il processo di rimozione dei dati sia completo e sicuro.

Quindi, che tu sia un professionista IT o un fornitore di servizi gestiti, l’integrazione di NinjaOne nelle tue pratiche di gestione e sicurezza dei dati ti può offrire un ulteriore livello di efficienza e affidabilità. Non si tratta solo di eseguire uno script, ma di gestirlo efficacemente in tutta l’organizzazione, e NinjaOne può aiutarti a farlo. Guarda una demo per capire perché NinjaOne è stato votato come il software di gestione degli endpoint numero 1 su G2 Crowd.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più su NinjaOne Endpoint Management, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

Guarda una demo×
×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.