Comment effacer en toute sécurité un disque dur Windows avec PowerShell

À l’ère de la sécurité des données, l’élimination correcte des données contenues dans les disques durs est cruciale. Pour les professionnels de l’informatique et les fournisseurs de services gérés (MSP), il est essentiel de disposer d’outils fiables pour ces tâches. Dans cet article, nous allons plonger dans les détails d’un script PowerShell polyvalent conçu pour un nettoyage sécurisé et efficace des disques. Nous également fournir des conseils essentiels pour garantir la réussite de l’exécution et de la suppression des données.

La puissance de PowerShell pour la gestion des disques

PowerShell, le puissant langage de script de Microsoft, offre de vastes possibilités pour gérer et sécuriser les données. Grâce à ses fonctionnalités robustes, telles que la possibilité de formater les disques et d’effacer les disques durs, PowerShell devient un outil inestimable pour tous ceux qui sont confrontés à des tâches fréquentes de gestion des données.

Exploiter le potentiel du script PowerShell pour l’effacement à distance

Le script PowerShell dont il est question ici est conçu pour exécuter un nettoyage à distance sur un appareil. Il est capable d’exécuter plusieurs méthodes, chacune offrant différents niveaux de suppression des données et de réinitialisation du système afin de répondre aux différentes exigences en matière de sécurité des données.

Mais comment s’assurer que ce script s’exécute correctement et que toutes les données sont bien effacées du disque dur ? Voici quelques conseils :

  1. Vérifiez la compatibilité : S’assurer que le système cible est compatible avec la méthode choisie. Par exemple, les méthodes “WipeProtected” et “WipePersistUserData” ne sont prises en charge que sur certaines versions de Windows 10 ou ultérieures.
  1. Vérifiez le nom de l’ordinateur : Le paramètre ComputerName doit correspondre au nom de l’ordinateur sur lequel le script s’exécute. Si ce n’est pas le cas, le script se termine sans apporter de modifications. Le commutateur ComputerNameBypass peut être utilisé pour outrepasser cela.
  1. Testez avant de déployer : Testez toujours le script dans un environnement contrôlé avant de le déployer dans un environnement de production. Cela permet d’identifier et de rectifier les problèmes avant qu’ils n’affectent les systèmes critiques.
  1. Surveillez l’exécution des scripts : Gardez un œil sur l’exécution du script. Prêtez attention à toute erreur ou exception déclenchée par le script. Ces messages peuvent donner des indications précieuses sur les problèmes éventuels.
  1. Vérifiez l’effacement des données : Après l’exécution du script, vérifiez que l’effacement des données a réussi. Pour ce faire, il faut tenter de récupérer les données du disque. Si la récupération est impossible, l’effacement des données peut être considéré comme réussi.
  1. Documentez le processus : Conservez un enregistrement de l’ensemble du processus, de l’exécution initiale du script à la vérification de l’effacement des données. Cette documentation peut constituer une ressource précieuse pour des références ultérieures ou en cas d’audit.

Le script : Effacement à distance d’un appareil Windows

 #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
}

 


Accédez à plus de 700 scripts dans le Dojo NinjaOne

Obtenez l’accès

Les scripts PowerShell, comme celui présenté dans cet article de blog, peuvent être des outils puissants pour les professionnels de l’informatique et les entreprises MSP, offrant une efficacité et une solide sécurité des données. En comprenant bien le script et en suivant ces conseils, vous pouvez garantir une exécution réussie et un effacement sécurisé des données. Dans le domaine de la gestion des données, disposer d’outils et de connaissances aussi fiables est inestimable. 

Vous vous demandez peut-être ce qu’il en est de l’effacement d’un disque dur de Mac ? Consultez notre article “Comment effacer un disque dur Mac avec un script Bash“.

Comment NinjaOne peut aider

