# 场景描述
-
用户电脑在启用
bitlocker
的情况下,winpe
下重装系统无法格式系统分区,需要先解锁bitlocker
后重启再进入winpe
操作 -
部分用户对
BIOS
设置不熟悉,无法自己设置从网络引导winpe
,需要创建一个程序或脚本,让用户双击运行实现自动重启后从网络加载winpe
# 思路
解锁 bitlocker
这个问题相对简单,但是如何让电脑重启并从网络引导这步我不知道如何实现,用户电脑大部分是双网卡的,正常手动从网络启动都要选中对应的网卡才能正常从网络加载 winpe
, 这个程序或脚本要如何判断从哪个网卡引导?
ivanti
的操作部署模板中有个 vboot
的功能,这个功能刚好可以满足用户的需求,但是这个功能是需要在客户端上安装 ivanti
的代理才能实现,用户这边已经明确了客户端不会安装 ivanti
的代理,所以这条路走不通
我在官网上搜索过 vboot
这个关键字,并没有找到相关文档描述该功能的具体介绍和实现方法,无奈只好另辟他路
这个问题困扰了我很久,直到今天我的一台 windows
虚拟机系统盘满了,我又不想重装系统,我就想简单的扩展虚拟机磁盘,我在虚拟机中将这个系统盘从 60G 扩展到了 150G, 想着通过扩展卷的方式扩展即可
没想到磁盘末尾有个恢复分区,导致无法直接扩展后面加进来的 90G 空间
于是我下载了傲梅分区助手,打算用该工具给系统盘进行扩展
提交后提示需要进入 WinPE
模式下操作
点击确定后,提示程序正在创建 WinPE
进度条完成后系统自动重启进入 WinPE
, 执行后续的分区合并操作
我惊了,这个不就是我想要的功能吗!!!
傲梅一下就打开了我的思路,我非常确定傲梅是在本地创建了 WinPE
镜像文件,并通过重启引导进入 WinPE
,既然无法从网卡引导,那从本地引导也不是不行
我虽然不知道如何从本地引导镜像文件,但是我知道要从本地引导,就必须添加 BCD
启动项,傲梅肯定也是这样实现的,于是我从网上下载了 bootice
这个小工具,查看系统当前 DCD
文件,成功验证了自己的猜想
可以看到傲梅添加的 BCD
启动项和参数,剩下的就简单了
# 脚本实现
# 禁用 bitlocker | |
$encryptionStatus = (Get-BitLockerVolume).ProtectionStatus | |
if ($encryptionStatus -eq 'On') { | |
manage-bde.exe -protectors -disable c: -rebootcount 0 | |
} | |
# 正则匹配 ID | |
$IDPattern = '\{([A-Fa-f0-9-]+)\}' | |
$output1 = bcdedit /create /device | |
$deviceID = [regex]::Match($output1, $IDPattern).Groups[0].Value | |
$output2 = bcdedit -create /d "ivanti winpe" /application OSLOADER | |
$startID = [regex]::Match($output2, $IDPattern).Groups[0].Value | |
# winpe 文件路径 | |
$device = "D:" | |
$SDIPath = "\winpe\Boot\boot.sdi" | |
$WIMPath = "\winpe\Boot\boot_x64.wim" | |
# 添加启动项 | |
bcdedit /set $deviceID ramdisksdidevice partition=$device | |
bcdedit /set $deviceID ramdisksdipath $SDIPath | |
bcdedit /set $startID device ramdisk=[$device]$WIMPath,$deviceID | |
bcdedit /set $startID path \windows\system32\boot\winload.efi | |
bcdedit /set $startID osdevice ramdisk=[$device]$WIMPath,$deviceID | |
bcdedit /set $startID systemroot \windows | |
bcdedit /set $startID winpe yes | |
bcdedit /set $startID detecthal yes | |
bcdedit /bootsequence $startID | |
# 重启计算机 | |
Restart-Computer -Force |