├── wimaging ├── wimaging_snip_extra_finish_commands.erb ├── wimaging_pxelinux.erb ├── wimaging_snip_additional_triggers.erb ├── wimaging_snip_local_users.xml.erb ├── wimaging_snip_ou_from_hostgroup.erb ├── wimaging_partition_table.erb ├── wimaging_userdata_joinDomain.ps1.erb ├── wimaging_script_winpe_setup.erb ├── wimaging_finish.erb └── wimaging_provision_unattend.xml.erb └── README.md /wimaging/wimaging_snip_extra_finish_commands.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: snippet 3 | name: Wimaging extraFinishCommands 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Extra commands run at the end of the finish script. Do not change the snippet name 11 | # make commands are executed synchronously. Otherwise they might get interrupted by reboot later on 12 | %> 13 | @echo off -------------------------------------------------------------------------------- /wimaging/wimaging_pxelinux.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: PXELinux 3 | name: Wimaging default PXELinux 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | %> 11 | DEFAULT menu 12 | LABEL menu 13 | COM32 linux.c32 boot/wimboot 14 | APPEND initrdfile=<%= @host.operatingsystem.bootfile(@host.arch,:bcd) %>,<%= @host.operatingsystem.bootfile(@host.arch,:bootsdi) %>,<%= @host.operatingsystem.bootfile(@host.arch,:bootwim) %> 15 | -------------------------------------------------------------------------------- /wimaging/wimaging_snip_additional_triggers.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: snippet 3 | name: Wimaging peSetup.cmd additional triggers 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Launch additional commands as well es triggers in the peSetup phase 11 | # Parameters are expected to be set in Foreman (globally or per group/host 12 | params: 13 | %> 14 | 15 | echo Trigger Boot Mode Change 16 | %WGET% --no-verbose <%= @host.params['vmware_trigger_url'] -%>/localboot?fqdn=<%= @host.params['foreman_interfaces'][0]['name'] -%> -O C:\vmware_trigger.txt 17 | -------------------------------------------------------------------------------- /wimaging/wimaging_snip_local_users.xml.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: snippet 3 | name: Wimaging local users 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # create extra local user accounts for debugging; otherwise you might be locked out. 11 | # Warning: Commented out by default 12 | %> 13 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | foreman-wimaging 2 | ================ 3 | I'm publishing my foreman templates that I use to provision Windows. 4 | 5 | This allows to have flexible template-based opensource provisioning of Windows systems using Foreman & puppet. 6 | 7 | ### Prerequisites 8 | - Foreman 1.9 or patched [windows.rb](https://github.com/theforeman/foreman/commit/85e625447252ac1810a6e2bdabf03baeb3d4d56c) 9 | - Recent version of foreman-proxy with patched [files](https://github.com/theforeman/smart-proxy/pull/258/files) for wimaging. 10 | 11 | Please use the main [wimaging](https://github.com/kireevco/wimaging) toolset to get a ready-to-go image from your Windows ISO. 12 | 13 | FEATURES: 14 | - Template-based provisioning of Windows hosts 15 | - Auto register in puppet 16 | - ... 17 | 18 | TODO: 19 | - userdata template 20 | 21 | -------------------------------------------------------------------------------- /wimaging/wimaging_snip_ou_from_hostgroup.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: snippet 3 | name: Wimaging OU from Hostgroup 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Generate the OU from the hosts' hostgroup and domain 11 | # Parameters are expected to be set in Foreman (globally or per group/host 12 | params: 13 | - computerOuSuffix: CN=company computers # extra ou appended to the generated ou 14 | %> 15 | <% 16 | ou_prefix = 'OU=' 17 | dc_prefix = 'DC=' 18 | suffix = ',' 19 | fullou = '' 20 | domain = '' 21 | @host.hostgroup.to_s.split('/').reverse.each {|ou| fullou += ou_prefix + ou + suffix } 22 | @host.domain.to_s.split('.').each { |dc| domain += dc_prefix + dc + suffix } 23 | domain.chomp!(suffix) 24 | -%> 25 | <%= fullou -%><%if @host.params['computerOuSuffix'] -%><%= @host.params['computerOuSuffix'].to_s.chomp(',')-%>,<% end -%><%= domain -%> 26 | -------------------------------------------------------------------------------- /wimaging/wimaging_partition_table.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: ptable 3 | name: Wimaging default ptable 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | %> 11 | :: Disk Partitioning Layout 12 | 13 | set DPFILE=%SYSTEMDRIVE%\dp.txt 14 | 15 | :: Append commands to Diskpart file 16 | echo select disk 0 > %DPFILE% 17 | echo clean >> %DPFILE% 18 | echo create partition primary size=100 >> %DPFILE% 19 | echo select partition 1 >> %DPFILE% 20 | echo active >> %DPFILE% 21 | echo format quick fs=ntfs >> %DPFILE% 22 | echo create partition primary >> %DPFILE% 23 | echo select partition 2 >> %DPFILE% 24 | echo format quick fs=ntfs label="<%= @host.operatingsystem.family -%>" >> %DPFILE% 25 | echo assign letter="C" >> %DPFILE% 26 | echo exit >> %DPFILE% 27 | 28 | :: Execute Diskpart with file as script argument 29 | diskpart /s %DPFILE% 30 | 31 | :: Remove Diskpart script file 32 | del %DPFILE% 33 | -------------------------------------------------------------------------------- /wimaging/wimaging_userdata_joinDomain.ps1.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: user_data 3 | name: Wimaging joinDomain.ps1 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Parameters are expected to be set in Foreman (globally or per group/host) 11 | params: 12 | - domainJoinAccount: administrator@domain.com # use tthis account to join domain. If set, domain join will run 13 | - domainJoinAccountPasswd: Password for the domain Admin account 14 | - computerOU: OU=Computers,CN=domain,CN=com # Place the computer account in specified Organizational Unit 15 | - computerDomain: domain.com # domain to join, optional 16 | %> 17 | <% 18 | if @host.params['computerDomain'] 19 | domain_name = @host.params['computerDomain'] 20 | else 21 | domain_name = @host.domain 22 | end 23 | if @host.params['computerOU'] and ( @host.params['computerOU'] != 'automatic' and @host.params['computerOU'] != 'default' ) 24 | computer_ou = @host.params['computerOU'] 25 | elsif snippet('Wimaging OU from Hostgroup') and @host.params['computerOU'] == 'automatic' 26 | computer_ou = snippet('Wimaging OU from Hostgroup') 27 | else 28 | computer_ou = false 29 | end 30 | %> 31 | $user = '<%= @host.params['domainJoinAccount'] -%>' 32 | $passwd = ConvertTo-SecureString -String '<%= @host.params['domainJoinAccountPassword'] -%>' -AsPlainText -Force 33 | $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $passwd 34 | Add-Computer -DomainName '<%= domain_name %>' -Credential $Credential <% if computer_ou %>-OUPath '<%= computer_ou %>'<% end %> -PassThru 35 | -------------------------------------------------------------------------------- /wimaging/wimaging_script_winpe_setup.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: script 3 | name: Wimaging peSetup.cmd 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Parameters are expected to be set in Foreman (globally or per group/host) 11 | params: 12 | - wimImageName: Windows 8.1 Pro # name of wim image to apply 13 | - windowsLicenseKey: ABCDE-ABCDE-ABCDE-ABCDE-ABCDE # Valid Windows license key 14 | - windowsLicenseOwner: Company, INC # Legal owner of the Windows license key 15 | - extraFilesCutDirs: directories wget should strip when downloading extra files. 16 | %> 17 | <% 18 | cut_dirs = @host.params['extraFilesCutDirs'] ? @host.params['extraFilesCutDirs'] : '3' 19 | %> 20 | @echo off 21 | set WGET=x:\wimaging\deploy\wget64.exe 22 | 23 | <%= @host.diskLayout %> 24 | 25 | %WGET% <%= @host.os.medium_uri(@host).to_s %>/sources/install.wim -O C:\install.wim 26 | 27 | echo Write the install image to the partition 28 | dism.exe /apply-image /imagefile:C:\install.wim /name:"<%= @host.params['wimImageName'] %>" /ApplyDir:C:\ 29 | 30 | echo removing install.wim 31 | del /q /s C:\install.wim 32 | 33 | ::Set the proper boot sector 34 | bootsect.exe /nt60 C: 35 | C:\Windows\System32\bcdboot C:\Windows /l en-US 36 | 37 | echo Downloading the drivers 38 | md c:\drivers 39 | %WGET% -P c:\drivers -r -np -nH --cut-dirs=<%= cut_dirs %> -R index.html -q --level=0 <%= @host.os.medium_uri(@host).to_s %>/drivers/ 40 | 41 | <% if snippets "Wimaging extraFinishCommands" -%> 42 | echo Downloading extras 43 | md C:\Extras 44 | %WGET% -P c:\Extras -r -np -nH --cut-dirs=<%= cut_dirs %> -R index.html -q --level=0 <%= @host.os.medium_uri(@host).to_s %>/extras/ 45 | <% end -%> 46 | 47 | echo Stage the Unattend.xml file for dism to apply 48 | set myDIR=c:\Windows\Panther\ 49 | IF not exist %myDIR% (mkdir %myDIR%) 50 | 51 | echo Downloading unattend.xml 52 | %WGET% --no-verbose <%= foreman_url("provision") -%> -O c:\Windows\Panther\unattend.xml 53 | 54 | echo Downloading finsh script and activating SetupComplete.cmd 55 | md c:\deploy 56 | %WGET% --no-verbose <%= foreman_url("finish") -%> -O C:\deploy\foreman-finish.bat 57 | 58 | echo copy tools 59 | copy x:\wimaging\deploy\wget64.exe C:\deploy\ 60 | copy x:\wimaging\deploy\wget64.exe C:\Windows\wget.exe 61 | copy x:\wimaging\deploy\sdelete.exe C:\Windows\ 62 | IF not exist C:\Windows\Setup\Scripts (md C:\Windows\Setup\Scripts) 63 | echo call C:\deploy\foreman-finish.bat ^> c:\foreman.log 2^>^&1 > C:\Windows\Setup\Scripts\SetupComplete.cmd 64 | 65 | <% if foreman_url('user_data') %> 66 | echo Downlodiang user data 67 | %WGET% <%= foreman_url('user_data') %> -O c:\deploy\joinDomain.ps1 68 | <% end -%> 69 | 70 | echo Creating a temp staging folder for DISM 71 | md c:\MININT\Scratch 72 | 73 | echo Apply Unattend.xml 74 | dism.exe /Image:C:\ /Apply-Unattend:c:\Windows\Panther\unattend.xml /ScratchDir:C:\MININT\Scratch/ 75 | 76 | echo Apply Drivers 77 | dism.exe /Image:C:\ /Add-Driver /Driver:c:\drivers\ /Recurse /ForceUnsigned 78 | 79 | <% if @host.params['pesetup_additional_triggers'] -%> 80 | <%= snippets "Wimaging peSetup.cmd additional triggers" %> 81 | <% end -%> 82 | 83 | :: Uncomment PAUSE for debug: 84 | ::PAUSE 85 | exit 0 86 | -------------------------------------------------------------------------------- /wimaging/wimaging_finish.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: finish 3 | name: Wimaging default finish 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Parameters are expected to be set in Foreman (globally or per group/host) 11 | params: 12 | - windowsLicenseKey: ABCDE-ABCDE-ABCDE-ABCDE-ABCDE # Valid Windows license key 13 | - windowsLicenseOwner: Company, INC # Legal owner of the Windows license key 14 | - localAdminAccountDisabled: false 15 | - ntpSever: time.windows.com,other.time.server 16 | - domainAdminAccount: administrator@domain.com # use this account to join domain 17 | - domainAdminAccountPasswd: Password for the domain Admin account 18 | - computerOU: OU=Computers,CN=domain,CN=com # Place the computer account in specified Organizational Unit 19 | - computerDomain: domain.com # domain to join 20 | - foremanDebug: false 21 | %> 22 | <% 23 | # safemode renderer does not support unary negation 24 | pm_set = @host.puppetmaster.empty? ? false : true 25 | puppet_enabled = pm_set || @host.params['force-puppet'] && @host.params['force-puppet'] == 'true' 26 | salt_enabled = @host.params['salt_master'] ? true : false 27 | chef_enabled = @host.respond_to?(:chef_proxy) && @host.chef_proxy 28 | foreman_debug = @host.params['foremanDebug'] == 'true' ? true : false 29 | %> 30 | 31 | @echo off 32 | <% unless @host.params['localAdminAccountDisabled'] -%> 33 | echo Activating administrator 34 | net user administrator /active:yes 35 | <% end -%> 36 | 37 | <% if @host.pxe_build? %> 38 | set ctr=0 39 | set nettimeout=10 40 | 41 | (echo Updating time) 42 | (sc config w32time start= auto) 43 | sc start w32time 44 | :ntp_testip 45 | ::ipconfig /renew 46 | wget.exe <%= foreman_url('provision') %> 47 | if %errorlevel% == 0 goto ntp_testip_ok 48 | timeout /t 10 >NUL 49 | set /a ctr=ctr+1 50 | echo Retry network. Run %ctr% time(s) 51 | if %ctr% GTR %nettimeout% ( 52 | echo Network error! Exiting. 53 | exit 1 54 | ) 55 | goto ntp_testip 56 | :ntp_testip_ok 57 | 58 | echo Network test OK! 59 | 60 | <% if @host.params['ntpSever'] -%> 61 | echo setting time server 62 | w32tm /config /manualpeerlist:<%= @host.params['ntpSever'] %> /syncfromflags:manual /update 63 | <% end %> 64 | 65 | echo sync time 66 | w32tm /resync 67 | w32tm /resync 68 | 69 | :: You can join your machine to the domain right here > 70 | 71 | <% if @host.params['domainJoinAccount'] and @host.params['domainJoinAccountPassword'] -%> 72 | echo joining domain 73 | powershell.exe -OutputFormat text -ExecutionPolicy remotesigned -command c:\deploy\joinDomain.ps1 74 | <% end %> 75 | 76 | :: < You can join your machine to the domain right here 77 | 78 | <% if @host.params['localAdminAccountDisabled'] %> 79 | echo Disabling %tempAdminUser% 80 | net user %tempAdminUser% %tempAdminUser% /active:no 81 | <% end %> 82 | 83 | <% if foreman_debug != true -%> 84 | echo Safely remove wimaging files 85 | sdelete.exe -accepteula -p 2 -r c:\wimaging 86 | sdelete.exe -accepteula -p 2 c:\Windows\Panther\unattend.xml 87 | sdelete.exe -accepteula -p 2 C:\Windows\Setup\Scripts\SetupComplete.cmd 88 | sdelete.exe -accepteula -p 2 -r c:\minint 89 | sdelete.exe -accepteula -p 2 -r c:\wimaging 90 | <% end %> 91 | 92 | <% if puppet_enabled %> 93 | echo Installing puppet 94 | start /w "" msiexec /qn /i C:\extras\puppet.msi PUPPET_AGENT_STARTUP_MODE=Manual PUPPET_MASTER_SERVER=<%= @host.puppetmaster -%> PUPPET_AGENT_ACCOUNT_DOMAIN=<%= @host.domain -%> PUPPET_AGENT_ACCOUNT_USER=administrator PUPPET_AGENT_ACCOUNT_PASSWORD="<%= @host.params['domainAdminAccountPassword'] -%>" 95 | echo set puppet to auto start 96 | sc config puppet start= auto 97 | sc query puppet 98 | rem this is rather hacky 99 | rem call "C:\Program Files\Puppet Labs\Puppet\bin\puppet.bat" agent -t -v --tags no_such_tag 100 | <% end -%> 101 | 102 | <% if snippets "Wimaging extraFinishCommands" -%> 103 | echo Running extra commands 104 | <%= snippets "Wimaging extraFinishCommands" %> 105 | <% end -%> 106 | 107 | echo Tell foreman build has finished 108 | wget.exe <%= foreman_url('built') %> 109 | 110 | <% if foreman_debug != true -%> 111 | echo Cleaning up extras 112 | sdelete.exe -accepteula -p 2 -r c:\extras 113 | echo Safely removing c:\deploy 114 | sdelete.exe -accepteula -p 2 -r c:\deploy 115 | 116 | echo remove leftover directories 117 | rmdir /s /q c:\wimaging 118 | rmdir /s /q c:\minint 119 | rmdir /s /q c:\deploy 120 | rmdir /s /q c:\extras 121 | 122 | echo rebooting... 123 | shutdown /r /t 5 124 | <% end -%> 125 | <% end -%> 126 | -------------------------------------------------------------------------------- /wimaging/wimaging_provision_unattend.xml.erb: -------------------------------------------------------------------------------- 1 | <%# 2 | kind: provision 3 | name: Wimaging default provision 4 | oses: 5 | - Windows Server 2008 6 | - Windows Server 2008 R2 7 | - Windows Server 2012 8 | - Windows Server 2012 R2 9 | - Windows 10 | # Parameters are expected to be set in Foreman (globally or per group/host) 11 | params: 12 | - windowsLicenseKey: ABCDE-ABCDE-ABCDE-ABCDE-ABCDE # Valid Windows license key 13 | - windowsLicenseOwner: Company, INC # Legal owner of the Windows license key 14 | - systemLocale: en-US 15 | - systemUILanguage: en-US 16 | - systemTimeZone: GMT Standard Time #see https://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx 17 | - wimImageName = Windows 8.1 Pro # Image name seems only necessary if the WIM contains more than one image 18 | %> 19 | <% 20 | system_locale = @host.params['systemLocale'] ? @host.params['systemLocale'] : 'en-US' 21 | system_ui_lang = @host.params['systemUILanguage'] ? @host.params['systemUILanguage'] : 'en-US' 22 | setup_ui_lang = 'en-US' 23 | system_timezone = @host.params['systemTimeZone'] ? @host.params['systemTimeZone'] : 'GMT Standard Time' 24 | %> 25 | 26 | 27 | 28 | 29 | 30 | false 31 | 32 | 33 | 34 | 35 | false 36 | true 37 | Restart 38 | 39 | 40 | 41 | 42 | <%= @host.params['wimImageName'] -%> 43 | 44 | 45 | true 46 | OnError 47 | 48 | 49 | 50 | true 51 | 52 | 53 | 54 | 55 | <%= setup_ui_lang %> 56 | 57 | <%= system_locale %> 58 | <%= system_locale %> 59 | <%= setup_ui_lang %> 60 | <%= system_ui_lang %> 61 | <%= system_locale %> 62 | 63 | 64 | 65 | 66 | <%= system_locale %> 67 | <%= system_locale %> 68 | <%= setup_ui_lang %> 69 | <%= system_ui_lang %> 70 | <%= system_locale %> 71 | 72 | 73 | 74 | 75 | false</PlainText> 76 | <Value><%= Base64.encode64(Encoding::Converter.new("UTF-8", "UTF-16LE",:undef => nil).convert(Base64.decode64(root_pass)+"AdministratorPassword")).delete!("\n").chomp %></Value> 77 | </AdministratorPassword> 78 | <% if snippet('Wimaging local users') -%> 79 | <%= snippet('Wimaging local users') -%> 80 | <% end %> 81 | </UserAccounts> 82 | <TimeZone><%= system_timezone -%></TimeZone> 83 | <% if @host.params['windowsLicenseOwner'] -%> 84 | <RegisteredOrganization><%= @host.params['windowsLicenseOwner'] -%></RegisteredOrganization> 85 | <RegisteredOwner><%= @host.params['windowsLicenseOwner'] -%></RegisteredOwner> 86 | <% end -%> 87 | <OOBE> 88 | <HideEULAPage>true</HideEULAPage> 89 | <NetworkLocation>Work</NetworkLocation> 90 | <ProtectYourPC>1</ProtectYourPC> 91 | <SkipUserOOBE>true</SkipUserOOBE> 92 | <SkipMachineOOBE>true</SkipMachineOOBE> 93 | <HideLocalAccountScreen>true</HideLocalAccountScreen> 94 | <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> 95 | <HideOnlineAccountScreens>true</HideOnlineAccountScreens> 96 | <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> 97 | </OOBE> 98 | <ShowWindowsLive>false</ShowWindowsLive> 99 | <% if @host.params['windowsLicenseKey'] -%> 100 | <ProductKey><%= @host.params['windowsLicenseKey'].to_s -%></ProductKey> 101 | <% end -%> 102 | </component> 103 | </settings> 104 | <settings pass="specialize"> 105 | <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"> 106 | <InputLocale><%= system_locale %></InputLocale> 107 | <SystemLocale><%= system_locale %></SystemLocale> 108 | <UILanguageFallback><%= setup_ui_lang %></UILanguageFallback> 109 | <UILanguage><%= system_ui_lang %></UILanguage> 110 | <UserLocale><%= system_locale %></UserLocale> 111 | </component> 112 | <component name="Microsoft-Windows-IE-ESC" 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"> 113 | <IEHardenAdmin>false</IEHardenAdmin> 114 | </component> 115 | <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"> 116 | <ComputerName><%= @host.shortname -%></ComputerName> 117 | <% if @host.params['windowsLicenseOwner'] -%> 118 | <RegisteredOrganization><%= @host.params['windowsLicenseOwner'] -%></RegisteredOrganization> 119 | <RegisteredOwner><%= @host.params['windowsLicenseOwner'] -%></RegisteredOwner> 120 | <% end -%> 121 | <TimeZone><%= system_timezone -%></TimeZone> 122 | </component> 123 | <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"> 124 | <DomainProfile_EnableFirewall>false</DomainProfile_EnableFirewall> 125 | <PrivateProfile_EnableFirewall>false</PrivateProfile_EnableFirewall> 126 | <PublicProfile_EnableFirewall>false</PublicProfile_EnableFirewall> 127 | </component> 128 | <component name="Microsoft-Windows-ServerManager-SvrMgrNc" 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"> 129 | <DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon> 130 | </component> 131 | <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"> 132 | <fDenyTSConnections>false</fDenyTSConnections> 133 | </component> 134 | <component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" 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"> 135 | <SecurityLayer>1</SecurityLayer> 136 | <UserAuthentication>0</UserAuthentication> 137 | </component> 138 | </settings> 139 | <cpi:offlineImage cpi:source="catalog:c:/deploy/wimaging/sources/win81x64/sources/install_windows 8.1 pro.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> 140 | </unattend> 141 | 142 | --------------------------------------------------------------------------------