Pour les entreprises qui souhaitent faire passer la sécurité des données et la gestion informatique au niveau supérieur, l’intégration d’une solution telle que NinjaOne peut faire une différence significative. Bien que les scripts PowerShell soient puissants pour des tâches telles que l’effacement de disque, la gestion de ces scripts sur un grand nombre d’appareils peut s’avérer fastidieuse. NinjaOne rationalise ce processus en offrant des capacités centralisées de déploiement et d’automatisation des scripts. Vous pouvez déployer vos scripts PowerShell pour effacer les données à distance sur plusieurs appareils, à partir d’un seul tableau de bord.

De plus, NinjaOne propose des rapports et des analyses avancés, ce qui vous permet de vérifier facilement le succès de vos opérations d’effacement de données et de maintenir les enregistrements de conformité. Si le script rencontre des problèmes ou des exceptions, la surveillance en temps réel de NinjaOne vous alertera, ce qui vous permettra d’intervenir rapidement. Cela minimise les risques et garantit que votre processus de suppression des données est complet et sécurisé.

Ainsi, que vous soyez un professionnel de l’informatique ou un fournisseur de services gérés (MSP), l’intégration de NinjaOne dans vos pratiques de gestion et de sécurité des données peut offrir un niveau supplémentaire d’efficacité et de fiabilité. Il ne s’agit pas seulement d’exécuter un script, mais de le gérer efficacement au sein de votre entreprise, et NinjaOne peut vous aider à le faire. Regardez une démo et découvrez pourquoi NinjaOne a été élu logiciel N°1 de gestion des terminaux sur G2 Crowd.

Pour aller plus loin

Pour créer une équipe informatique efficace et performante, il est essentiel d'avoir une solution centralisée qui joue le rôle de nœud principal pour vos services. NinjaOne permet aux équipes informatiques de surveiller, gérer, sécuriser et prendre en charge tous les appareils, où qu'ils soient, sans avoir besoin d'une infrastructure complexe sur site. Pour en savoir plus sur NinjaOne Endpoint Management, participez à une visite guidée, ou profitez d'un essai gratuit de la plateforme NinjaOne.

Catégories :

Vous pourriez aussi aimer

×

Voir NinjaOne en action !

En soumettant ce formulaire, j'accepte la politique de confidentialité de NinjaOne.

Termes et conditions NinjaOne

En cliquant sur le bouton “J’accepte” ci-dessous, vous indiquez que vous acceptez les termes juridiques suivants ainsi que nos conditions d’utilisation:

  • Droits de propriété: NinjaOne possède et continuera de posséder tous les droits, titres et intérêts relatifs au script (y compris les droits d’auteur). NinjaOne vous accorde une licence limitée pour l’utilisation du script conformément à ces conditions légales.
  • Limitation de l’utilisation: Les scripts ne peuvent être utilisés qu’à des fins personnelles ou professionnelles internes légitimes et ne peuvent être partagés avec d’autres entités.
  • Interdiction de publication: Vous n’êtes en aucun cas autorisé à publier le script dans une bibliothèque de scripts appartenant à, ou sous le contrôle d’un autre fournisseur de logiciels.
  • Clause de non-responsabilité: Le texte est fourni “tel quel” et “tel que disponible”, sans garantie d’aucune sorte. NinjaOne ne promet ni ne garantit que le script sera exempt de défauts ou qu’il répondra à vos besoins ou attentes particulières.
  • Acceptation des risques: L’utilisation du script est sous votre propre responsabilité. Vous reconnaissez qu’il existe certains risques inhérents à l’utilisation du script, et vous comprenez et assumez chacun de ces risques.
  • Renonciation et exonération de responsabilité: Vous ne tiendrez pas NinjaOne pour responsable des conséquences négatives ou involontaires résultant de votre utilisation du script, et vous renoncez à tout droit ou recours légal ou équitable que vous pourriez avoir contre NinjaOne en rapport avec votre utilisation du script.
  • EULA: Si vous êtes un client de NinjaOne, votre utilisation du script est soumise au contrat de licence d’utilisateur final qui vous est applicable (End User License Agreement (EULA)).