Cómo borrar de forma segura un disco duro con PowerShell en Windows

En el momento que estamos viviendo en materia de seguridad de los datos, borrar los datos de un disco duro de forma correcta es fundamental. Para los profesionales de TI y los proveedores de servicios gestionados (MSP), disponer de herramientas fiables para estas tareas es esencial. En este post, veremos en detalle un versátil script PowerShell, diseñado para borrar los datos de un disco duro de forma segura y eficaz. Tambiénte proporcionaremo sconsejos esenciales para garantizar el éxito de la ejecución y la eliminación de los datos.

El poder de PowerShell para la gestión de discos

PowerShell, el potente lenguaje de scripting de Microsoft, ofrece amplias posibilidades para gestionar y proteger datos. Gracias a sus sólidas funcionalidades, como la capacidad de formatear discos y borrar unidades de disco duro, PowerShellse convierteen una herramienta inestimable para cualquiera que se ocupe de tareas frecuentes de gestión de datos.

Descubrir el potencial del script PowerShell para borrar los datos de un disco duro de forma remota

El script PowerShell en cuestión está diseñado para ejecutar un borrado remoto en un dispositivo. Es capaz de ejecutar varios métodos, cada uno de los cuales proporciona distintos niveles de eliminación de datos y restablecimiento del sistema para adaptarse a los diferentes requisitos de seguridad de los datos.

Pero ¿cómo puedes estar seguro de que este script se ejecuta correctamente y de que todos los datos se borran con éxito del disco duro? Aquí tienes algunos consejos:

  1. Comprueba la compatibilidad: asegúrate de que el sistema de destino es compatible con el método elegido. Por ejemplo, los métodos «WipeProtected» y «WipePersistUserData» solo son compatibles con determinadas versiones de compilación de Windows 10 o superiores.
  1. Verifica el nombre del ordenador: el parámetro ComputerName debe coincidir con el nombre del ordenador en el que se ejecuta el script. Si no coincide, el script saldrá sin realizar ningún cambio. El interruptor ComputerNameBypass se puede utilizar para excluir esta opción.
  1. Prueba antes de la implantación: prueba siempre el script en un entorno controlado antes de desplegarlo en un entorno de producción. Esto ayuda a identificar y rectificar cualquier problema antes de que afecte a los sistemas críticos.
  1. Supervisa la ejecución del script: vigila la ejecución del script. Presta atención a los errores o excepciones lanzados por el script. Estos mensajes pueden aportar información valiosa sobre cualquier problema que pueda surgir.
  1. Comprueba que se hayan borrado los datos: una vez ejecutado el script, comprueba que los datos se hayan borrado correctamente. Puedes hacerlo intentando recuperar datos de la unidad. Si la recuperación es imposible, el borrado de datos puede considerarse un éxito.
  1. Documenta el proceso: lleva un registro de todo el proceso, desde la ejecución inicial del script hasta la verificación del borrado de datos. Esta documentación puede ser un recurso valioso para futuras referencias o en caso de auditorías.

El script: borrar datos de un dispositivo Windows de forma remota

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

 


Accede a más de 700 scripts en el Dojo de NinjaOne Accede aquí

Los scripts de PowerShell, como el que se analiza en esta entrada del blog, pueden ser potentes herramientas para los profesionales de TI y los MSP, proporcionando eficacia y una sólida seguridad de los datos. Teniendo una comprensión clara del script y siguiendo estos consejos, puedes garantizar el éxito de la ejecución y el borrado seguro de datos. En el ámbito de la gestión de datos, disponer de herramientas y conocimientos tan fiables tiene un valor incalculable.  Puede que te estés preguntando: «¿Y para borrar los datos de un disco duro de Mac?». También tenemos respuesta a esto. Échale un vistazo a esta entrada: «Cómo borrar un disco duro en Mac con un script de bash».

Cómo puede ayudar NinjaOne

Para las organizaciones que buscan llevar la seguridad de sus datos y la gestión de TI al siguiente nivel, la integración de una solución como NinjaOne puede marcar una diferencia significativa. Aunque los scripts de PowerShell son potentes para tareas como la limpieza de discos, gestionarlos en gran número de dispositivos puede resultar engorroso. NinjaOne simplifica todo esto ofreciendo capacidades centralizadas de despliegue y automatización de scripts. Puedes desplegar los scripts PowerShell para borrar datos de forma remota en varios dispositivos, todo desde un único panel de control.

Además, NinjaOne ofrece informes y análisis avanzados para que puedas verificar fácilmente el éxito de las operaciones de borrado de datos y mantener registros de cumplimiento. En caso de que el script se encuentre con problemas o excepciones, el monitoreo en tiempo real de NinjaOne te alertará, permitiendo una rápida intervención. Esto minimiza los riesgos y garantiza que el proceso de eliminación de datos sea exhaustivo y seguro.

Por lo tanto, si eres un profesional de TI o un proveedor de servicios gestionados, la integración de NinjaOne en tu gestión de datos y prácticas de seguridad puede ofrecer una capa adicional de eficiencia y fiabilidad. No se trata sólo de ejecutar un script; se trata de gestionarlo eficazmente en toda la organización, y NinjaOne puede ayudarte a hacerlo. Mira una demostración y descubre por qué NinjaOne ha sido votado como el software de gestión de endpoints n.º 1 en G2 Crowd.

Categorías:

Quizá también te interese…

×

¡Vean a NinjaOne en acción!

Al enviar este formulario, acepto la política de privacidad de NinjaOne.

Términos y condiciones de NinjaOne

Al hacer clic en el botón “Acepto” que aparece a continuación, estás aceptando los siguientes términos legales, así como nuestras Condiciones de uso:

  • Derechos de propiedad: NinjaOne posee y seguirá poseyendo todos los derechos, títulos e intereses sobre el script (incluidos los derechos de autor). NinjaOne concede al usuario una licencia limitada para utilizar el script de acuerdo con estos términos legales.
  • Limitación de uso: solo podrás utilizar el script para tus legítimos fines personales o comerciales internos, y no podrás compartirlo con terceros.
  • Prohibición de republicación: bajo ninguna circunstancia está permitido volver a publicar el script en ninguna biblioteca de scripts que pertenezca o esté bajo el control de cualquier otro proveedor de software.
  • Exclusión de garantía: el script se proporciona “tal cual” y “según disponibilidad”, sin garantía de ningún tipo. NinjaOne no promete ni garantiza que el script esté libre de defectos o que satisfaga las necesidades o expectativas específicas del usuario.
  • Asunción de riesgos: el uso que el usuario haga del script corre por su cuenta y riesgo. El usuario reconoce que existen ciertos riesgos inherentes al uso del script, y entiende y asume cada uno de esos riesgos.
  • Renuncia y exención: el usuario no hará responsable a NinjaOne de cualquier consecuencia adversa o no deseada que resulte del uso del script y renuncia a cualquier derecho o recurso legal o equitativo que pueda tener contra NinjaOne en relación con su uso del script.
  • CLUF: si el usuario es cliente de NinjaOne, su uso del script está sujeto al Contrato de Licencia para el Usuario Final (CLUF).