背景:
一些旧版 Windows Server 2003 系统需要从 VMware 迁移到 Azure。
是的,我们知道它们使用的是旧版操作系统。但我们必须让它们继续运行。这(至少部分)由微软支持。
当然,在将服务器迁移到 Azure 之前,一个关键步骤是在服务器上安装 Hyper-V 集成服务。我们选择手动执行此步骤,因为官方记录的依赖启动脚本的流程事实证明,这种方法不太可靠。
因此,在我们的流程中,首先将服务器转换为 Hyper-V 机器;然后安装 HVIS 并删除 VMware Tools,最后将它们移至 Azure。
该流程已经定义、测试和记录;它运行正常。
然而。
某个特定系统的设备驱动程序存在非常奇怪的问题。它不信任任何设备驱动程序,包括本机驱动程序,并在安装前要求手动确认任何硬件。这不仅发生在 Hyper-V 驱动程序中,还发生在每一个设备,包括那些驱动程序是 Windows 本身的驱动程序;示例如下:
这很麻烦(从 VMware 迁移到 Hyper-V 时会出现 15-20 个这样的提示),但只要与服务器进行手动交互,就可以解决这个问题。但是,当服务器迁移到 Azure 时,它(大概)会等待相同的手动确认,然后才能安装 Azure 的新设备(包括新的网络适配器);当然,这意味着没有网络,也无法访问 Azure VM。
为什么会发生这种情况?如何解决?
我们尝试将系统配置为自动接受未签名的驱动程序(尽管是签名,这种情况根本不应该发生):
但是,服务器仍然继续做同样的事情并在安装任何新硬件之前要求确认(并警告它尚未通过 Windows 徽标测试)。
我们也尝试过sfc /scannow
,但没有发现任何问题,也没有解决问题;chkdsk
也没有发现任何错误。
为什么这个特定的服务器会这样?
我们该如何解决这个问题?
注意:这不是由缺少更新和/或证书过期引起的;我尝试使用原始 ISO(我仍有一份副本)在 Hyper-V 上全新安装 Windows Server 2003,因此根本没有进行任何更新,而且它也没有发生任何类似的事情。