<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.intern.agilos.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=172.22.0.179</id>
	<title>Agilos Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.intern.agilos.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=172.22.0.179"/>
	<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php/Spezial:Beitr%C3%A4ge/172.22.0.179"/>
	<updated>2026-10-23T07:42:48Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2157</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2157"/>
		<updated>2019-10-08T12:16:57Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|172.16.1.*&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|212.18.209.*&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|192.168.233.*&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|&lt;br /&gt;
|SAN  Switches&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2156</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2156"/>
		<updated>2019-10-08T12:16:08Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|212.18.209.*&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|192.168.233.*&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|&lt;br /&gt;
|SAN  Switches&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2155</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2155"/>
		<updated>2019-10-08T09:42:15Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|192.168.233.*&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|&lt;br /&gt;
|SAN  Switches&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2154</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2154"/>
		<updated>2019-10-08T09:40:25Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|&lt;br /&gt;
|SAN  Switches&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2153</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2153"/>
		<updated>2019-10-08T09:31:26Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|&lt;br /&gt;
|SAN  Switches&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2152</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2152"/>
		<updated>2019-10-08T09:11:47Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|&lt;br /&gt;
|SAN  Switches&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2151</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2151"/>
		<updated>2019-10-08T09:08:54Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|Patrick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|AITC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|Zueblin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|Energetische Systeme&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|&lt;br /&gt;
|C und F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|Schuster GmbH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|&lt;br /&gt;
|AGI-IBS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|666&lt;br /&gt;
|&lt;br /&gt;
|AGI-WORLD&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2150</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2150"/>
		<updated>2019-10-08T09:03:14Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|900&lt;br /&gt;
|172.22.255.*&lt;br /&gt;
|AGI-CORE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|902&lt;br /&gt;
|172.22.253.*&lt;br /&gt;
|AGI-VMSC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|903&lt;br /&gt;
|172.22.252.*&lt;br /&gt;
|AGI-VMMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|172.20.0.*&lt;br /&gt;
|AGI-TK&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2149</id>
		<title>VLAN Agilos intern</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=VLAN_Agilos_intern&amp;diff=2149"/>
		<updated>2019-10-08T09:00:25Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=VLAN=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! VLAN !! Netz !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|172.22.0.*&lt;br /&gt;
|AGI-USER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|172.22.1.*&lt;br /&gt;
|AGI-SERVER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|800&lt;br /&gt;
|10.172.253.*&lt;br /&gt;
|ESXI-INT&lt;br /&gt;
|Internes ESX Netz der Hosts&lt;br /&gt;
|-&lt;br /&gt;
|801&lt;br /&gt;
|10.172.254.*&lt;br /&gt;
|Backup-Netz&lt;br /&gt;
|Internes Backup Netz der Hosts und der SAN&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|172.22.10.*&lt;br /&gt;
|AGI-AMIQ&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|172.22.11.*&lt;br /&gt;
|AGI-KUN2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|172.22.12.*&lt;br /&gt;
|AGI-KUN3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|172.22.13.*&lt;br /&gt;
|AGI-KUN4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|172.22.114.*&lt;br /&gt;
|AGI-KUN5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|AVA-Velsen&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1979</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1979"/>
		<updated>2018-02-12T12:56:43Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Erstellung der Images und Batch Dateien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 #&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Damit es möglich ist, ISO Images zu laden, benötigen wir die Datei &amp;quot;memdisk&amp;quot; aus &#039;&#039;&#039;/usr/lib/syslinux&#039;&#039;&#039;, die wir in den ordner &#039;&#039;&#039;/tftpboot&#039;&#039;&#039; ablegen. &lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
   workgroup = DOCS&lt;br /&gt;
   netbios name = DOCS_SRV&lt;br /&gt;
   security = user&lt;br /&gt;
   map to guest = bad user&lt;br /&gt;
   guest account = nobody&lt;br /&gt;
   encrypt passwords = true&lt;br /&gt;
   acl allow execute always = yes&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
   comment = Data&lt;br /&gt;
   path = /nfsroot&lt;br /&gt;
   available = yes&lt;br /&gt;
   browseable = yes&lt;br /&gt;
   guest only = yes&lt;br /&gt;
   guest ok = yes&lt;br /&gt;
   writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zur Sicherheit Unmounten wir alle Images mit &amp;quot;DISM /Cleanup-Wim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Bearbeiten von C:\WinPE_*\mount\windows\system32\startnet.cmd:&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1978</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1978"/>
		<updated>2018-02-12T12:55:01Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Samba-Freigabe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 #&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Damit es möglich ist, ISO Images zu laden, benötigen wir die Datei &amp;quot;memdisk&amp;quot; aus &#039;&#039;&#039;/usr/lib/syslinux&#039;&#039;&#039;, die wir in den ordner &#039;&#039;&#039;/tftpboot&#039;&#039;&#039; ablegen. &lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
   workgroup = DOCS&lt;br /&gt;
   netbios name = DOCS_SRV&lt;br /&gt;
   security = user&lt;br /&gt;
   map to guest = bad user&lt;br /&gt;
   guest account = nobody&lt;br /&gt;
   encrypt passwords = true&lt;br /&gt;
   acl allow execute always = yes&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
   comment = Data&lt;br /&gt;
   path = /nfsroot&lt;br /&gt;
   available = yes&lt;br /&gt;
   browseable = yes&lt;br /&gt;
   guest only = yes&lt;br /&gt;
   guest ok = yes&lt;br /&gt;
   writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zur Sicherheit Unmounten wir alle Images mit &amp;quot;DISM /Cleanup-Wim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1977</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1977"/>
		<updated>2018-02-09T09:24:18Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Erstellung der Images und Batch Dateien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 #&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Damit es möglich ist, ISO Images zu laden, benötigen wir die Datei &amp;quot;memdisk&amp;quot; aus &#039;&#039;&#039;/usr/lib/syslinux&#039;&#039;&#039;, die wir in den ordner &#039;&#039;&#039;/tftpboot&#039;&#039;&#039; ablegen. &lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zur Sicherheit Unmounten wir alle Images mit &amp;quot;DISM /Cleanup-Wim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1976</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1976"/>
		<updated>2018-02-08T13:59:35Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Syslinux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 #&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Damit es möglich ist, ISO Images zu laden, benötigen wir die Datei &amp;quot;memdisk&amp;quot; aus &#039;&#039;&#039;/usr/lib/syslinux&#039;&#039;&#039;, die wir in den ordner &#039;&#039;&#039;/tftpboot&#039;&#039;&#039; ablegen. &lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1975</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1975"/>
		<updated>2018-02-08T09:28:04Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* DHCP-Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 #&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1974</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1974"/>
		<updated>2018-02-08T09:26:08Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* DHCP-Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1973</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1973"/>
		<updated>2018-02-08T09:25:50Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* DHCP-Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 #Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 #Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1972</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1972"/>
		<updated>2018-02-08T09:25:14Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* DHCP-Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
#Adresse des TFTP Servers&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
#Name der zu Bootenden Datei&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.1.*&amp;diff=1971</id>
		<title>IP Adressen Agilos 172.22.1.*</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.1.*&amp;diff=1971"/>
		<updated>2018-02-05T07:20:56Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* 172.22.1.1 - 172.22.1.50 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=172.22.1.1 - 172.22.1.50=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen !! Control&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.1&lt;br /&gt;
