制作Windows的DD镜像

By | 2020年2月28日

Linux系统下可以使用DD命令,将自己制作的Windows DD镜像写进磁盘,可以将Linux系统转变为自己定制的Windows系统,这样也可以减少用别人DD包而出现的后门漏洞等风险。

准备工具:
1、原版的Windows镜像,本文以Windows Server 2012 R2为例(图片截的是Server 2008)。
2、Dism++,用来挂载和释放镜像。
3、Virtio、XEN驱动。
4、7zip,用来压缩DD镜像。
5、Hyper-V,用来配置DD镜像的信息,如系统登录账号密码等。

一、编辑原版镜像


1、用解压工具打开原版ISO镜像,在/sources目录下找到install.wim文件,提取到本地硬盘上,如放到D盘,D:\install.wim。
2、在D盘新建一个文件夹,用来挂载原版镜像,如D:\2012。
3、运行Dism++工具,点击左上角菜单的文件-挂载映像,在第一行点击浏览找到刚刚提取的原版instal.wim文件,在第二行点击浏览选择刚刚建立的文件夹D:\2012,如下图,记得在目标映像那一栏,选择你要定制的系统版本,然后点击确定。

4、等待Dism++挂载完成,点击打开会话,然后就可以编辑原版镜像了:


5、添加驱动。将下载的virtio驱动解压到D:\virtio-win,点击Dism++的驱动管理选项,点添加驱动,选中刚才的驱动文件夹,驱动会自动安装,可根据自己需要,安装virtio、XEN、VMware驱动等:

6、点击系统优化选项,根据自己的需要进行优化,如桌面显示计算机图标、更新管理等,然后导入注册表配置文件来打开远程桌面功能、关闭Ctrl+Alt+Del登录,注册表配置信息如下,复制代码到新建文本保存,后缀修改为.reg,最后在Dism++点击导入配置,选中刚才的reg文件导入即可。

注册表配置信息:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fDenyTSConnections"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:00000d3d

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00000d3d

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"UserAuthentication"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules]
"{33893389-3389-3389-3389-338933893389}"="v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=3389|Name=3389|"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"disablecad"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DisableCAD"=dword:00000001

另外建议将防火墙关闭,此前本人测试了多次,DD之后发现无法远程连接,后来进入后台VNC才发现是防火墙屏蔽连接端口了。

7、编辑完镜像后,点击Dism++左上角菜单的文件-另存为映像,选择保存的位置和名字,如D:\WinSrv2012x64.wim,等待保存完成。

8、配置无人值守自动应答文件unattend.xml。如果电脑装有NTLite工具,可以用NTLite挂载D:\WinSrv2012x64.wim,在左上方菜单工具选项里,启用编辑,按需配置unattend.xml,完成后保存映像即可。

二、制作VHD虚拟硬盘文件


1、点击开始菜单-Windows管理工具-计算机管理,选中磁盘管理后,右键磁盘管理-创建VHD,如果没有精简过系统,Windows 7、8,Server 2008、2012等,大小可设置为10G,Windows 10、Server 2016、2019等,大小设置为15G。如位置和文件名设置为D:\WinSrv2012x64.vhd。


2、等待创建完成后,右键新建的VHD磁盘-初始化磁盘,初始化完成后右键磁盘-新建简单卷,然后一路点击下一步、分配盘符、格式化等,如最终的VHD磁盘为V:\。






3、新建VHD后,打开Dism++,点击左上角菜单选项文件-释放映像,在第一行点击浏览选中制作好的WinSrv2012x64.wim文件,在第二行点击浏览,选中VHD磁盘V:\,勾选上添加引导和格式化,点确定,这时,一定要注意,在弹出的窗口,点击更多这个选项,选中VHD磁盘V:\,再点击确定,进行释放镜像。



4、释放镜像完成后,关闭Dism++,右键VHD磁盘V:,点击弹出即可,在D盘的这个D:\WinSrv2012x64.vhd就是一个可以直接DD的Windows镜像了。

三、配置DD镜像包安装信息


如果不想用NTLite工具,则可以用Hyper-V来配置系统安装信息,这样可以更彻底的按自己喜好来配置DD镜像。
重要提示:只有Server 2012或以上的系统,才能用Hyper-V来配置,Server 2008或以下等系统,用Hyper-V配置后,DD完之后是无法进入系统的,提示“Windows未能启动,原因可能是最近更改了硬件或软件”,建议采取添加自动应答文件的方式来配置系统。Windows 7、8暂未测试,所以此步骤是以Server 2012为例。
1、打开Hyper-V,点击左上角菜单选项操作-新建-虚拟机,按下图顺序操作,在连接虚拟硬盘这步时,选择使用现有虚拟硬盘,选中D:\WinSrv2012x64.vhd即可。







2、新建虚拟机后,右键虚拟机,点击设置,点击选中检查点这个选项,去掉启动检查点前面的勾来关闭检查点,点击确定保存。


3、打开虚拟机,根据系统提示进行密码设置等操作,进入系统后,可按照自己的习惯配置系统。
另外,关于防火墙设置这块,有一个坑,在DD系统后,远程登录时,如果出现网络位置设置的提示,点击设置网络位置之后,防火墙会把3389端口重新屏蔽,导致远程桌面连不上,所以,在这一步,可以增加对防火墙设置的修改。
打开控制面板-Windows防火墙-高级设置,点击Windows防火墙属性,首先把设置界面的三个选项卡预配置文件、专用配置文件、公用配置文件的防火墙状态都设置为启用,点击应用按钮保存设置,然后将这三个选项卡的入站连接都设置为允许,点击应用按钮保存设置,最后重新将这三个选项卡的防火墙状态都设置为关闭,点击应用按钮保存设置,点击确定按钮退出设置界面。最终设置信息如下图:


在所有配置完成后,进行系统关机,关闭Hyper-V。

四、压缩DD镜像


1、安装好7zip后,右键D:\WinSrv2012x64.vhd,选择7zip-添加到压缩包,压缩格式选择gzip,其他不用设置,点击确定等待压缩完成。


2、压缩完成后,就可以将这个镜像文件上传到你的服务器或网盘了,建议设置成可以直链下载,不要跳转下载。

五、一键DD命令


一键DD命令脚本来自于萌咖,首先用root用户SSH登录到Linux服务器,执行以下命令:
wget --no-check-certificate -qO InstallNET_DD.sh 'https://adds.ltd/Softs/Linux/Shell/InstallNET_DD.sh' && bash InstallNET_DD.sh -dd 'https://gdrive.durex.pub/Softs/Windows/IMAGE/DD/WinSrv2012x64.vhd.gz'
以上标红的部分,是本人自己制作的DD镜像,可按需替换为自己的DD镜像直链。
本文用到的软件工具下载地址:

该资源需登录评论本文后刷新网页查看,如果没有账号,可以先进行注册


本文参考于@萌咖与@秋水逸冰

发表评论