寻求外接硬盘备份前后自动挂载与卸载的定时脚本解决方案
寻求外接硬盘备份前后自动挂载与卸载的定时脚本解决方案
Hey there! 我之前帮朋友搞定过一模一样的勒索防护需求,DriveEject确实有时候不太靠谱,咱们换用系统原生的PowerShell命令和工具,稳得很~
下面分脚本和自动化设置两部分给你拆解:
一、卸载外接硬盘的PowerShell脚本
这个脚本会先卸载盘符,再把磁盘设为离线,彻底切断系统和硬盘的连接,勒索软件根本碰不到它:
# 替换成你的外接硬盘卷标(比如"我的备份盘") $targetLabel = "BackupDrive" # 找到对应卷标的磁盘信息 $targetVolume = Get-Volume | Where-Object { $_.FileSystemLabel -eq $targetLabel -and $_.DriveLetter } if ($targetVolume) { # 用MountVol卸载盘符(系统原生工具,比第三方工具稳定) MountVol "$($targetVolume.DriveLetter):\" /D Write-Host "已卸载盘符 $($targetVolume.DriveLetter):" # 找到对应的物理磁盘并设为离线 $targetDisk = Get-Disk | Where-Object { $_.Number -eq $targetVolume.DiskNumber } if ($targetDisk) { Set-Disk -InputObject $targetDisk -IsOffline $true Write-Host "磁盘 $targetLabel 已成功设为离线,勒索软件无法访问啦!" } } else { Write-Warning "没找到卷标为 $targetLabel 的在线磁盘哦" }
小贴士:如果你的硬盘没有卷标,也可以直接用盘符替换,比如把
$targetVolume的查找改成Get-Volume -DriveLetter "F:",更直接。
二、挂载外接硬盘的PowerShell脚本
备份前运行这个脚本,就能把离线的磁盘重新激活并分配盘符:
# 先通过Get-Disk命令查好你的外接硬盘编号(插入后看Removable属性的磁盘) $diskNumber = 2 # 想要分配的盘符和卷标 $driveLetter = "F:" $targetLabel = "BackupDrive" # 把磁盘设为在线 Set-Disk -Number $diskNumber -IsOnline $true Write-Host "磁盘 $diskNumber 已设为在线" # 给分区分配盘符 $targetPartition = Get-Partition -DiskNumber $diskNumber | Where-Object { $_.Type -eq "Basic" -and !$_.DriveLetter } if ($targetPartition) { Add-PartitionAccessPath -InputObject $targetPartition -AccessPath $driveLetter # 可选:设置卷标 Set-Volume -DriveLetter $driveLetter[0] -NewFileSystemLabel $targetLabel Write-Host "已成功挂载到 $driveLetter,准备好备份啦!" } else { Write-Warning "没找到可分配盘符的分区" }
注意:第一次运行前,手动打开PowerShell(管理员身份)输入
Get-Disk,找到你的外接硬盘编号,替换掉$diskNumber的值哦。
三、用Windows任务计划实现自动化
光有脚本还不够,咱们得让它在备份前后自动运行:
备份前挂载任务:
- 打开「任务计划程序」,创建「任务」(比基本任务选项更全)
- 触发器选「在特定时间」(比如备份开始前5分钟),或者如果你的备份软件会生成事件日志,选「当特定事件被记录时」(更精准,比如部分备份软件开始前会有专属事件ID)
- 操作选「启动程序」,程序/脚本填
powershell.exe,添加参数:-ExecutionPolicy Bypass -File "C:\Scripts\MountBackupDisk.ps1"(替换成你的脚本绝对路径,路径有空格的话要加引号) - 切换到「设置」标签,勾选「不管用户是否登录都要运行」,并在「安全选项」里选「使用最高权限运行」(修改磁盘状态必须要管理员权限)
备份后卸载任务:
- 同样创建新任务,触发器选「当备份完成的事件被记录时」(比如第三方备份软件备份成功后会生成事件),或者「在备份完成的时间点」触发
- 操作同样指向你的卸载脚本,同样要勾选最高权限运行
四、几个关键注意事项
- 第一次运行脚本一定要右键选「以管理员身份运行」,测试是否能正常挂载/卸载,避免任务计划时因为权限不足失败
- 脚本路径最好放在没有空格的目录里,比如
C:\Scripts\,减少路径解析问题 - 如果你用的是USB移动硬盘,离线后不需要拔插,下次运行挂载脚本就能直接激活,完全不影响备份流程
备注:内容来源于stack exchange,提问作者pabaxe
相关产品推荐
相关产品推荐