|c48-core-1-gi3-101.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.2&lt;br /&gt;
|Agilos IPCOP&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.3&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.4&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.5&lt;br /&gt;
|svnExtRoot&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.6&lt;br /&gt;
|Arcserve&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.7&lt;br /&gt;
|Agi-Zero&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.8&lt;br /&gt;
|Frans Test VM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.9&lt;br /&gt;
|Ag-Webhosting&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.10&lt;br /&gt;
|Belegt&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.11&lt;br /&gt;
|AGI-DC2012&lt;br /&gt;
|[[Ag-DC2]]&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.12&lt;br /&gt;
|AG-DNS1&lt;br /&gt;
|[[Ag-DNS]]&lt;br /&gt;
|Agilos&lt;br /&gt;
|[http://172.22.1.12/poweradmin/ PowerAdmin]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.13&lt;br /&gt;
|AG-DNS2&lt;br /&gt;
|[[Ag-DNS]]&lt;br /&gt;
|Agilos&lt;br /&gt;
|[http://172.22.1.13/poweradmin/ PowerAdmin]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.14&lt;br /&gt;
|AG-PROXY (green)&lt;br /&gt;
|IP-COP PROXY&lt;br /&gt;
|Agilos&lt;br /&gt;
|[https://172.22.1.14:8443 IPCOP INTERFACE]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.15&lt;br /&gt;
|AG-ESXI02&lt;br /&gt;
|esxi with backup applince&lt;br /&gt;
|Agilos&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.16&lt;br /&gt;
|OpenVPN&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|[https://172.22.1.16/admin/ OpenVPN Admin]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.17&lt;br /&gt;
|VM Klosterfrau&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.18&lt;br /&gt;
|Asterisk SIP&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.19&lt;br /&gt;
|Nagios02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.20&lt;br /&gt;
|Kerio Workspace&lt;br /&gt;
|Test Martin&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.21&lt;br /&gt;
|TCG-Hermann-VPN-Connector&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.22&lt;br /&gt;
|CLCSAP01&lt;br /&gt;
|Sapsystem&lt;br /&gt;
|CLCXingteg&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.23&lt;br /&gt;
|CLCVPN&lt;br /&gt;
|VPN&lt;br /&gt;
| CLCXingteg&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.24&lt;br /&gt;
|SAProuter CLC&lt;br /&gt;
|&lt;br /&gt;
| CLC Xingteg&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.25&lt;br /&gt;
|openvpn2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.26&lt;br /&gt;
|ursa-pxe TEMP&lt;br /&gt;
|&lt;br /&gt;
| Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.27&lt;br /&gt;
|WORLD_SAP_ROUTER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.28&lt;br /&gt;
|AVA RELEASEWECHSEL VM ALTES SYSTEM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.29&lt;br /&gt;
|AVA-SAPPROD-NEU&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.30&lt;br /&gt;
|polybius_man_rfc&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.31&lt;br /&gt;
|Saprouter_neu_KD&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.32&lt;br /&gt;
|Shop02_dominik&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.33&lt;br /&gt;
|IPSEC SAPROUTER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.34&lt;br /&gt;
|Barcode Test VM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.35&lt;br /&gt;
|Strabag Züblin Django&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.36&lt;br /&gt;
|AVA P01 Releasewechsel&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.37&lt;br /&gt;
|Frans BO Test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.38&lt;br /&gt;
|AVA Velsen Release-Wechsel&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.39&lt;br /&gt;
|AVA P02 Sandbox&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.40&lt;br /&gt;
| ipcop&lt;br /&gt;
|&lt;br /&gt;
| JP GLOBAL Markets&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.41&lt;br /&gt;
| SAP B One system&lt;br /&gt;
|&lt;br /&gt;
| JP GLOBAL Markets&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.42&lt;br /&gt;
|JP TS&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.43&lt;br /&gt;
|AVA P02 Sandbox Test 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.44&lt;br /&gt;
|ag-ftp01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.45&lt;br /&gt;
|CLC SAPROUTER NEU&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.46&lt;br /&gt;
|Malteser VPN Connector&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.47&lt;br /&gt;
|AVA Releasewechsel P02 clone&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.48&lt;br /&gt;
|ewm-clone-von-amotiq&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.49&lt;br /&gt;
|AG-TCG-ECC6.0&lt;br /&gt;
|&lt;br /&gt;
| TCG Herrmann&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.50&lt;br /&gt;
|RRC SAPSRVT01&lt;br /&gt;
|&lt;br /&gt;
|RRC Power Solution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.51 - 172.22.1.100=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.51&lt;br /&gt;
|IDES&lt;br /&gt;
|&lt;br /&gt;
|PRISM&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.52&lt;br /&gt;
|SOLMAN01&lt;br /&gt;
|&lt;br /&gt;
|PRISM&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.53&lt;br /&gt;
|SOLMAN02&lt;br /&gt;
|&lt;br /&gt;
|PRISM&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.54&lt;br /&gt;
|DHCP Server 0er Netz&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.55&lt;br /&gt;
|Agilos OPENERP01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.56&lt;br /&gt;
|Vorlage ERP 6.0 EHP 6 T01&lt;br /&gt;
|&lt;br /&gt;
|Agilos GmbH &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.57&lt;br /&gt;
|Vorlage ERP 6.0 EHP 6 P01&lt;br /&gt;
|&lt;br /&gt;
|Agilos GmbH &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.58&lt;br /&gt;
|Klon RRC SAPSRVT01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.59&lt;br /&gt;
|Ontege Plattform dillinger hütte&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.60&lt;br /&gt;
|Laptop Rechenzentrum&lt;br /&gt;
|Agilos&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.61&lt;br /&gt;
|VPN0001&lt;br /&gt;
|vpn.agilos-service.de&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.62&lt;br /&gt;
|Neuaufsetzung ERP 6.0 EHP 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.63&lt;br /&gt;
|Mail Sender ESVA&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.64&lt;br /&gt;
|Systemkopie von P10&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.65&lt;br /&gt;
|CLC TEST&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.66&lt;br /&gt;
|IP-CAMERA&lt;br /&gt;
|RZ&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.67&lt;br /&gt;
|VPN0001&lt;br /&gt;
|vpn.agilos-service.de&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.68&lt;br /&gt;
|VPN0001&lt;br /&gt;
|vpn.agilos-service.de&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.69&lt;br /&gt;
|SAP TCG P01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.70&lt;br /&gt;
|AG-DJANGO&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.71&lt;br /&gt;
|iotester&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.72&lt;br /&gt;
|iotester2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.73&lt;br /&gt;
|EFA - Mail sender and reciver&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.74&lt;br /&gt;
|AVA Releasewechsel LIVE!&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.75&lt;br /&gt;
|AVA Klon von *.43&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.76&lt;br /&gt;
|AVA P01 Systemkopie&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.77&lt;br /&gt;
|AG-Win2012&lt;br /&gt;
|Act! Pro&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.78&lt;br /&gt;
|ontego rrc saprouter&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.79&lt;br /&gt;
|CLC SBS Test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.80&lt;br /&gt;
|Alarm App Server&lt;br /&gt;
|Agilos&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.81&lt;br /&gt;
|mill01.sap&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.82&lt;br /&gt;
|SAPP01-rrc-rudi&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.83&lt;br /&gt;
|CLC P01 Clone Releasewechsel&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.84&lt;br /&gt;
|AG-PXE01-TEST&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.85&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.86&lt;br /&gt;
|Thoma.sap.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.87&lt;br /&gt;
|fiori01.sap&lt;br /&gt;
|Saarbandstahl&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.88&lt;br /&gt;
|Kerio Operator&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.89&lt;br /&gt;
|KAFKA&lt;br /&gt;
|Agilos and Friends (Sofis)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.90&lt;br /&gt;
|Win 2008 Act!&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.91&lt;br /&gt;
|goettfert_not&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.92&lt;br /&gt;
|Hebbel.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.93&lt;br /&gt;
|BECHER&lt;br /&gt;
|RVI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.94&lt;br /&gt;
|Claudius&lt;br /&gt;
|RVI Prod System&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.95&lt;br /&gt;
| DEV01&lt;br /&gt;
| Entwicklungsmaschine&lt;br /&gt;
| Apache2, PHP5, MySQL5, SVN&lt;br /&gt;
Testsystem für Webentwicklungen und andere Projekte auf unbestimmte Zeit. (Patrick Jun. 2014)&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.96&lt;br /&gt;
|AGI-SVN&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.97&lt;br /&gt;
|AGI-PORTAL-DEV&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.98&lt;br /&gt;
|AGI-PORTAL-PROD&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.99&lt;br /&gt;
|Seafile.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.100&lt;br /&gt;
|dns1.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.101 - 172.22.1.150=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.101&lt;br /&gt;
|ov4760.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.102&lt;br /&gt;
|ag-dev&lt;br /&gt;
|Entwicklungs-Server mit SVN, Apache, PHP, MySQL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.103&lt;br /&gt;
|Agi-OCS&lt;br /&gt;
|Office Communication server on win 2003&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.104&lt;br /&gt;
|SAProuter &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.105&lt;br /&gt;
|SAProuter - selbe wie 104&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.106&lt;br /&gt;
|AGI-GUPTA&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.107&lt;br /&gt;
|ZERO AUF IPFIRE&lt;br /&gt;
|NEU NEU NEU&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.108&lt;br /&gt;
|RVI-SAPROUTER-VPN&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.109&lt;br /&gt;
|elearning.agilos.de&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.110&lt;br /&gt;
|aginag.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.111&lt;br /&gt;
|agilog.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.112&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.113&lt;br /&gt;
|hassia vpn connector&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.114&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.115&lt;br /&gt;
|CLC Test Joachim&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.116&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.117&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.118&lt;br /&gt;
|NLS-FILES&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.119&lt;br /&gt;
|MANAG-ISO01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.120&lt;br /&gt;
|agidb.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.121&lt;br /&gt;
|agistore.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.122&lt;br /&gt;
|FS-SAVE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.123&lt;br /&gt;
|agsharep01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.124&lt;br /&gt;
|sharepoint.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.125&lt;br /&gt;
|Alcatel Omniswitch 6850-48&lt;br /&gt;
|(Austauschswitch)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.126&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.127&lt;br /&gt;
|Debian Test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.128&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.129&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.130&lt;br /&gt;
|agidc.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.131&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.132&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.133&lt;br /&gt;
|Asterisk Telefonanlage&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.134&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.135&lt;br /&gt;
|ERP Aura Sun Tec&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.136&lt;br /&gt;
|grass&lt;br /&gt;
|grass.sapsystems.agilos-service.de&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.137&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.138&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.139&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.140&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.141&lt;br /&gt;
|DEV02 - ENT Portal&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.142&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.143&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.144&lt;br /&gt;
|vmware io analyser&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.145&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.146&lt;br /&gt;
|ag-shop01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.147&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.148&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.149&lt;br /&gt;
|ag-asp.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.150&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.151 - 172.22.1.200=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.151&lt;br /&gt;
|Odoo Testsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.152&lt;br /&gt;
|Tryton Testsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.153&lt;br /&gt;
|OFBiz Testsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.154&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.155&lt;br /&gt;
|xmpp, eJabber Doc Fischer&lt;br /&gt;
|XMPP Messaging Server&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.156&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.157&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.158&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.159&lt;br /&gt;
|Christian T01 rw test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.160&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.161&lt;br /&gt;
|rfc01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.162&lt;br /&gt;
|rfc02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.163&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.164&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.165&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.166&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.167&lt;br /&gt;
|AGOVPN01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.168&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.169&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.170&lt;br /&gt;
|mainsaprouter&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.171&lt;br /&gt;
|bscout&lt;br /&gt;
|&lt;br /&gt;
| Bonner&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.172&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.173&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.174&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.175&lt;br /&gt;
|Business Integration Server (BIS 5)&lt;br /&gt;
|Seeburger BIS 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.176&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.177&lt;br /&gt;
|Christopher Kratz Workstation&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.178&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.179&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.180&lt;br /&gt;
|SCHILLER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.181&lt;br /&gt;
|marx.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.182&lt;br /&gt;
|ag-shop01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.183&lt;br /&gt;
|Agilos Lessing IDES System ERP 6 EHP 7&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.184&lt;br /&gt;
|marx02.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.185&lt;br /&gt;
|sapides01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.186&lt;br /&gt;
|AGSOLE02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.187&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.188&lt;br /&gt;
|rilke.agilos.local&lt;br /&gt;
|Solution Manager 7.1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.189&lt;br /&gt;
|mozart.agilos.local&lt;br /&gt;
|P10 Systemkopie&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.190&lt;br /&gt;
|goethe.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.191&lt;br /&gt;
|goethe_Clone&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.192&lt;br /&gt;
|Solreco EHP 7 TEST&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.193&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.194&lt;br /&gt;
|benn.sap&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.195&lt;br /&gt;
|AG-TS&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.196&lt;br /&gt;
|aspsapp20.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.197&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.198&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.199&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.200&lt;br /&gt;
|P10-GOETHE-NEU&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.201 - 172.22.1.250=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.201&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.202&lt;br /&gt;
|Office Communicator 2007&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.203&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.204&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.205&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.206&lt;br /&gt;
|Workstation Win7&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.207&lt;br /&gt;
|Workstation XP&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.208&lt;br /&gt;
|Workstation Win7 Martin&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.209&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 172.22.1.210&lt;br /&gt;
| workspace01&lt;br /&gt;
| Speicherplatz für Betriebssystem-Profilordner&lt;br /&gt;
| Agilos GmbH&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.211&lt;br /&gt;
|vmdr01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.212&lt;br /&gt;
|Sofis AG IPFire&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.213&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.214&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.215&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.216&lt;br /&gt;
|Stadco Copy Christopher&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.217&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.218&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.219&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.220&lt;br /&gt;
|vcenter01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.221&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.222&lt;br /&gt;
|vCenter02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.223&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.224&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.225&lt;br /&gt;
|wiki TicketSystem&lt;br /&gt;
|&lt;br /&gt;
| Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.226&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.227&lt;br /&gt;
|Dominik Hussong Workstation Win10&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.228&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.229&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.230&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.231&lt;br /&gt;
|Messcomputer Rechenzentrum&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.232&lt;br /&gt;
|Agilos DATALOGGER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.233&lt;br /&gt;
|Messcomputer Heizungsraum&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.234&lt;br /&gt;
|Kerio Telefonanlage&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.235&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.236&lt;br /&gt;
|Göttfert GP1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.237&lt;br /&gt;
|Göttfert GT1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.238&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.239&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.240&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.241&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.242&lt;br /&gt;
|Demo Ticketsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.243&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.244&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.245&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.246&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.247&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.248&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.249&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.250&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.0.*&amp;diff=1970</id>
		<title>IP Adressen Agilos 172.22.0.*</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.0.*&amp;diff=1970"/>
		<updated>2018-02-05T07:20:17Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Vergebene, feste IP-Adressen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Infrastruktur]]&lt;br /&gt;
[[category:IP Adressen]]&lt;br /&gt;
===DHCP-Adressen===&lt;br /&gt;
Die IP-Adressen im Bereich von 172.22.0.200 bis 172.22.0.254 werden von unserem [[DHCP-Server Vergeben]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vergebene, feste IP-Adressen===&lt;br /&gt;
{| class=&amp;quot;wikitable unsortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.1&lt;br /&gt;
|&lt;br /&gt;
|Gateway&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.3&lt;br /&gt;
|&lt;br /&gt;
|Alcatel Switch RZ 6400&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.4&lt;br /&gt;
|&lt;br /&gt;
|Alcatel Switch Dach 6400&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.10&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.11&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.12&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.13&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.14&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.15&lt;br /&gt;
|&lt;br /&gt;
|Drucker Lutz / c3660dn&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.18&lt;br /&gt;
|&lt;br /&gt;
|Asterisk SIP IBS&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.20&lt;br /&gt;
|&lt;br /&gt;
|Cisco-Linksys&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.55&lt;br /&gt;
|DHCP WIN 2008 + DC2&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.123&lt;br /&gt;
|amok&lt;br /&gt;
|Raspberry Pi Amok&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.150&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: Lutz ( ehem.)&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.181&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: Hussong&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.190&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: patrick&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.211&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: Kratz&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.0.*&amp;diff=1969</id>
		<title>IP Adressen Agilos 172.22.0.*</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.0.*&amp;diff=1969"/>
		<updated>2018-02-02T10:39:14Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Vergebene, feste IP-Adressen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Infrastruktur]]&lt;br /&gt;
[[category:IP Adressen]]&lt;br /&gt;
===DHCP-Adressen===&lt;br /&gt;
Die IP-Adressen im Bereich von 172.22.0.200 bis 172.22.0.254 werden von unserem [[DHCP-Server Vergeben]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vergebene, feste IP-Adressen===&lt;br /&gt;
{| class=&amp;quot;wikitable unsortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.1&lt;br /&gt;
|&lt;br /&gt;
|Gateway&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.3&lt;br /&gt;
|&lt;br /&gt;
|Alcatel Switch RZ 6400&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.4&lt;br /&gt;
|&lt;br /&gt;
|Alcatel Switch Dach 6400&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.10&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.11&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.12&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.13&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.14&lt;br /&gt;
|&lt;br /&gt;
|Drucker&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.15&lt;br /&gt;
|&lt;br /&gt;
|Drucker Lutz / c3660dn&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.18&lt;br /&gt;
|&lt;br /&gt;
|Asterisk SIP IBS&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.20&lt;br /&gt;
|&lt;br /&gt;
|Cisco-Linksys&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.26&lt;br /&gt;
|&lt;br /&gt;
|ursa-pxe TEMP&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.55&lt;br /&gt;
|DHCP WIN 2008 + DC2&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.123&lt;br /&gt;
|amok&lt;br /&gt;
|Raspberry Pi Amok&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.150&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: Lutz ( ehem.)&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.181&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: Hussong&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.190&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: patrick&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|172.22.0.211&lt;br /&gt;
|&lt;br /&gt;
|Arbeitsplatz PC: Kratz&lt;br /&gt;
|Agilos&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1968</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1968"/>
		<updated>2018-01-29T15:18:01Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Windows Autounattend.xml erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht. Die erweiterten Bootoptionen erreicht man, indem man beim Computerstart F8 gedrückt hält.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1967</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1967"/>
		<updated>2018-01-29T15:15:24Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Windows Autounattend.xml erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation, also bei einer Installation ohne Autounattend.xml erscheint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1966</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1966"/>
		<updated>2018-01-29T15:13:49Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Windows Autounattend.xml erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFTP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden, muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt müssen das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; oder das &#039;&#039;&#039;Windows Assessment and Deployment Kit (Windows ADK)&#039;&#039;&#039;  zwingend installiert sein!&lt;br /&gt;
&lt;br /&gt;
Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: In einigen der folgenden Schritten werden Dateien in Systemordnern von Windows PE bearbeitet, wozu man Administratorrechte benötigt. Ist dies der Fall müssen die Dateien von einer Kommandozeile mit Adminrechten aus erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden. Außerdem gelten die Dateipfade für die Installation mit dem &amp;quot;WAIK&amp;quot;. Verwendet man das &amp;quot;Windows ADK&amp;quot; müssen die Pfade dementsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools\&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools\&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager (WSIM)“, welcher Teil des WAIK oder Windows ADK ist, erstellen. Bevor man den WSIM startet, muss man vor dem Computerstart in den erweiterten Startoptionen &amp;quot;Erzwingen der Treibersignatur deaktivieren&amp;quot; auswählen, damit beim Import der &amp;quot;install.wim&amp;quot; Datei keine Fehlermeldung auftaucht.&lt;br /&gt;
Im WSIM wird zunächst die „install.wim“ aus einem entpackten Windowsinstallationsabbild importiert und danach eine Katalogdatei zu dieser Windowsversion erstellt. Ist die Katalogdatei erstellt, kann man eine Antwortdatei erstellen. Diese muss als &amp;quot;Autounattend.xml&amp;quot; der Windowsinstallation beigefügt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Erstellt man eine Autounattend.xml Datei für ein Image, dem verschiedene Versionen beiliegen, muss man beim Unterpunkt &amp;quot;InstallFrom&amp;quot; die passende Version Eintragen. Bei dem Tag &amp;quot;key&amp;quot; gibt man an, ob man entweder die gewünschte Verison mit Ihrem Namen oder ihrem Index angeben möchte (&amp;quot;/IMAGE/INDEX&amp;quot; bzw. &amp;quot;/IMAGE/NAME&amp;quot;). Bei dem Tag &amp;quot;Value&amp;quot; trägt man dann den entsprechenden Index (0-n) bzw. Name (z.B. Windows Server 2016 SERVERSTANDART) ein. Die Indexnummern entsprechen der Position in der Auswahlliste, welche bei einer Standartinstallation erscheint, also bei einer Installation ohne Autounattend.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.1.*&amp;diff=1944</id>
		<title>IP Adressen Agilos 172.22.1.*</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=IP_Adressen_Agilos_172.22.1.*&amp;diff=1944"/>
		<updated>2017-11-10T09:09:52Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* 172.22.1.101 - 172.22.1.150 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:IP Adressen]]&lt;br /&gt;
[[category:Infrastruktur]]&lt;br /&gt;
=172.22.1.1 - 172.22.1.50=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen !! Control&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.1&lt;br /&gt;
|c48-core-1-gi3-101.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.2&lt;br /&gt;
|Agilos IPCOP&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.3&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.4&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.5&lt;br /&gt;
|svnExtRoot&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.6&lt;br /&gt;
|Arcserve&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.7&lt;br /&gt;
|Agi-Zero&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.8&lt;br /&gt;
|Frans Test VM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.9&lt;br /&gt;
|Ag-Webhosting&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.10&lt;br /&gt;
|Belegt&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.11&lt;br /&gt;
|AGI-DC2012&lt;br /&gt;
|[[Ag-DC2]]&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.12&lt;br /&gt;
|AG-DNS1&lt;br /&gt;
|[[Ag-DNS]]&lt;br /&gt;
|Agilos&lt;br /&gt;
|[http://172.22.1.12/poweradmin/ PowerAdmin]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.13&lt;br /&gt;
|AG-DNS2&lt;br /&gt;
|[[Ag-DNS]]&lt;br /&gt;
|Agilos&lt;br /&gt;
|[http://172.22.1.13/poweradmin/ PowerAdmin]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.14&lt;br /&gt;
|AG-PROXY (green)&lt;br /&gt;
|IP-COP PROXY&lt;br /&gt;
|Agilos&lt;br /&gt;
|[https://172.22.1.14:8443 IPCOP INTERFACE]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.15&lt;br /&gt;
|AG-ESXI02&lt;br /&gt;
|esxi with backup applince&lt;br /&gt;
|Agilos&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.16&lt;br /&gt;
|OpenVPN&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|[https://172.22.1.16/admin/ OpenVPN Admin]&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.17&lt;br /&gt;
|VM Klosterfrau&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.18&lt;br /&gt;
|Asterisk SIP&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.19&lt;br /&gt;
|Nagios02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.20&lt;br /&gt;
|Kerio Workspace&lt;br /&gt;
|Test Martin&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.21&lt;br /&gt;
|TCG-Hermann-VPN-Connector&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.22&lt;br /&gt;
|CLCSAP01&lt;br /&gt;
|Sapsystem&lt;br /&gt;
|CLCXingteg&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.23&lt;br /&gt;
|CLCVPN&lt;br /&gt;
|VPN&lt;br /&gt;
| CLCXingteg&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.24&lt;br /&gt;
|SAProuter CLC&lt;br /&gt;
|&lt;br /&gt;
| CLC Xingteg&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.25&lt;br /&gt;
|openvpn2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.27&lt;br /&gt;
|WORLD_SAP_ROUTER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.28&lt;br /&gt;
|AVA RELEASEWECHSEL VM ALTES SYSTEM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.29&lt;br /&gt;
|AVA-SAPPROD-NEU&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.30&lt;br /&gt;
|polybius_man_rfc&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.31&lt;br /&gt;
|Saprouter_neu_KD&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.32&lt;br /&gt;
|Shop02_dominik&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.33&lt;br /&gt;
|IPSEC SAPROUTER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.34&lt;br /&gt;
|Barcode Test VM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.35&lt;br /&gt;
|Strabag Züblin Django&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.36&lt;br /&gt;
|AVA P01 Releasewechsel&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.37&lt;br /&gt;
|Frans BO Test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.38&lt;br /&gt;
|AVA Velsen Release-Wechsel&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.39&lt;br /&gt;
|AVA P02 Sandbox&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.40&lt;br /&gt;
| ipcop&lt;br /&gt;
|&lt;br /&gt;
| JP GLOBAL Markets&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.41&lt;br /&gt;
| SAP B One system&lt;br /&gt;
|&lt;br /&gt;
| JP GLOBAL Markets&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.42&lt;br /&gt;
|JP TS&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.43&lt;br /&gt;
|AVA P02 Sandbox Test 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.44&lt;br /&gt;
|ag-ftp01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.45&lt;br /&gt;
|CLC SAPROUTER NEU&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.46&lt;br /&gt;
|Malteser VPN Connector&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.47&lt;br /&gt;
|AVA Releasewechsel P02 clone&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.48&lt;br /&gt;
|ewm-clone-von-amotiq&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.49&lt;br /&gt;
|AG-TCG-ECC6.0&lt;br /&gt;
|&lt;br /&gt;
| TCG Herrmann&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.50&lt;br /&gt;
|RRC SAPSRVT01&lt;br /&gt;
|&lt;br /&gt;
|RRC Power Solution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.51 - 172.22.1.100=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.51&lt;br /&gt;
|IDES&lt;br /&gt;
|&lt;br /&gt;
|PRISM&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.52&lt;br /&gt;
|SOLMAN01&lt;br /&gt;
|&lt;br /&gt;
|PRISM&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.53&lt;br /&gt;
|SOLMAN02&lt;br /&gt;
|&lt;br /&gt;
|PRISM&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.54&lt;br /&gt;
|DHCP Server 0er Netz&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.55&lt;br /&gt;
|Agilos OPENERP01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.56&lt;br /&gt;
|Vorlage ERP 6.0 EHP 6 T01&lt;br /&gt;
|&lt;br /&gt;
|Agilos GmbH &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.57&lt;br /&gt;
|Vorlage ERP 6.0 EHP 6 P01&lt;br /&gt;
|&lt;br /&gt;
|Agilos GmbH &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.58&lt;br /&gt;
|Klon RRC SAPSRVT01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.59&lt;br /&gt;
|Ontege Plattform dillinger hütte&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.60&lt;br /&gt;
|Laptop Rechenzentrum&lt;br /&gt;
|Agilos&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.61&lt;br /&gt;
|VPN0001&lt;br /&gt;
|vpn.agilos-service.de&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.62&lt;br /&gt;
|Neuaufsetzung ERP 6.0 EHP 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.63&lt;br /&gt;
|Mail Sender ESVA&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.64&lt;br /&gt;
|Systemkopie von P10&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.65&lt;br /&gt;
|CLC TEST&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.66&lt;br /&gt;
|IP-CAMERA&lt;br /&gt;
|RZ&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.67&lt;br /&gt;
|VPN0001&lt;br /&gt;
|vpn.agilos-service.de&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.68&lt;br /&gt;
|VPN0001&lt;br /&gt;
|vpn.agilos-service.de&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.69&lt;br /&gt;
|SAP TCG P01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.70&lt;br /&gt;
|AG-DJANGO&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.71&lt;br /&gt;
|iotester&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.72&lt;br /&gt;
|iotester2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.73&lt;br /&gt;
|EFA - Mail sender and reciver&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.74&lt;br /&gt;
|AVA Releasewechsel LIVE!&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.75&lt;br /&gt;
|AVA Klon von *.43&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.76&lt;br /&gt;
|AVA P01 Systemkopie&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.77&lt;br /&gt;
|AG-Win2012&lt;br /&gt;
|Act! Pro&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.78&lt;br /&gt;
|ontego rrc saprouter&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.79&lt;br /&gt;
|CLC SBS Test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.80&lt;br /&gt;
|Alarm App Server&lt;br /&gt;
|Agilos&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.81&lt;br /&gt;
|mill01.sap&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.82&lt;br /&gt;
|SAPP01-rrc-rudi&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.83&lt;br /&gt;
|CLC P01 Clone Releasewechsel&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.84&lt;br /&gt;
|AG-PXE01-TEST&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.85&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.86&lt;br /&gt;
|Thoma.sap.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.87&lt;br /&gt;
|fiori01.sap&lt;br /&gt;
|Saarbandstahl&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.88&lt;br /&gt;
|Kerio Operator&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.89&lt;br /&gt;
|KAFKA&lt;br /&gt;
|Agilos and Friends (Sofis)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.90&lt;br /&gt;
|Win 2008 Act!&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.91&lt;br /&gt;
|goettfert_not&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.92&lt;br /&gt;
|Hebbel.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.93&lt;br /&gt;
|BECHER&lt;br /&gt;
|RVI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.94&lt;br /&gt;
|Claudius&lt;br /&gt;
|RVI Prod System&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.95&lt;br /&gt;
| DEV01&lt;br /&gt;
| Entwicklungsmaschine&lt;br /&gt;
| Apache2, PHP5, MySQL5, SVN&lt;br /&gt;
Testsystem für Webentwicklungen und andere Projekte auf unbestimmte Zeit. (Patrick Jun. 2014)&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.96&lt;br /&gt;
|AGI-SVN&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.97&lt;br /&gt;
|AGI-PORTAL-DEV&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.98&lt;br /&gt;
|AGI-PORTAL-PROD&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.99&lt;br /&gt;
|Seafile.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.100&lt;br /&gt;
|dns1.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.101 - 172.22.1.150=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.101&lt;br /&gt;
|ov4760.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.102&lt;br /&gt;
|ag-dev&lt;br /&gt;
|Entwicklungs-Server mit SVN, Apache, PHP, MySQL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.103&lt;br /&gt;
|Agi-OCS&lt;br /&gt;
|Office Communication server on win 2003&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.104&lt;br /&gt;
|SAProuter &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.105&lt;br /&gt;
|SAProuter - selbe wie 104&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.106&lt;br /&gt;
|AGI-GUPTA&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.107&lt;br /&gt;
|ZERO AUF IPFIRE&lt;br /&gt;
|NEU NEU NEU&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.108&lt;br /&gt;
|RVI-SAPROUTER-VPN&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.109&lt;br /&gt;
|elearning.agilos.de&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.110&lt;br /&gt;
|aginag.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.111&lt;br /&gt;
|agilog.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.112&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.113&lt;br /&gt;
|hassia vpn connector&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.114&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.115&lt;br /&gt;
|CLC Test Joachim&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.116&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.117&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.118&lt;br /&gt;
|NLS-FILES&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.119&lt;br /&gt;
|MANAG-ISO01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.120&lt;br /&gt;
|agidb.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.121&lt;br /&gt;
|agistore.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.122&lt;br /&gt;
|FS-SAVE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.123&lt;br /&gt;
|agsharep01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.124&lt;br /&gt;
|sharepoint.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.125&lt;br /&gt;
|Alcatel Omniswitch 6850-48&lt;br /&gt;
|(Austauschswitch)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.126&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.127&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.128&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.129&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.130&lt;br /&gt;
|agidc.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.131&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.132&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.133&lt;br /&gt;
|Asterisk Telefonanlage&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.134&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.135&lt;br /&gt;
|ERP Aura Sun Tec&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.136&lt;br /&gt;
|grass&lt;br /&gt;
|grass.sapsystems.agilos-service.de&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.137&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.138&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.139&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.140&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.141&lt;br /&gt;
|DEV02 - ENT Portal&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.142&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.143&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.144&lt;br /&gt;
|vmware io analyser&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.145&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.146&lt;br /&gt;
|ag-shop01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.147&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.148&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.149&lt;br /&gt;
|ag-asp.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.150&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.151 - 172.22.1.200=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.151&lt;br /&gt;
|Odoo Testsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.152&lt;br /&gt;
|Tryton Testsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.153&lt;br /&gt;
|OFBiz Testsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.154&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.155&lt;br /&gt;
|xmpp, eJabber Doc Fischer&lt;br /&gt;
|XMPP Messaging Server&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.156&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.157&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.158&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.159&lt;br /&gt;
|Christian T01 rw test&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.160&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.161&lt;br /&gt;
|rfc01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.162&lt;br /&gt;
|rfc02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.163&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.164&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.165&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.166&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.167&lt;br /&gt;
|AGOVPN01&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.168&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.169&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.170&lt;br /&gt;
|mainsaprouter&lt;br /&gt;
|&lt;br /&gt;
|Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.171&lt;br /&gt;
|bscout&lt;br /&gt;
|&lt;br /&gt;
| Bonner&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.172&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.173&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.174&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.175&lt;br /&gt;
|Business Integration Server (BIS 5)&lt;br /&gt;
|Seeburger BIS 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.176&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.177&lt;br /&gt;
|Christopher Kratz Workstation&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.178&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.179&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.180&lt;br /&gt;
|SCHILLER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.181&lt;br /&gt;
|marx.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.182&lt;br /&gt;
|ag-shop01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.183&lt;br /&gt;
|Agilos Lessing IDES System ERP 6 EHP 7&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.184&lt;br /&gt;
|marx02.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.185&lt;br /&gt;
|sapides01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.186&lt;br /&gt;
|AGSOLE02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.187&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.188&lt;br /&gt;
|rilke.agilos.local&lt;br /&gt;
|Solution Manager 7.1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.189&lt;br /&gt;
|mozart.agilos.local&lt;br /&gt;
|P10 Systemkopie&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.190&lt;br /&gt;
|goethe.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.191&lt;br /&gt;
|goethe_Clone&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.192&lt;br /&gt;
|Solreco EHP 7 TEST&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.193&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.194&lt;br /&gt;
|benn.sap&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.195&lt;br /&gt;
|AG-TS&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.196&lt;br /&gt;
|aspsapp20.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.197&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.198&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.199&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.200&lt;br /&gt;
|P10-GOETHE-NEU&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=172.22.1.201 - 172.22.1.250=&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! IP !! NAME !! class=&amp;quot;unsortable&amp;quot; |  Beschreibung !! Unternehmen &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.201&lt;br /&gt;
|BELEGT&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.202&lt;br /&gt;
|Office Communicator 2007&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.203&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.204&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.205&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.206&lt;br /&gt;
|Workstation Win7&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.207&lt;br /&gt;
|Workstation XP&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.208&lt;br /&gt;
|Workstation Win7 Martin&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.209&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 172.22.1.210&lt;br /&gt;
| workspace01&lt;br /&gt;
| Speicherplatz für Betriebssystem-Profilordner&lt;br /&gt;
| Agilos GmbH&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.211&lt;br /&gt;
|vmdr01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.212&lt;br /&gt;
|Sofis AG IPFire&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.213&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.214&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.215&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.216&lt;br /&gt;
|Stadco Copy Christopher&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.217&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.218&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.219&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.220&lt;br /&gt;
|vcenter01.agilos.local&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.221&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.222&lt;br /&gt;
|vCenter02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.223&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.224&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.225&lt;br /&gt;
|wiki TicketSystem&lt;br /&gt;
|&lt;br /&gt;
| Agilos&lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.226&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.227&lt;br /&gt;
|Dominik Hussong Workstation Win10&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.228&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.229&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.230&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.231&lt;br /&gt;
|Messcomputer Rechenzentrum&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.232&lt;br /&gt;
|Agilos DATALOGGER&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.233&lt;br /&gt;
|Messcomputer Heizungsraum&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.234&lt;br /&gt;
|Kerio Telefonanlage&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.235&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.236&lt;br /&gt;
|Göttfert GP1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.237&lt;br /&gt;
|Göttfert GT1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.238&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.239&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.240&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.241&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.242&lt;br /&gt;
|Demo Ticketsystem&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.243&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.244&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.245&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.246&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.247&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.248&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.249&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|172.22.1.250&lt;br /&gt;
|Frei&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1885</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1885"/>
		<updated>2016-07-28T13:55:56Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFT-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt muss das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; zwingend installiert sein!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager“, welcher Teil des Windows Automated Installation Toolkit (WAIK) ist, erstellen. Hierbei wird zunächst die „install.wim“ in einem entpackten Windowsinstallationsabbild ausgewählt und danach eine Antwortdatei zu dieser Windowsversion erstellt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter LABEL wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1884</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1884"/>
		<updated>2016-07-28T13:55:27Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFT-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt muss das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; zwingend installiert sein!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager“, welcher Teil des Windows Automated Installation Toolkit (WAIK) ist, erstellen. Hierbei wird zunächst die „install.wim“ in einem entpackten Windowsinstallationsabbild ausgewählt und danach eine Antwortdatei zu dieser Windowsversion erstellt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter Label wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1883</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1883"/>
		<updated>2016-07-28T13:55:15Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFT-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt muss das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; zwingend installiert sein!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager“, welcher Teil des Windows Automated Installation Toolkit (WAIK) ist, erstellen. Hierbei wird zunächst die „install.wim“ in einem entpackten Windowsinstallationsabbild ausgewählt und danach eine Antwortdatei zu dieser Windowsversion erstellt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter Label wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1882</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1882"/>
		<updated>2016-07-28T13:55:00Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Schritt-für-Schritt-Anleitung: Einbinden von Rescuetools / Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFT-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt muss das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; zwingend installiert sein!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager“, welcher Teil des Windows Automated Installation Toolkit (WAIK) ist, erstellen. Hierbei wird zunächst die „install.wim“ in einem entpackten Windowsinstallationsabbild ausgewählt und danach eine Antwortdatei zu dieser Windowsversion erstellt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescue Tools / Images =&lt;br /&gt;
Um weitere Images einzubinden (z.B.Rescue Tools wie Acronis) muss zuerst die entsprechende iso-Datei auf dem Server platziert werden und anschließend muss das Auswahlmenü angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Hochladen des Images:&lt;br /&gt;
Die Imagedatei der einzubindenden Software muss im Ordner &amp;quot;/var/lib/tftpboot&amp;quot; abgelegt werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
Anschließend muss nun noch die Datei &amp;quot;/var/lib/tftpboot/pxelinux.cfg/other.menu&amp;quot; um die folgenden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
 LABEL	   Acronis Backup 2014&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   &#039;&#039;&#039;/Acronis_Backup2014.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinter Label wird dabei der Text platziert, wie er im Auswahlmenü angezeigt werden soll. Der hier fettgeschriebene Teil hinter INITRD muss durch den relativen Pfad zur iso-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1881</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1881"/>
		<updated>2016-07-28T13:47:45Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Schritt-für-Schritt-Anleitung: Einbinden von Rescuetools/Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFT-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt muss das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; zwingend installiert sein!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager“, welcher Teil des Windows Automated Installation Toolkit (WAIK) ist, erstellen. Hierbei wird zunächst die „install.wim“ in einem entpackten Windowsinstallationsabbild ausgewählt und danach eine Antwortdatei zu dieser Windowsversion erstellt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescuetools / Images =&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1880</id>
		<title>PXE-Server und Windows Unattended Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=PXE-Server_und_Windows_Unattended_Installation&amp;diff=1880"/>
		<updated>2016-07-28T13:47:18Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
&lt;br /&gt;
= Voraussetzungen =&lt;br /&gt;
&lt;br /&gt;
- Ubuntu 12.04 LTS&lt;br /&gt;
&lt;br /&gt;
- Benötigte Pakete unter Ubuntu:&lt;br /&gt;
 dhcp3-server (zu Testzwecken, übernimmt später der Windows Server)&lt;br /&gt;
 tftpd-hpa&lt;br /&gt;
 nfs-kernel-server&lt;br /&gt;
 samba&lt;br /&gt;
 samba-common&lt;br /&gt;
 syslinux&lt;br /&gt;
 &lt;br /&gt;
 Paketliste zum Kopieren:&lt;br /&gt;
 sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server samba samba-common syslinux&lt;br /&gt;
- Windows Server 2008 R2 (als DHCP)&lt;br /&gt;
&lt;br /&gt;
- Windows Images (entpackt!), sonstige Installationsimages&lt;br /&gt;
&lt;br /&gt;
- Windows Automated Installation Toolkit (WAIK) für Windows 7 und der Ergänzung für Windows 7 SP1 (wird einfach nach C:\Program Files\Windows AIK\Tools\PETools drüberkopiert) auf einer normalen Windows-Maschine&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5753&lt;br /&gt;
 http://www.microsoft.com/de-de/download/details.aspx?id=5188 &lt;br /&gt;
&lt;br /&gt;
- Treiberpakete mit allen/vielen Netzwerktreibern für Windows 7 (32 &amp;amp; 64 Bit)&lt;br /&gt;
 http://driverpacks.net/downloads &lt;br /&gt;
&lt;br /&gt;
- WSUS Offline Update&lt;br /&gt;
&lt;br /&gt;
= Konfiguration der Server =&lt;br /&gt;
== Linux Server ==&lt;br /&gt;
=== DHCP-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes muss die Konfigurationsdatei &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; entsprechend angepasst werden:&lt;br /&gt;
&lt;br /&gt;
 # If this DHCP server is the official DHCP server for the local&lt;br /&gt;
 # network, the authoritative directive should be uncommented.&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &#039;&#039;&#039;allow booting;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;allow bootp;&#039;&#039;&#039;&lt;br /&gt;
 #Definition des ersten Subnetzes&lt;br /&gt;
 subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
        range 192.168.1.10 192.168.1.100;&lt;br /&gt;
        interface eth1;&lt;br /&gt;
        #Lease-Zeit in Sekunden&lt;br /&gt;
        default-lease-time 600;&lt;br /&gt;
        max-lease-time 7200;&lt;br /&gt;
        option routers 192.168.1.1;&lt;br /&gt;
        option subnet-mask 255.255.255.0;&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;next-server 192.168.1.1;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;filename &amp;quot;/pxelinux.0&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die fett markierten Zeilen sind dabei unerlässlich!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TFT-Server ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation des Paketes ist die Konfigurationsdatei &#039;&#039;&#039;/etc/default/tftpd-hpa&#039;&#039;&#039; wie folgt zu bearbeiten:&lt;br /&gt;
 TFTP_USERNAME=”tftp”&lt;br /&gt;
 TFTP_DIRECTORY=”/var/lib/tftpboot”&lt;br /&gt;
 TFTP_ADRESS=”0.0.0.0:69”&lt;br /&gt;
 TFTP_OPTIONS=”-l -s”&lt;br /&gt;
&lt;br /&gt;
=== NFS-Server ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;/etc/exports&#039;&#039;&#039; soll folgendermaßen aussehen:&lt;br /&gt;
 /nfsroot 192.168.1.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
 /nfsroot 172.22.0.0/255.255.255.0(rw,no_root_squash,sync,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Damit die Einstellungen übernommen werden muss der Dienst neugestartet werden:&lt;br /&gt;
 sudo /etc/init.d/nfs-kernel-server reload&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass die Adressbereiche 192.168.1.x sowie 172.22.0.x auf den Ordner /nfsroot Zugriff haben.&lt;br /&gt;
&lt;br /&gt;
Der NFS-Server wird für Linux-basierte (Live-)Betriebssysteme verwendet, da für diese die Samba-Freigabe (siehe unten) nicht verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Danach werden die für das Bootmenu benötigten Dateien in den Ordner &#039;&#039;&#039;/var/lib/tftpboot/&#039;&#039;&#039; abgelegt. Der DHCP-Server verweist uns zunächst auf die Datei &#039;&#039;&#039;pxelinux.0&#039;&#039;&#039; die wiederum in der Datei &#039;&#039;&#039;/pxelinux.cfg/default&#039;&#039;&#039; clientenunabhängig konfiguriert wird. &lt;br /&gt;
&lt;br /&gt;
Für die Darstellung eines einfachen Bootmenus wird die Datei &#039;&#039;&#039;menu.c32&#039;&#039;&#039; verwendet. &lt;br /&gt;
&lt;br /&gt;
Da es bei manchen Dell-Laptops (und anderen?) zu einem Fehler beim Booten von der lokalen Festplatte via PXE kommt (LOCALBOOT 0), wird ein Workaround mithilfe der Datei &#039;&#039;&#039;chain.c32&#039;&#039;&#039; vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Um das Menu übersichtlicher zu gestalten werden Untermenus erstellt. Diese befinden sich sich im Ordner /pxelinux.cfg/ und werden nach dem Schema x.menu benannt.&lt;br /&gt;
&lt;br /&gt;
Befehl:&lt;br /&gt;
 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ &lt;br /&gt;
 &amp;amp;&amp;amp; sudo mkdir /var/lib/tftboot/pxelinux.cfg &amp;amp;&amp;amp; sudo cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die default-Datei muss manuell angelegt werden!&#039;&#039; Auf diese Datei wird zurückgegriffen, falls keine clientspezifische Datei gefunden werden kann. &lt;br /&gt;
&lt;br /&gt;
Clientspezifische Konfigurationsdateien sind ähnlich wie die default-Datei zu erstellen. Die Benamung der Datei erfolgt jedoch nach der MAC-Adresse der clientseitigen Netzwerkkarte mit vorangestellter 01 (01-XX-XX-XX-XX-XX-XX) ODER die IP des Clients in hexadezimaler Form. In der Testkonfiguration werden clientspezifische Konfigurationsdateien derzeit nicht verwendet (Stand 24.06.14).&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration der &#039;&#039;&#039;default&#039;&#039;&#039;-Datei sieht wie folgt aus:&lt;br /&gt;
 DEFAULT      menu.c32&lt;br /&gt;
 ALLOWOPTIONS 0&lt;br /&gt;
 PROMPT       0&lt;br /&gt;
 TIMEOUT      50&lt;br /&gt;
 ONTIMEOUT    local&lt;br /&gt;
 &lt;br /&gt;
 MENU TITLE AGILOS MONSTER BOOT MENU&lt;br /&gt;
 &lt;br /&gt;
 LABEL      local&lt;br /&gt;
 MENU LABEL Local ^HDD&lt;br /&gt;
 KERNEL     chain.c32&lt;br /&gt;
 APPEND     hd0&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows&lt;br /&gt;
 MENU LABEL ^Windows&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/windows.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Linux&lt;br /&gt;
 MENU LABEL ^Linux&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/linux.menu&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Other&lt;br /&gt;
 MENU LABEL ^Other&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/other.menu&lt;br /&gt;
&lt;br /&gt;
Das Menu für Windows Installationen &#039;&#039;&#039;windows.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Windows Versionen&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32de.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 64 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_64en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall Win7 Pro 32 Bit Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86_32en.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Autoinstall WinServer2008R2 Englisch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64_2008.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 32 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x86.iso&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Windows 64 Bit alle Versionen&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
Das Menu für Linux Installationen &#039;&#039;&#039;linux.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Linux Versions&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 32 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/i386/vmlinuz&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL      ubuntu 14.04 64 Bit&lt;br /&gt;
 KERNEL     /ubuntu_14.04/amd64/vmlinuz.efi&lt;br /&gt;
 APPEND     nfsroot=172.22.1.84:/nfsroot/ubuntu-14.04-desktop-amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu_14.04/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
&lt;br /&gt;
Das Menu für sonstige Images &#039;&#039;&#039;other.menu&#039;&#039;&#039; sieht wie folgt aus:&lt;br /&gt;
 MENU TITLE Other&lt;br /&gt;
 &lt;br /&gt;
 LABEL      Return to Main Menu&lt;br /&gt;
 MENU LABEL ^Return to Main Menu&lt;br /&gt;
 KERNEL     menu.c32&lt;br /&gt;
 APPEND     pxelinux.cfg/default&lt;br /&gt;
 &lt;br /&gt;
 LABEL 	   Avira AntiVir Rescue System 06-2014&lt;br /&gt;
 KERNEL 	   /avira_rescue_06_2014/vmlinuz&lt;br /&gt;
 APPEND	   nfsroot=172.22.1.84:/nfsroot/avira_rescue_06_2014/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/avira_rescue_06_2014/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --&lt;br /&gt;
 &lt;br /&gt;
 LABEL	   pmagic&lt;br /&gt;
 LINUX	   /memdisk&lt;br /&gt;
 APPEND	   iso&lt;br /&gt;
 INITRD	   /pmagic_2013_08_01.iso&lt;br /&gt;
&lt;br /&gt;
=== Samba-Freigabe ===&lt;br /&gt;
&lt;br /&gt;
Nach der Installation der Komponenten (s.o.) wird die Konfigurationsdatei &#039;&#039;&#039;/etc/samba/smb.conf&#039;&#039;&#039; bearbeitet. Folgende Einstellungen werden vorgenommen:&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = DOCS&lt;br /&gt;
 netbios name = DOCS_SRV&lt;br /&gt;
 security = share&lt;br /&gt;
 encrypt passwords = true&lt;br /&gt;
 &lt;br /&gt;
 [nfsroot]&lt;br /&gt;
 comment = Data&lt;br /&gt;
 path = /nfsroot&lt;br /&gt;
 only guest = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
&lt;br /&gt;
== Windows-Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
Der DHCP-Server muss so eingestellt werden, dass er auf den TFTP-Server verweist, damit von dort die soeben konfigurierte pxelinux.0 Datei geladen werden kann.&lt;br /&gt;
&lt;br /&gt;
...folgt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WindowsPE Startimage =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Für diesen Schritt muss das &#039;&#039;&#039;Windows Automated Installation Toolkit (WAIK)&#039;&#039;&#039; zwingend installiert sein!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ausblick ==&lt;br /&gt;
&lt;br /&gt;
Damit das eigentliche Installationsimage geladen und installiert werden kann muss ein sog. WindowsPE Image vorgelagert werden. Dieses Image wird in den Arbeitsspeicher des Clienten geladen und stellt eine Art „Mini-Windows“ dar. &lt;br /&gt;
&lt;br /&gt;
In dieses WindowsPE Image wird eine Batch-Datei integriert, die ein Netzlaufwerk mountet und eine andere Batch-Datei, die auf diesem Netzlaufwerk liegt, startet. Erst die Batch-Datei auf dem Netzlaufwerk startet die eigentliche Windowsinstallation. Dies sorgt dafür, dass es möglich bleibt, die Windowsinstallation mit anderen Parametern zu starten, da die Batch-Datei auf dem Server beliebig angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
Da das WindowsPE Image standardmäßig keine/kaum Netzwerktreiber mit sich bringt, müssen diese manuell integriert werden. Hierfür wird ein Treiberpaket verwendet, welches alle/viele Netzwerktreiber enthält.&lt;br /&gt;
&lt;br /&gt;
Der große Vorteil des vorgelagerten WindowsPE Images ist, dass nur ca. 150-200 MB in den Arbeitsspeicher geladen werden müssen. Des Weiteren muss nicht vor der Installation das komplette Installationsimage auf die lokale Festplatte kopiert werden (und später ggf. händisch gelöscht werden), sondern die Installation wird direkt vom Server aus gestartet.&lt;br /&gt;
&lt;br /&gt;
== Erstellung der Images und Batch Dateien ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die nachfolgenden Befehle wurden unter einer Windows 32 Bit Version ausgeführt und müssen ggf. für eine 64 Bit Version angepasst werden! Die betroffenen Textteile wurden fett markiert und müssen durch amd64 ersetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die 64Bit Befehle wurden angepasst und sollten nun weitestgehend korrekt sein. --[[Spezial:Beiträge/172.22.0.179|Adrien]] 08:58, 5. Jul. 2016 (CEST)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die benötigten Dateien für das WindowsPE Image werden in einen Ordner kopiert, abhängig von der verwendeten Architektur.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; x86 C:\WinPE_x86&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\copype.cmd&amp;quot; amd64 C:\WinPE_x64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die in dem nun angelegten Ordner enthaltene „winpe.wim“ wird in den Ordner „mount“ eingebunden, damit wir die enthaltenen Dateien bearbeiten und ergänzen können.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x86\winpe.wim /Index:1 /MountDir:C:\WinPE_x86\mount&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Mount-Wim /WimFile:C:\WinPE_x64\winpe.wim /Index:1 /MountDir:C:\WinPE_x64\mount&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; In dem Ordner „C:\WinPE_*\mount\“ wird nun ein Ordner „local“ und ein Ordner „Tools“ erstellt. &lt;br /&gt;
In dem Ordner „Tools“ wird eine Datei mit dem Namen „wimscript.ini“ erstellt und eine Datei „imagex.exe“ kopiert. &lt;br /&gt;
In den Ordner „local“ wird eine Datei „init.cmd“ erstellt, die mithilfe von „winpeshl.ini“ gestartet wird.&lt;br /&gt;
&lt;br /&gt;
imagex.exe kopieren:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\x86\imagex.exe&amp;quot; C:\WinPE_x86\mount\Tools&lt;br /&gt;
64 Bit: &lt;br /&gt;
 copy &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\imagex.exe&amp;quot; C:\WinPE_x64\mount\Tools&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\Tools\wimscript.ini:&lt;br /&gt;
 [ExclusionList]&lt;br /&gt;
 ntfs.log&lt;br /&gt;
 hiberfil.sys&lt;br /&gt;
 pagefile.sys&lt;br /&gt;
 &amp;quot;System Volume Information&amp;quot;&lt;br /&gt;
 RECYCLER&lt;br /&gt;
 Windows\CSC&lt;br /&gt;
 &lt;br /&gt;
 [CompressionExclusionList]&lt;br /&gt;
 *.mp3&lt;br /&gt;
 *.zip&lt;br /&gt;
 *.cab&lt;br /&gt;
 \WINDOWS\inf\*.pnf&lt;br /&gt;
&lt;br /&gt;
Anlegen von C:\WinPE_*\mount\local\init.cmd (muss abhängig von der zu startenden Batch-Datei angepasst werden):&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching runsetup.cmd&lt;br /&gt;
 z:\runsetup.cmd&lt;br /&gt;
&lt;br /&gt;
Anlegen/bearbeiten von C:\WinPE_*\mount\windows\system32\winpeshl.ini:&lt;br /&gt;
 [LaunchApps]&lt;br /&gt;
 wpeinit&lt;br /&gt;
 %SystemDrive%\local\init.cmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun werden die Netzwerktreiber in das Image eingebunden. Hierzu wird zunächst ein Ordner „C:\WinPE_*\Drivers“ erstellt und die Treiberdateien hineinkopiert (.inf Dateien müssen enthalten sein; bestimmte Ordnerstruktur ist nicht notwendig). Die Treiber werden mit folgendem Befehl in das Image eingebunden:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x86\mount /Add-Driver /Driver:C:\WinPE_x86\Drivers /Recurse&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Image:C:\WinPE_x64\mount /Add-Driver /Driver:C:\WinPE_x64\Drivers /Recurse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Damit das winPE Image ohne weitere Probleme und Nachfragen gestartet wird muss jetzt noch die Datei bootfix.bin gelöscht werden:&lt;br /&gt;
&lt;br /&gt;
32 Bit: &lt;br /&gt;
 del C:\WinPE_x86\ISO\boot\bootfix.bin&lt;br /&gt;
64 Bit: &lt;br /&gt;
 del C:\WinPE_x64\ISO\boot\bootfix.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Die Änderungen des Bootimages werden abgespeichert:&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x86\mount /Commit&lt;br /&gt;
64 Bit:&lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\Servicing\Dism.exe&amp;quot; /Unmount-Wim /MountDir:C:\WinPE_x64\mount /Commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Anschließend wird das WIM-Image nach „C:\WinPE_*\ISO\sources\boot.wim“ kopiert und ein ISO-Image erstellt.&lt;br /&gt;
&lt;br /&gt;
32 Bit:&lt;br /&gt;
 copy C:\WinPE_x86\winpe.wim C:\WinPE_x86\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe&amp;quot; -n -bC:\WinPE_x86\etfsboot.com C:\WinPE_x86\ISO C:\WinPE_x86\WinPE_x86.iso&lt;br /&gt;
64 Bit:&lt;br /&gt;
 copy C:\WinPE_x64\winpe.wim C:\WinPE_x64\ISO\sources\boot.wim&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;C:\Program Files\Windows AIK\Tools\amd64\oscdimg.exe&amp;quot; -n -bC:\WinPE_x64\etfsboot.com C:\WinPE_x64\ISO C:\WinPE_x64\WinPE_x64.iso&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Es kann sein, dass eine Fehlermeldung auftaucht, dass das Image zu groß ist. Mit dem Parameter -m können die Größenbegrenzungen ignoriert/überschrieben werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Das fertige WindowsPE Image wird nun nach „/var/lib/tftpboot/“ auf den Server kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Die in das Image eingebundene Datei &amp;quot;init.cmd&amp;quot; verweist auf eine Batch Datei &amp;quot;runsetup.cmd&amp;quot; die in dem Ordner &amp;quot;/nfsroot/&amp;quot; liegt und angelegt werden muss. Sie kann folgendermaßen aussehen:&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Alternativ mit einem Auswahlmenu:&lt;br /&gt;
 @echo off&lt;br /&gt;
 cls&lt;br /&gt;
 color 0E&lt;br /&gt;
 title Windows Auswahl&lt;br /&gt;
 &lt;br /&gt;
 :start&lt;br /&gt;
 echo Welche Windowsversion soll installiert werden?&lt;br /&gt;
 echo.&lt;br /&gt;
 echo 1. Win 7 Pro 32 Bit Deutsch (unattended)&lt;br /&gt;
 echo 2. Win 7 Pro 32 Bit Englisch (unattended)&lt;br /&gt;
 echo 3. Win 7 32 Bit Deutsch (alle Versionen)&lt;br /&gt;
 echo 4. Win 7 32 Bit Englisch (alle Versionen)&lt;br /&gt;
 echo 0. Quit&lt;br /&gt;
 echo.&lt;br /&gt;
 &lt;br /&gt;
 set /p choice=&amp;quot;Bitte Zahl eingeben: &amp;quot;&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;1&amp;quot; goto pro32deunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;2&amp;quot; goto pro32enunattended&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;3&amp;quot; goto all32de&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;4&amp;quot; goto all32en&lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;0&amp;quot; exit&lt;br /&gt;
 echo Ungültige Auswahl: %choice%&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
 cls&lt;br /&gt;
 goto start&lt;br /&gt;
 &lt;br /&gt;
 :pro32deunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe /unattend:z:\win7_32bit_de\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :pro32enunattended&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe /unattend:z:\win7_32bit_en\Autounattend.xml&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 Pro 32 Bit Deutsch (unattended) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32de&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_de\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Deutsch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 :all32en&lt;br /&gt;
 cls&lt;br /&gt;
 z:\win7_32bit_en\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win 7 32 Bit Englisch (alle Versionen) wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Je nachdem auf welche Batch Datei auf dem Server zugegriffen wird, muss die im Image enthaltene Batch Datei angepasst werden. Wenn die o.g. Schritte alle befolgt wurden und die dabei angelegten Ordner nicht gelöscht wurden, ist es nicht notwendig bspw. die Treiber noch einmal einzubinden. Es reicht aus das „winpe.wim“ Image zu mounten (Schritt 2), die Batch Datei danach entsprechend anzupassen und zu speichern (Schritt 6 und 7).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sollte es bei Schritt 2 (oder allgemein) zu Problemen kommen und sich ein Image nicht sauber mounten lassen kann das Ausführen des Befehls&#039;&#039;&lt;br /&gt;
 dism /cleanup-wim&lt;br /&gt;
&#039;&#039;eventuell Abhilfe schaffen. In vielen Fällen lässt sich das Image anschließend wieder normal mounten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windows Autounattend.xml erstellen =&lt;br /&gt;
&lt;br /&gt;
Um eine Windowsinstallation vollständig automatisiert (unattended) ablaufen zu lassen wird eine Autounattend.xml Datei benötigt, in der alle Einstellungen für die Installation definiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Autounattend.xml lässt sich am einfachsten über den „Windows System Image Manager“, welcher Teil des Windows Automated Installation Toolkit (WAIK) ist, erstellen. Hierbei wird zunächst die „install.wim“ in einem entpackten Windowsinstallationsabbild ausgewählt und danach eine Antwortdatei zu dieser Windowsversion erstellt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch die nachfolgenden Beispiele in eine Autounattend.xml Datei eingefügt und abgewandelt werden. &lt;br /&gt;
Die wesentlichen Unterschiede zwischen den beiden Windows 7 Beispielen sind die Architekturbezeichnungen und die Spracheinstellungen. &lt;br /&gt;
In der Serverkonfigurationsdatei werden weitere Einstellungen vorgenommen, wie z.B. eine deaktivierte Firewall, ein Benutzername inklusive Passwort und ohne Autologonfunktion usw.&lt;br /&gt;
&lt;br /&gt;
Sobald die Datei erstellt wurde wird der Installationsordner in den Ordner „/nfsroot“ auf dem Server kopiert. Die Autounattend.xml muss sich dabei im selben Ordner wie die „setup.exe“ befinden (also direkt im Installationsordner).&lt;br /&gt;
&lt;br /&gt;
== Windows 7 64 Bit Deutsch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;de-DE&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;de-DE&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;de-DE&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_64bit_de/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 7 32 Bit Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;ProductKey&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;Never&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                &amp;lt;/ProductKey&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows 7 PROFESSIONAL&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;true&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;OOBE&amp;gt;&lt;br /&gt;
                &amp;lt;HideEULAPage&amp;gt;true&amp;lt;/HideEULAPage&amp;gt;&lt;br /&gt;
                &amp;lt;HideWirelessSetupInOOBE&amp;gt;true&amp;lt;/HideWirelessSetupInOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;NetworkLocation&amp;gt;Work&amp;lt;/NetworkLocation&amp;gt;&lt;br /&gt;
                &amp;lt;ProtectYourPC&amp;gt;1&amp;lt;/ProtectYourPC&amp;gt;&lt;br /&gt;
                &amp;lt;SkipMachineOOBE&amp;gt;true&amp;lt;/SkipMachineOOBE&amp;gt;&lt;br /&gt;
                &amp;lt;SkipUserOOBE&amp;gt;true&amp;lt;/SkipUserOOBE&amp;gt;&lt;br /&gt;
            &amp;lt;/OOBE&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
           &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Admin-PC&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Security-Licensing-SLC-UX&amp;quot; processorArchitecture=&amp;quot;x86&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SkipAutoActivation&amp;gt;true&amp;lt;/SkipAutoActivation&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/win7_32bit_en/sources/install.wim#Windows 7 PROFESSIONAL&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows Server 2008 R2 Englisch ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;unattend xmlns=&amp;quot;urn:schemas-microsoft-com:unattend&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;windowsPE&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-International-Core-WinPE&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;SetupUILanguage&amp;gt;&lt;br /&gt;
                &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;/SetupUILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;InputLocale&amp;gt;en-US&amp;lt;/InputLocale&amp;gt;&lt;br /&gt;
            &amp;lt;SystemLocale&amp;gt;en-US&amp;lt;/SystemLocale&amp;gt;&lt;br /&gt;
            &amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;&lt;br /&gt;
            &amp;lt;UserLocale&amp;gt;de-DE&amp;lt;/UserLocale&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UserData&amp;gt;&lt;br /&gt;
                &amp;lt;AcceptEula&amp;gt;true&amp;lt;/AcceptEula&amp;gt;&lt;br /&gt;
                &amp;lt;FullName&amp;gt;Administrator&amp;lt;/FullName&amp;gt;&lt;br /&gt;
                &amp;lt;Organization&amp;gt;Agilos&amp;lt;/Organization&amp;gt;&lt;br /&gt;
            &amp;lt;/UserData&amp;gt;&lt;br /&gt;
            &amp;lt;DiskConfiguration&amp;gt;&lt;br /&gt;
                &amp;lt;Disk wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                    &amp;lt;WillWipeDisk&amp;gt;true&amp;lt;/WillWipeDisk&amp;gt;&lt;br /&gt;
                    &amp;lt;CreatePartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;CreatePartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Type&amp;gt;Primary&amp;lt;/Type&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;true&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                        &amp;lt;/CreatePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/CreatePartitions&amp;gt;&lt;br /&gt;
                    &amp;lt;ModifyPartitions&amp;gt;&lt;br /&gt;
                        &amp;lt;ModifyPartition wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                            &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                            &amp;lt;Format&amp;gt;NTFS&amp;lt;/Format&amp;gt;&lt;br /&gt;
                            &amp;lt;Label&amp;gt;Windows&amp;lt;/Label&amp;gt;&lt;br /&gt;
                            &amp;lt;Letter&amp;gt;C&amp;lt;/Letter&amp;gt;&lt;br /&gt;
                            &amp;lt;Extend&amp;gt;false&amp;lt;/Extend&amp;gt;&lt;br /&gt;
                            &amp;lt;Active&amp;gt;true&amp;lt;/Active&amp;gt;&lt;br /&gt;
                        &amp;lt;/ModifyPartition&amp;gt;&lt;br /&gt;
                    &amp;lt;/ModifyPartitions&amp;gt;&lt;br /&gt;
                &amp;lt;/Disk&amp;gt;&lt;br /&gt;
                &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
            &amp;lt;/DiskConfiguration&amp;gt;&lt;br /&gt;
            &amp;lt;ImageInstall&amp;gt;&lt;br /&gt;
                &amp;lt;OSImage&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallToAvailablePartition&amp;gt;false&amp;lt;/InstallToAvailablePartition&amp;gt;&lt;br /&gt;
                    &amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallTo&amp;gt;&lt;br /&gt;
                        &amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;&lt;br /&gt;
                        &amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallTo&amp;gt;&lt;br /&gt;
                    &amp;lt;InstallFrom&amp;gt;&lt;br /&gt;
                        &amp;lt;MetaData wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;Key&amp;gt;/IMAGE/NAME&amp;lt;/Key&amp;gt;&lt;br /&gt;
                            &amp;lt;Value&amp;gt;Windows Server 2008 R2 SERVERSTANDARD&amp;lt;/Value&amp;gt;&lt;br /&gt;
                        &amp;lt;/MetaData&amp;gt;&lt;br /&gt;
                    &amp;lt;/InstallFrom&amp;gt;&lt;br /&gt;
                &amp;lt;/OSImage&amp;gt;&lt;br /&gt;
            &amp;lt;/ImageInstall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableFirewall&amp;gt;false&amp;lt;/EnableFirewall&amp;gt;&lt;br /&gt;
            &amp;lt;EnableNetwork&amp;gt;true&amp;lt;/EnableNetwork&amp;gt;&lt;br /&gt;
            &amp;lt;UseConfigurationSet&amp;gt;true&amp;lt;/UseConfigurationSet&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;oobeSystem&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TimeZone&amp;gt;W. Europe Standard Time&amp;lt;/TimeZone&amp;gt;&lt;br /&gt;
            &amp;lt;UserAccounts&amp;gt;&lt;br /&gt;
                &amp;lt;AdministratorPassword&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/AdministratorPassword&amp;gt;&lt;br /&gt;
            &amp;lt;/UserAccounts&amp;gt;&lt;br /&gt;
            &amp;lt;FirstLogonCommands&amp;gt;&lt;br /&gt;
                &amp;lt;SynchronousCommand wcm:action=&amp;quot;add&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;CommandLine&amp;gt;cmd /c &amp;quot;copy \\172.22.1.84\nfsroot\postinstall.cmd %TEMP% &amp;amp;&amp;amp; %TEMP%\postinstall.cmd&amp;quot;&amp;lt;/CommandLine&amp;gt;&lt;br /&gt;
                    &amp;lt;Description&amp;gt;Copy and run postinstall.cmd&amp;lt;/Description&amp;gt;&lt;br /&gt;
                    &amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;&lt;br /&gt;
                    &amp;lt;RequiresUserInput&amp;gt;false&amp;lt;/RequiresUserInput&amp;gt;&lt;br /&gt;
                &amp;lt;/SynchronousCommand&amp;gt;&lt;br /&gt;
            &amp;lt;/FirstLogonCommands&amp;gt;&lt;br /&gt;
            &amp;lt;AutoLogon&amp;gt;&lt;br /&gt;
                &amp;lt;Password&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;66280!Humboldt&amp;lt;/Value&amp;gt;&lt;br /&gt;
                    &amp;lt;PlainText&amp;gt;true&amp;lt;/PlainText&amp;gt;&lt;br /&gt;
                &amp;lt;/Password&amp;gt;&lt;br /&gt;
                &amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&lt;br /&gt;
                &amp;lt;LogonCount&amp;gt;2&amp;lt;/LogonCount&amp;gt;&lt;br /&gt;
                &amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;&lt;br /&gt;
            &amp;lt;/AutoLogon&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;settings pass=&amp;quot;specialize&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;component name=&amp;quot;Microsoft-Windows-Shell-Setup&amp;quot; processorArchitecture=&amp;quot;amd64&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; language=&amp;quot;neutral&amp;quot; versionScope=&amp;quot;nonSxS&amp;quot; xmlns:wcm=&amp;quot;http://schemas.microsoft.com/WMIConfig/2002/State&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ComputerName&amp;gt;Server2008R2&amp;lt;/ComputerName&amp;gt;&lt;br /&gt;
        &amp;lt;/component&amp;gt;&lt;br /&gt;
    &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;cpi:offlineImage cpi:source=&amp;quot;wim:c:/users/manuel.rauber/downloads/winserver2008r2_x64_en/sources/install.wim#Windows Server 2008 R2 SERVERSTANDARD&amp;quot; xmlns:cpi=&amp;quot;urn:schemas-microsoft-com:cpi&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/unattend&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bei der Eingabe des Login-Passworts das englische Tastaturlayout beachten!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Windowsupdates mit WSUS Offline Update =&lt;br /&gt;
&lt;br /&gt;
Mit dem Programm WSUS Offline Updates ist es möglich, alle sicherheitsrelevanten Windowsupdates herunterzuladen und von einem Server aus abzurufen. Hierfür werden folgende Einstellungen vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:WSUS_Einstellungen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Updates ab Windows Vista sind sprachenunabhängig und gelten sowohl für die Standardclient- als auch Serverversionen von Windows. Optional lassen sich auch Office Updates oder zusätzliche Software, wie z.B. Silverlight, einbinden. Hiervon wird derzeit kein Gebrauch gemacht.&lt;br /&gt;
&lt;br /&gt;
Sobald alle Updates heruntergeladen wurden, wird der Ordner „*\wsusoffline\client“ in den Ordner „/nfsroot“ auf dem Server zu kopieren. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wenn neue Updates hinzugefügt werden sollen muss dieser Ordner einfach überschrieben werden (vorausgesetzt es wurden keine Änderungen der Batch Dateien in diesem Ordner vorgenommen).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Autounattend.xml Datei wurden so konfiguriert, dass beim ersten Einloggen des Benutzers am Ende der Windowsinstallation eine Datei „postinstall.cmd“, im Ordner „/nfsroot“, in das temporäre Verzeichnis des Clienten kopiert und ausgeführt wird. Diese Batch Datei startet die in dem Ordner „/nfsroot/client/cmd/“ enthaltene „DoUpdate.cmd“ mit verschiedenen Parametern. Der Parameter zur Installation der neuesten Internet Explorer Version wurde weggelassen, da die Installation fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
Anlegen der postinstall.cmd:&lt;br /&gt;
 @echo off&lt;br /&gt;
 net use Z: \\172.22.1.84\nfsroot /persistent:no&lt;br /&gt;
 Z:\client\cmd\DoUpdate.cmd /updatercerts /updatecpp /instdotnet4 /autoreboot&lt;br /&gt;
&lt;br /&gt;
= Sonstige Bootimages =&lt;br /&gt;
== Avira Rescue System 06-2014 ==&lt;br /&gt;
&lt;br /&gt;
Image: http://www.avira.com/de/download/product/avira-rescue-system&lt;br /&gt;
&lt;br /&gt;
Auf dem Server wird ein Ordner &amp;quot;/nfsroot/avira_rescue_06_2014&amp;quot; angelegt und das ISO-Image in diesen Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/avira_rescue_06_2014&amp;quot; erstellt werden. In diesen Ordner werden folgende Dateien kopiert: &amp;quot;/nfsroot/avira_rescue_06_2014/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/avira_rescue_06_2014/casper/vmlinuz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu 14.04 ==&lt;br /&gt;
&lt;br /&gt;
Auf dem Server werden die Ordner &amp;quot;/nfsroot/ubuntu-14.04-desktop-i386&amp;quot; und &amp;quot;/nfsroot/ubuntu-14.04-desktop-amd64&amp;quot; angelegt und die entsprechenden ISO-Images in die Ordner entpackt.&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Ordner &amp;quot;/var/lib/tftpboot/ubuntu_14.04&amp;quot; mit den Unterordnern &amp;quot;i386&amp;quot; und &amp;quot;amd64&amp;quot; erstellt werden. In diese Ordner werden aus den entsprechenden, entpackten Images folgende Dateien kopiert: &amp;quot;/nfsroot/*/casper/initrd.lz&amp;quot; sowie &amp;quot;/nfsroot/*/casper/vmlinuz(.efi)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden eines neuen Windows Images =&lt;br /&gt;
&lt;br /&gt;
Egal von welchem Menü ein Image später abrufbar sein soll und egal ob es später automatisiert oder manuell durchgeführt werden soll müssen zuerst ein paar Vorkehrungen getroffen werden.&lt;br /&gt;
&lt;br /&gt;
- Herunterladen des entsprechenden Images-file(.iso)&lt;br /&gt;
&lt;br /&gt;
- Entpacken der .iso Datei mit einem Zip-program (WinRar/7Zip/...)&lt;br /&gt;
&lt;br /&gt;
- Anschließend muss der Ordner der entpackten .iso Datei auf den Server in das Verzeichnis /nfsroot geladen werden&lt;br /&gt;
&lt;br /&gt;
==Einbinden für manuelle Installation==&lt;br /&gt;
Je nachdem ob es sich bei der einzubindenden Windowsversion um eine 32 oder 64Bit Version handelt ist entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd zu ergänzen.&lt;br /&gt;
In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
 echo 10. Win Server 2012 R2 Englisch&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Darauf folgend steht die Beschreibung/der Titel was installiert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
 if &amp;quot;%choice%&amp;quot;==&amp;quot;10&amp;quot; goto server2012&lt;br /&gt;
&lt;br /&gt;
Die Zahl (hier 10) entspricht dabei der Nummerierung der Menüpunkte. Die Bezeichnung am Ende (hier server2012) entspricht dem goto-Marker im Programmtext.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 &lt;br /&gt;
 :server2012&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
Die Bezeichnung hinter dem Doppelpunkt (hier server2012) entspricht dem oben gesetzten goto-Marker. Im Pfad muss &amp;quot;winserver2012en64&amp;quot; durch den Namen des Ordners ersetzt werden, der die Daten der entpackten .iso Datei enthält. &amp;quot;setup.exe&amp;quot; muss durch den Namen der ausführbaren Installationsdatei ersetzt werden, sofern diese anders heißt. Der Text hinter echo kann nach belieben angepasst werden um anzuzeigen was gerade ausgeführt wird, hat jedoch auf die Ausführung selbst keinerlei Einfluss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
&lt;br /&gt;
Nun muss wie auch bei dem Einbinden für die manuelle Installation je nach gewählter Windowsversion entweder das Menü in der Batch-Datei /nfsroot/runsetup32.cmd oder /nfsroot/runsetup64.cmd ergänzt werden. In der Datei sind die folgenden Zeilen zu ergänzen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Der sichtbare Menüpunkt im Auswahlmenü:&lt;br /&gt;
&lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Auswahllogik des Menüs:&lt;br /&gt;
 &lt;br /&gt;
siehe Einbinden für manuelle Installation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Die eigentliche Logik wenn die Auswahl getroffen wurde:&lt;br /&gt;
 cls&lt;br /&gt;
 z:\winserver2012en64\setup.exe &#039;&#039;&#039;/unattend:z:\winserver2012en64\Autounattend.xml&#039;&#039;&#039;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Win Server 2012 R2 Englisch wird nun gestartet...&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Einbinden für die manuell Installation ist hier noch der fett geschriebene Teil zu ergänzen. &amp;quot;winserver2012en64&amp;quot; entspricht hierbei dem Namen des Ordners mit den Dateien aus der entpackten .iso Datei.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Windows 32/64 Bit alle Versionen-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Einbinden für automatische Installation aus dem Linux-menü (unattended)==&lt;br /&gt;
Um eine Installation automatisch (unattended) durchführen zu können wird zusätzlich zu den normalen Installationsdateien noch die Datei Autounattend.xml benötigt. Dazu kann man einfach eine der schon vorhandenen Autounattend.xml Dateien aus den anderen Installationsordnern nach /nfsroot/&amp;quot;Name des Ordners mit den entpackten Dateien aus der iso&amp;quot; kopieren und anpassen oder erstellt wie oben beschrieben eine neue Autounattend.xml Datei und lädt diese in den Ordner. Beim Anpassen einer solchen Datei ist es nur wichtig, dass alle vorkommen von &amp;quot;processorArchitecture&amp;quot; auf den Wert &amp;quot;x86&amp;quot; gesetzt werden falls es sich um eine 32Bit Version von Windows handelt und auf &amp;quot;amd64&amp;quot; andernfalls. Über die Autounattend.xml Datei ist es zudem noch möglich weitere Einstellungen für die Installation vorzunehmen wie z.b. das automatisch anlegen von User-Accounts.&lt;br /&gt;
Wenn die automatische Installation direkt aus dem Linux Menü gestartet können werden soll wird ein eigenes WindowsPE Image benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Erstellen einer Batch-Datei im Ordner /nfsroot mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 z:\winserver2012en64\setup.exe /unattend:z:\winserver2012en64\Autounattend.xml&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
winserver2012en64 entspricht dabei dem Namen des Ordners mit dem Inhalt des zu installierenden Images aus dem Ordner /nfsroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Erstellen eines WindowsPE Startimages wie oben beschrieben. Wichtig ist hierbei, dass die im Image enthaltene Datei init.cmd angepasst wird.&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 echo Mounting network drive..&lt;br /&gt;
 net use z: \\172.22.1.84\nfsroot&lt;br /&gt;
 echo Launching &#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
 z:\&#039;&#039;&#039;runsetup.cmd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der hier fett markierte Teil muss durch den Namen der gerade eben erstellten Batch-Datei ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend muss das soeben erstellte WindowsPE Startimage auf dem Server in den Ordner /var/lib/tftboot geladen werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Nun muss noch das Menü um einen Punkt erweitert werden, indem die Datei /var/lib/tftboot/prelinux.cfg/windows.menu einen weiteren Eintrag mit dem folgenden Code ergänzt wird:&lt;br /&gt;
&lt;br /&gt;
 LABEL      Autoinstall Win10 64 Bit Deutsch&lt;br /&gt;
 LINUX      /memdisk&lt;br /&gt;
 APPEND     iso raw&lt;br /&gt;
 INITRD     /&#039;&#039;&#039;Unattended_WinPE_x64_for_Win10.iso&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Text hinter LABEL gibt hierbei den angezeigten Menüpunkt an. Der fett markierte Teil muss durch den Namen des erstellten WindowsPE Startimages ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ein auf diese Weise eingebundenes Image kann anschließend über &amp;quot;Agilos Monster Boot Menu-&amp;gt;Windows-&amp;gt;Menüpunkt des eingebundenen Images&amp;quot; installiert werden. Nach der Auswahl wird die Installation automatisch ausgeführt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Schritt-für-Schritt-Anleitung: Einbinden von Rescuetools/Images =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Quellen / Tutorials =&lt;br /&gt;
&lt;br /&gt;
http://pnijjar.freeshell.org/2013/win7-pxe/&lt;br /&gt;
&lt;br /&gt;
== Linux-Server ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/PXE-Boot&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/ISC-DHCPD&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/Comboot/menu.c32&lt;br /&gt;
&lt;br /&gt;
http://www.syslinux.org/wiki/index.php/PXELINUX#Custom_Menu_Example_with_sub-menus&lt;br /&gt;
&lt;br /&gt;
https://help.ubuntu.com/community/PXEInstallMultiDistro&lt;br /&gt;
&lt;br /&gt;
http://en.community.dell.com/support-forums/laptop/f/3518/t/19396752.aspx&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/Samba_Server/smb.conf&lt;br /&gt;
&lt;br /&gt;
== Windows Server (DHCP) ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_14_377.html&lt;br /&gt;
&lt;br /&gt;
== WindowsPE ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_17_1197.html&lt;br /&gt;
&lt;br /&gt;
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011710&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/en-us/library/dd744541(WS.10).aspx&lt;br /&gt;
&lt;br /&gt;
== Windows Autounattend.xml ==&lt;br /&gt;
&lt;br /&gt;
http://www.computerbase.de/forum/showthread.php?t=908089&lt;br /&gt;
&lt;br /&gt;
http://technet.microsoft.com/de-de/magazine/hh241307.aspx&lt;br /&gt;
&lt;br /&gt;
http://www.shudnow.net/2008/05/05/unattended-server-2008-base-image-creation-using-wsimsysprep/&lt;br /&gt;
&lt;br /&gt;
== WSUS Update Offline ==&lt;br /&gt;
&lt;br /&gt;
http://forums.wsusoffline.net/viewtopic.php?f=7&amp;amp;t=2691&lt;br /&gt;
&lt;br /&gt;
== Sonstige Bootimages ==&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2563.html&lt;br /&gt;
&lt;br /&gt;
http://www.gtkdb.de/index_7_2580.html&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1878</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1878"/>
		<updated>2016-07-27T06:54:25Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Gruppenverwaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.2).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.1: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.2: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. 3) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.3: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb.4). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.4: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.5: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.6: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. 6).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.7: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1877</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1877"/>
		<updated>2016-07-27T06:53:36Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Archivansicht */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.2).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.1: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.2: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. 3) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.3: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb.4). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.4: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.5: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1876</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1876"/>
		<updated>2016-07-27T06:53:02Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Geräteübersicht */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.2).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.1: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.2: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. 3) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.3: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1867</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1867"/>
		<updated>2016-07-22T10:12:12Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Autoit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1866</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1866"/>
		<updated>2016-07-22T10:11:46Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Autoit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1865</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1865"/>
		<updated>2016-07-22T10:11:16Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1864</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1864"/>
		<updated>2016-07-22T10:10:54Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1863</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1863"/>
		<updated>2016-07-22T10:10:37Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1862</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1862"/>
		<updated>2016-07-22T10:10:25Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1861</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1861"/>
		<updated>2016-07-22T10:09:35Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1860</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1860"/>
		<updated>2016-07-22T10:08:46Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1859</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1859"/>
		<updated>2016-07-22T10:08:28Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1858</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1858"/>
		<updated>2016-07-22T10:08:01Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
