{"id":8277,"date":"2020-04-09T12:27:36","date_gmt":"2020-04-09T16:27:36","guid":{"rendered":"http:\/\/rajdude.com\/blog\/?p=8277"},"modified":"2020-04-09T12:27:36","modified_gmt":"2020-04-09T16:27:36","slug":"tiny-answer-file-for-vm-templates","status":"publish","type":"post","link":"https:\/\/rajdude.com\/blog\/tiny-answer-file-for-vm-templates\/","title":{"rendered":"Tiny answer file for VM templates"},"content":{"rendered":"\n<p>ok so when we create a template of Windows Server 2016 VM, after sysprepping of course, the OOBE run is annoying and time consuming&#8230;yeah yeah, it is only a couple of minutes but if you can avoid that, why not?<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>A tiny answer file specified during sysprep helps a lot. Of course, the recommended way to create that answer file is that you gotta install Windows SIM first. It takes time and has a learning curve to it. <\/p>\n\n\n\n<p>I did that. Here are a couple of nice write-ups which I followed:<\/p>\n\n\n\n<p><a href=\"https:\/\/theitbros.com\/sysprep-a-windows-7-machine-start-to-finish\/\">https:\/\/theitbros.com\/sysprep-a-windows-7-machine-start-to-finish\/<\/a><\/p>\n\n\n\n<p>and<\/p>\n\n\n\n<p><a href=\"https:\/\/www.windowscentral.com\/how-create-unattended-media-do-automated-installation-windows-10\">https:\/\/www.windowscentral.com\/how-create-unattended-media-do-automated-installation-windows-10<\/a><\/p>\n\n\n\n<p>However, I must add that those are written from the perspective of automating an fresh installation of Windows, not a simple VM cloning process. That does not need all the settings these guys talk about. So At the end of this post I am sharing a tiny answer file which will help you automate. It has the bare minimum stuff you need to automate a Windows Server 2016 VM cloning process.<\/p>\n\n\n\n<p>Here is what it does:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Skip showing OOBE screens<\/li><li>Specify your company name, etc<\/li><li>Set locale and time zone to EST<\/li><li>Enable RDP<\/li><\/ol>\n\n\n\n<p>I use it by specifying it at sysprep time, like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>c:\\Windows\\System32\\Sysprep\\.\/sysprep.exe \/oobe \/generalize \/shutdown \/mode:vm \/unattend:c:\\AdminTools\\AutoUnattendServer2016Std.xml<\/code><\/pre>\n\n\n\n<p>Enjoy!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?>\n&lt;unattend xmlns=\"urn:schemas-microsoft-com:unattend\">\n    &lt;settings pass=\"specialize\">\n        &lt;component name=\"Microsoft-Windows-Shell-Setup\" processorArchitecture=\"amd64\" publicKeyToken=\"31bf3856ad364e35\" language=\"neutral\" versionScope=\"nonSxS\" xmlns:wcm=\"http:\/\/schemas.microsoft.com\/WMIConfig\/2002\/State\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n            &lt;RegisteredOrganization>Your company name&lt;\/RegisteredOrganization>\n            &lt;RegisteredOwner>Designated person&lt;\/RegisteredOwner>\n            &lt;TimeZone>Eastern Standard Time&lt;\/TimeZone>\n        &lt;\/component>\n        &lt;component name=\"Microsoft-Windows-TerminalServices-LocalSessionManager\" processorArchitecture=\"amd64\" publicKeyToken=\"31bf3856ad364e35\" language=\"neutral\" versionScope=\"nonSxS\" xmlns:wcm=\"http:\/\/schemas.microsoft.com\/WMIConfig\/2002\/State\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n            &lt;fDenyTSConnections>false&lt;\/fDenyTSConnections>\n        &lt;\/component>\n        &lt;component name=\"Networking-MPSSVC-Svc\" processorArchitecture=\"amd64\" publicKeyToken=\"31bf3856ad364e35\" language=\"neutral\" versionScope=\"nonSxS\" xmlns:wcm=\"http:\/\/schemas.microsoft.com\/WMIConfig\/2002\/State\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n            &lt;FirewallGroups>\n                &lt;FirewallGroup wcm:action=\"add\" wcm:keyValue=\"RemoteDesktop\">\n                    &lt;Active>true&lt;\/Active>\n                    &lt;Group>Remote Desktop&lt;\/Group>\n                    &lt;Profile>all&lt;\/Profile>\n                &lt;\/FirewallGroup>\n            &lt;\/FirewallGroups>\n        &lt;\/component>\n    &lt;\/settings>\n    &lt;settings pass=\"oobeSystem\">\n        &lt;component name=\"Microsoft-Windows-International-Core\" processorArchitecture=\"amd64\" publicKeyToken=\"31bf3856ad364e35\" language=\"neutral\" versionScope=\"nonSxS\" xmlns:wcm=\"http:\/\/schemas.microsoft.com\/WMIConfig\/2002\/State\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n            &lt;InputLocale>en-US&lt;\/InputLocale>\n            &lt;SystemLocale>en-US&lt;\/SystemLocale>\n            &lt;UILanguage>en-US&lt;\/UILanguage>\n            &lt;UserLocale>en-US&lt;\/UserLocale>\n        &lt;\/component>\n        &lt;component name=\"Microsoft-Windows-Shell-Setup\" processorArchitecture=\"amd64\" publicKeyToken=\"31bf3856ad364e35\" language=\"neutral\" versionScope=\"nonSxS\" xmlns:wcm=\"http:\/\/schemas.microsoft.com\/WMIConfig\/2002\/State\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n            &lt;OOBE>\n                &lt;VMModeOptimizations>\n                    &lt;SkipAdministratorProfileRemoval>true&lt;\/SkipAdministratorProfileRemoval>\n                    &lt;SkipNotifyUILanguageChange>true&lt;\/SkipNotifyUILanguageChange>\n                &lt;\/VMModeOptimizations>\n                &lt;HideEULAPage>true&lt;\/HideEULAPage>\n                &lt;HideLocalAccountScreen>true&lt;\/HideLocalAccountScreen>\n                &lt;HideOEMRegistrationScreen>true&lt;\/HideOEMRegistrationScreen>\n                &lt;HideOnlineAccountScreens>true&lt;\/HideOnlineAccountScreens>\n                &lt;HideWirelessSetupInOOBE>true&lt;\/HideWirelessSetupInOOBE>\n                &lt;ProtectYourPC>1&lt;\/ProtectYourPC>\n            &lt;\/OOBE>\n        &lt;\/component>\n    &lt;\/settings>\n    &lt;cpi:offlineImage cpi:source=\"\" xmlns:cpi=\"urn:schemas-microsoft-com:cpi\" \/>\n&lt;\/unattend>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>ok so when we create a template of Windows Server 2016 VM, after sysprepping of course, the OOBE run is annoying and time consuming&#8230;yeah yeah, it is only a couple of minutes but if you can avoid that, why not?<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[104,103],"class_list":["post-8277","post","type-post","status-publish","format-standard","hentry","category-itsys","tag-answer-file","tag-sysprep"],"_links":{"self":[{"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/posts\/8277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/comments?post=8277"}],"version-history":[{"count":4,"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/posts\/8277\/revisions"}],"predecessor-version":[{"id":8281,"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/posts\/8277\/revisions\/8281"}],"wp:attachment":[{"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/media?parent=8277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/categories?post=8277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rajdude.com\/blog\/wp-json\/wp\/v2\/tags?post=8277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}