Powershell 是否有内置方法来安全擦除磁盘?通过安全擦除,我的意思是向整个磁盘写入随机数据或全零。磁盘是指整个物理磁盘,而不是单个文件、挂载的卷或文件系统。
我找到了Clear-Disk,但这似乎只是从分区表中擦除卷信息。
我知道那里有第三方实用程序,微软自己的diskpart clean可以做到这一点,而且,甚至可以在 Windows 上进入 Linux并使用shred 或 dd让数据小睡一下......
但是纯香草Powershell可以做到吗?(无需借助复杂的脚本或外部库调用)
您可以在 PowerShell 中执行一些操作来有效保护磁盘上的数据,具体取决于您擦除/处置/回收驱动器的需要。不幸的是,没有简单的
Erase-Disk -Secure
cmdlet。ATA“SECURE ERASE”和“SANITIZE”命令可以发送到存储设备控制器,通常是您快速安全地擦除整个磁盘的最佳技术选择。但是,除非您在 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。命令 BitLocker 通过 GUI 或 PowerShell 加密已用磁盘空间或所有磁盘空间,一旦加密,如果没有 BitLocker 密钥,您的数据将不可恢复。
https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-device-encryption-overview-windows-10
您还可以在“回收”模式下尝试 Windows 10 的内置重置功能,该功能可以安全擦除板载存储。我找不到有关自动化流程的文档,只看到
systemreset -cleanpc
提到。如果有人能找到关于自动化的文档,我会更新我的答案。