From fd0e730d954b27f568e31eea378f6a4f924c1a39 Mon Sep 17 00:00:00 2001 From: Nikos Skalkotos <skalkoto@grnet.gr> Date: Mon, 20 Oct 2014 15:36:07 +0300 Subject: [PATCH] windows: Enable Auto Update if not sysprepped When we cleanup all the changes made before booting the Windows VM, only revert the /Microsoft/Windows/CurrentVersion/WindowsUpdate/Auto Update' changes if the image has not been syspreped. Those values get deleted during Sysprep. --- image_creator/os_type/windows/__init__.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/image_creator/os_type/windows/__init__.py b/image_creator/os_type/windows/__init__.py index f0114e9..7a41ba9 100644 --- a/image_creator/os_type/windows/__init__.py +++ b/image_creator/os_type/windows/__init__.py @@ -523,14 +523,21 @@ class Windows(OSBase): self._add_cleanup('sysprep', self.registry.update_uac_remote_setting, old) + def if_not_sysprepped(task, *args): + """Only perform this if the image is not syspreped""" + if not self.sysprepped: + task(*args) + + # The next 2 registry values get completely removed by Microsoft + # Sysprep. They should not be reverted if Sysprep gets executed. old = self.registry.update_noautoupdate(1) if old != 1: - self._add_cleanup('sysprep', + self._add_cleanup('sysprep', if_not_sysprepped, self.registry.update_noautoupdate, old) old = self.registry.update_auoptions(1) if old != 1: - self._add_cleanup('sysprep', + self._add_cleanup('sysprep', if_not_sysprepped, self.registry.update_auoptions, old) # disable the firewalls -- GitLab