如何使用 Powershell 安全地擦除驱动器?

如何使用 Powershell 安全地擦除驱动器?

Powershell 是否有内置的安全擦除磁盘的方法?安全擦除是指将随机数据或全零写入整个磁盘。磁盘是指整个物理磁盘,而不是单个文件、已安装的卷或文件系统。

我发现清除磁盘,但这似乎只是从分区表中删除卷信息。

我知道有第三方实用程序,还有微软自己的diskpart 清理可以达到目的,甚至可以掉进Windows 上的 Linux并使用shred 或 dd让数据安静下来……

但可以纯正的 Powershell做到了吗?(无需借助复杂的脚本或外部库调用)

答案1

您可以在 PowerShell 中执行以下几项操作:有效地保护磁盘上的数据,具体取决于您是需要擦除/处理/回收驱动器。遗憾的是,没有简单的Erase-Disk -Securecmdlet。

ATA“安全擦除”和“消毒”命令可以发送到存储设备控制器,通常是快速安全地擦除整个磁盘的最佳技术选择。但是,除非您在 WinPE 环境中运行,否则 Microsoft 的 AHCI 驱动程序会阻止这些命令。在正常 Windows 安装中运行的任何软件都无法传递 ATA 命令。https://docs.microsoft.com/en-us/windows-hardware/drivers/storage/security-group-commands

您可能可以构建一个运行 powershell 脚本来发送 ATA 命令的 WinPE 环境,但您不妨使用可启动 dban 映像。

您可以在 Windows 中使用 PowerShell 自动执行的解决方案是 BitLocker。通过 GUI 或 PowerShell 命令 BitLocker 加密已使用的磁盘空间或所有磁盘空间,加密后,如果没有 BitLocker 密钥,您的数据将无法恢复。

https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-device-encryption-overview-windows-10

您还可以尝试 Windows 10 的“回收”模式内置重置功能,该功能可以安全擦除板载存储。我找不到有关自动执行此过程的文档,只看到提及systemreset -cleanpc。如果有人能找到有关自动执行此过程的文档,我会更新我的答案。

答案2

删除
我用了sdelete 实用程序(可从 Microsoft 免费下载)。
当我输入以下答案时,此命令正在清理我的 D: 驱动器(非 SSD)上的可用空间:

sdelete -c D:

可以在 Powershell 中下载并解压。但是我发现sdelete随身携带很重要(例如删除敏感的备份文件),并建议在任何工作站上安装它。

另请注意-c选项仅清理可用空间

正确擦除 SSD(可能会回收未分配的空间以减少磨损)作为驱动器D:......

  1. 分配整个磁盘(无未分配空间)
  2. sdelete -c D:(清除可用空间)
  3. sdelete -s D:\*(递归删除所有文件)

当然,仅删除敏感文件比删除整个 SSD(非安全地删除敏感文件后)要容易得多。

相关内容