Damit nun tatsächlich der Inhalt angezeigt wird muss für die normale Ansicht der folgende Code ergänzt werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;MacAddress&amp;quot;] == $_GET[&#039;mac&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &#039;&amp;lt;pre&amp;gt;&#039;.$row[&#039;Startup&#039;], &#039;UTF-8&#039;, &#039;UCS-2LE&#039;.&#039;&amp;lt;/pre&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
Für die Archivansicht muss der folgende Code ergänzt werden:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //display startup&lt;br /&gt;
 if (($row[&amp;quot;Timestamp&amp;quot;] == $_GET[&#039;timestamp&#039;])and isset($_GET[&#039;startup&#039;])) {&lt;br /&gt;
 echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;.$row[&#039;Startup&#039;].&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei wieder dem entsprechen was vorher als POST-Parameter gewählt wurde und der String in $row[] muss dem Spaltennamen aus der Tabelle entsprechen.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1857</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1857"/>
		<updated>2016-07-22T09:23:35Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1856</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1856"/>
		<updated>2016-07-22T09:23:22Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1855</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1855"/>
		<updated>2016-07-22T09:23:06Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1854</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1854"/>
		<updated>2016-07-22T09:22:57Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1853</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1853"/>
		<updated>2016-07-22T09:22:37Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils mit dem folgenden Code ein neuer Button angelegt werden.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür muss in der inspectEntryDetail.php erst zweimal der folgende Code ergänzt werden um den Titel des Inspektorfensters zu setzen.&lt;br /&gt;
&lt;br /&gt;
 if(isset($_GET[&#039;startup&#039;])){&lt;br /&gt;
 echo &#039;&amp;lt;p&amp;gt;Startup programs:&amp;lt;/p&amp;gt;&#039;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Der String in $_GET[] muss dabei dem entsprechen was vorher als POST-Parameter gewählt wurde. &amp;quot;Startup Programs&amp;quot; entspricht in diesem Fall dem Anzeigetext / Titel des Inspektorfensters.&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1852</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1852"/>
		<updated>2016-07-22T09:11:53Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst ergänzen wir in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils den folgenden Code um einen neuen Button anzulegen.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 //Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür bearbeiten wir die inspectEntryDetail.php&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
	<entry>
		<id>https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1851</id>
		<title>Customer System Control Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.intern.agilos.de/index.php?title=Customer_System_Control_Center&amp;diff=1851"/>
		<updated>2016-07-22T09:11:31Z</updated>

		<summary type="html">&lt;p&gt;172.22.0.179: /* Webseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dokumentationen]]&lt;br /&gt;
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.&lt;br /&gt;
&lt;br /&gt;
=Allgemeiner Aufbau=&lt;br /&gt;
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.&lt;br /&gt;
&lt;br /&gt;
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
==Interaktion der Komponenten==&lt;br /&gt;
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.&lt;br /&gt;
&lt;br /&gt;
=Website=&lt;br /&gt;
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.&lt;br /&gt;
&lt;br /&gt;
==Geräteübersicht==&lt;br /&gt;
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.&lt;br /&gt;
&lt;br /&gt;
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=200px&amp;gt;&lt;br /&gt;
Datei:overviewView.PNG|Abb.XX: Geräteübersicht&lt;br /&gt;
&lt;br /&gt;
Datei:overviewViewExtended.PNG|Abb.XX: Geräteübersicht ausgeklappt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.&lt;br /&gt;
&lt;br /&gt;
[[Datei:unassignGroup.PNG|thumb|500px|none|Abb.XX: Gruppenzuweisung entfernen]]&lt;br /&gt;
&lt;br /&gt;
==Archivansicht==&lt;br /&gt;
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX). &lt;br /&gt;
[[Datei:enterArchive.PNG|thumb|500px|none|Abb.XX: Archivansicht öffnen]]&lt;br /&gt;
&lt;br /&gt;
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArchiveView.PNG|thumb|500px|none|Abb.XX: Archivansicht]]&lt;br /&gt;
&lt;br /&gt;
==Gruppenverwaltung==&lt;br /&gt;
&lt;br /&gt;
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button &amp;quot;new&amp;quot; lassen sich einfach neue Gruppen erstellen. Das Klicken auf das &amp;quot;x&amp;quot; hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:GroupOverview.PNG|thumb|500px|none|Abb.XX: Gruppenverwaltung]]&lt;br /&gt;
&lt;br /&gt;
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).&lt;br /&gt;
&lt;br /&gt;
[[Datei:editGroup.PNG|thumb|300px|none|Abb.XX: Gruppenname editieren]]&lt;br /&gt;
&lt;br /&gt;
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.&lt;br /&gt;
&lt;br /&gt;
=Schritt für Schritt: Neue Daten überwachen/loggen=&lt;br /&gt;
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.&lt;br /&gt;
&lt;br /&gt;
==Autoit==&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst muss eine neue Funktion in der Region &amp;quot;Data Collectors: Files&amp;quot; erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:&lt;br /&gt;
&lt;br /&gt;
 ;get startup Programs and save it in a file&lt;br /&gt;
 Func getStartup()&lt;br /&gt;
   RunWait(@ComSpec &amp;amp; &#039; /c wmic /OUTPUT:&amp;quot;&#039; &amp;amp; @LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&amp;quot; startup list /format:hform&#039;,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
   trimDataFileHeader(@LocalAppDataDir &amp;amp; &#039;\dataFiles\startup.html&#039;)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion &amp;quot;trimDataFileHeader&amp;quot; auf die neu erstellte Datei angewendet wird. &amp;quot;trimDataFilesHeader&amp;quot; bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Nun muss ein Aufruf der neu erstellte Funktion in der Funktion &amp;quot;executeAllDataCollectors&amp;quot; ergänzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Anschließend gilt es die Funktion &amp;quot;createPOSTParamString&amp;quot; zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:&lt;br /&gt;
 $startup = $macAdd &amp;amp; &amp;quot;_&amp;quot; &amp;amp; &amp;quot;startup.html&amp;quot;&lt;br /&gt;
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde.&lt;br /&gt;
Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:&lt;br /&gt;
 $postParams &amp;amp;= &#039;&amp;amp;startup=&#039;&amp;amp; $startup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datenbank/Datenbankschnittstelle==&lt;br /&gt;
Hier müssen zuerst die Datenbanktabellen erweitert werden und anschließend die Datenbankschnittstelle (receiveCustomerData.php) ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Jetzt muss die Datei receiveCustomerData.php ergänzt werden. Das ist der kritischste Schritte beim Hinzufügen neuer Daten, da hier schnell Flüchtigkeitsfehler entstehen können.&lt;br /&gt;
Zuerst muss eine neue Variable angelegt werden, welche für bind_param benötigt wird:&lt;br /&gt;
 $startup = NULL;&lt;br /&gt;
&lt;br /&gt;
Nun müssen an drei Stellen (Update, Insert, InsertArchive), jeweils mehrere Änderungen vorgenommen werden.&lt;br /&gt;
- zuerst muss jeweils die SQL-query, analog zu den schon vorhandenen, um die neue Tabellenspalte erweitert werden. Eine solche Query sieht z.B. so aus:&lt;br /&gt;
 $sqlUpdate = &amp;quot;UPDATE MonitoringData SET ComputerName = ?, UserName = ?, RamSize = ?, NameCPU = ?, Cores = ?,&lt;br /&gt;
 LoadPercentage = ?, OSVersion = ?, SysArch = ?, Ping =  ?, IPConfig = ?, NetConfig = ?, SystemInfo = ?, Bios = ?,&lt;br /&gt;
 SysDriver = ?, CPU = ?, OnboardDev = ?, Programs = ?, Startup = ?, MemoryChip = ?, PhysDrive = ?, LogDrive = ?,&lt;br /&gt;
 Partition = ?, Volume = ?, SoundDev = ?, Printers = ?, PrinterConfig = ?, UserAcc = ?, Timestamp = Now()&lt;br /&gt;
 WHERE MacAddress=?;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oder so:&lt;br /&gt;
&lt;br /&gt;
 $sqlInsert = &amp;quot;INSERT INTO MonitoringData (MacAddress, ComputerName, UserName, RamSize, NameCPU, Cores, LoadPercentage,&lt;br /&gt;
 OSVersion, SysArch, Ping, IPConfig, NetConfig, SystemInfo, Bios, SysDriver, CPU, OnboardDev, Programs, Startup, MemoryChip,&lt;br /&gt;
 PhysDrive, LogDrive, Partition, Volume, SoundDev, Printers, PrinterConfig, UserAcc, Timestamp)&lt;br /&gt;
 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, Now())&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend muss jeweils der Aufruf von &amp;quot;bind_param&amp;quot; angepasst werden. Dabei ist darauf zu achten, dass die neue zu bindende Variable für unsere neuen Daten an die richtige Stelle gesetzt wird (also, dass ihre relative Position zu den anderen Variablen mit der Position des Tabellenspaltennamens in der SQL-query übereinstimmt). Zudem muss ein, im ersten Parameter der bind_param übergeben wird definierter, Typ für die neue zu bindende Variable an der entsprechenden Stelle ergänzt werden. i steht in dem string für integer, s für string, d für decimal und b für blob (und auch alle Varianten davon, wie z.B. longblob). Ein solcher Aufruf von bind_param sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;bind_param(&#039;ssdsiisssbbbbbbbbbbbbbbbbbbs&#039;, $comName, $userName, $ramSize, $nameCPU, $cores, $loadPercentage,&lt;br /&gt;
 $osVer, $sysArch, $ping, $ipConfig, $netConfig, $sysInfoOut, $bios, $sysDriver, $cpu, $onboardDev, $programs, $startup,&lt;br /&gt;
 $memoryChip, $physDrive, $logDrive, $partition, $volume, $soundDev, $printers, $printerConfig, $userAcc, $mac);&lt;br /&gt;
&lt;br /&gt;
Nun muss noch jeweils eine Zeile ergänzt werden um den Inhalt, der vom Autoit-Skript an den Server übermittelten Datei, in die Variable, die wir mit bind_param an unsere neue Tabellenspalte (des Typ blob) gebunden haben, zu laden. Eine solche Zeile sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
 $stmtUpdate-&amp;gt;send_long_data(17, file_get_contents(&amp;quot;TempFiles/&amp;quot;.$_POST[&amp;quot;startup&amp;quot;]));&lt;br /&gt;
&lt;br /&gt;
Der String in $_POST[] entspricht dabei dem namen des gesendeten POST-Parameters (so wie wir ihn im Autoit-Skript festgelegt haben). Die Zahl vorne (hier: 17) entspricht dabei der Position der zu füllenden Variable im Aufruf von bind_param (WICHTIG: Die Zählung startet bei 0). Falls die Variable nicht am Ende hinzugefügt wurde muss natürlich in allen direkt folgenden Aufrufen von send_long_data der Index der zu füllenden Variable auch noch um 1 verschoben werden, da wir ja eine neue Variable dazwischen geschoben haben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn all diese Änderungen an allen drei Stellen (Update, Insert, InsertArchive) richtig durchgeführt wurden, sollte das Autoit-Skript nun erfolgreich durchlaufen und alle gewünschten Datenbanktabelleneinträge sauber anlegen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Webseite==&lt;br /&gt;
Damit die Daten aus der Webseite ordentlich angezeigt werden können müssen zuerst die neuen Buttons erstellt werden und anschließend das Inspektorfensters mit dem entsprechenden Inhalt gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst ergänzen wir in den Dateien displayStatusEntries.php und displayArchiveData.php jeweils den folgenden Code um einen neuen Button anzulegen.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;//Startup&lt;br /&gt;
 echo &amp;quot;&amp;lt;div class=\&amp;quot;col-xs-6 entryValues\&amp;quot;&amp;gt;&amp;lt;div class=\&amp;quot;row inspectLinkEntry\&amp;quot;&amp;gt;&amp;quot;.&#039;&amp;lt;a class=&amp;quot;chooseInspectButton&amp;quot;&lt;br /&gt;
 href=&amp;quot;&#039;.$_SERVER[&#039;PHP_SELF&#039;].&#039;?inspect=true&amp;amp;groupFilter=&#039;.$groupFilterID.&#039;&amp;amp;mac=&#039;.$row[&amp;quot;MacAddress&amp;quot;].&#039;&amp;amp;startup=1&amp;quot;&amp;gt;Startup&amp;lt;/a&amp;gt;&#039;.&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
		&amp;lt;/nowiki&amp;gt;	&lt;br /&gt;
An der Stelle &amp;quot;&amp;amp;startup=1&amp;quot; muss natürlich statt &amp;quot;startup&amp;quot; der Name des gewählten POST-Parameters sein und &amp;quot;Startup&amp;quot; entspricht dem Anzeigenamen der auf der Webseite auf dem Button steht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend müssen noch die eigentlichen Daten ins Inspektorfenster geladen werden. Dafür bearbeiten wir die inspectEntryDetail.php&lt;br /&gt;
&lt;br /&gt;
=Datenbank=&lt;br /&gt;
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.&lt;br /&gt;
&lt;br /&gt;
 Webserver: http://s1.agilos-webhosting.de&lt;br /&gt;
 DB: adriensql2&lt;br /&gt;
 Pw: AgiStatus&lt;br /&gt;
&lt;br /&gt;
=Sonstiges=&lt;br /&gt;
==Zusatzfunktionalität in Google Chrome==&lt;br /&gt;
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.&lt;/div&gt;</summary>
		<author><name>172.22.0.179</name></author>
	</entry>
</feed>