unattend.xml und der OPSI-Agent

MG-Mann
Beiträge: 24
Registriert: 07 Mär 2019, 08:19

unattend.xml und der OPSI-Agent

Beitragvon MG-Mann » 16 Sep 2019, 09:51

Hallo Zusammen,

nach dem ich Windows 10 (v1903) erfolgreich mit der Standard unattend.xml installieren konnte, wollte ich das ganze noch etwas aufbohren.
Grund dafür: nach der installation von Windows 10 wird der OPSI-Agent-Client nicht automatisch installiert. Ich gehe davon aus, dass es
an den noch nicht gesetzten Firewall- und UAC-Einstellungen liegt. Damit dies funktioniert, ohne das mit manuell den Registry-Eintrag oder die
Firewall anpassen muss, wollte ich diese Einstellungen schon bei der Installation übergeben.
Lauf diversen Dokumentationen und Foren ist dies auch über die unattend.xml möglich.

Liegt es überhaupt an der UAC/Firewall, dass der Opsi-Client-Agent nicht direkt nach der Windows installation installiert wird?

Problem: Windows bricht bei der installation mit folgender Fehlermeldung ab:
Die Antwortdatei für die unbeaufsichtigte Installation [C:\Windows\Panther\unattend.xml] für Durchgang [oobeSystem]
konnte nicht analysiert oder verarbeitet werden. Eine in der Antwortdatei angegebene Komponente oder Einstellung ist nicht vorhanden.


Der Abschnitt oobeSystem in meiner unattend.xml sieht wie folgt aus:

Code: Alles auswählen

<settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <!-- der folgende Abschnitt funktioniert -->
   <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideLocalAccountScreen>true</HideLocalAccountScreen>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
      <NetworkLocation>Work</NetworkLocation>
         </OOBE>
      <TimeZone>Central European Standard Time</TimeZone>
         <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>123456</Value>
                            <PlainText>true</PlainText>
                        </Password>
                        <DisplayName>opsi-install</DisplayName>
                        <Name>opsi-install</Name>
                        <Group>Administrators</Group>
                    </LocalAccount>
                </LocalAccounts>
                <AdministratorPassword>
                    <Value>123456</Value>
                    <PlainText>true</PlainText>
                </AdministratorPassword>
            </UserAccounts>
            <!-- bis hier -->
        </component>
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Reseal>
                <Mode>OOBE</Mode>
            </Reseal>
         <FirstLogonCommands>
            <SynchronousCommand wcm:action="add">
               <Description>Control Panel View</Description>
               <Order>1</Order>
               <CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 1 /f</CommandLine>
               <RequiresUserInput>true</RequiresUserInput>
            </SynchronousCommand>
            <SynchronousCommand wcm:action="add">
               <Order>2</Order>
               <Description>Control Panel Icon Size</Description>
               <RequiresUserInput>false</RequiresUserInput>
               <CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 0 /f</CommandLine>
            </SynchronousCommand>
            <RunSynchronous>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SSH-22_TCP" protocol=TCP dir=in localport=22 action=allow</Path>
                  <Description>OPSI-SSH-22_TCP</Description>
                  <Order>1</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-137_UDP" protocol=UDP dir=in localport=137 action=allow</Path>
                  <Description>OPSI-SAMBA-137_UDP</Description>
                  <Order>2</Order>
               </RunSynchronousCommand>      
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-138_TCP" protocol=TCP dir=in localport=138 action=allow</Path>
                  <Description>OPSI-SAMBA-138_TCP</Description>
                  <Order>3</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-138_UDP" protocol=UDP dir=in localport=138 action=allow</Path>
                  <Description>OPSI-SAMBA-138_UDP</Description>
                  <Order>4</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-139_TCP" protocol=TCP dir=in localport=139 action=allow</Path>
                  <Description>OPSI-SAMBA-139_TCP</Description>
                  <Order>5</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-139_UDP" protocol=UDP dir=in localport=139 action=allow</Path>
                  <Description>OPSI-SAMBA-139_UDP</Description>
                  <Order>6</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-445_TCP" protocol=TCP dir=in localport=445 action=allow</Path>
                  <Description>OPSI-SAMBA-445_TCP</Description>
                  <Order>7</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-SAMBA-445_UDP" protocol=UDP dir=in localport=445 action=allow</Path>
                  <Description>OPSI-SAMBA-445_UDP</Description>
                  <Order>8</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-OPSI-4447_TCP" protocol=TCP dir=in localport=4447 action=allow</Path>
                  <Description>OPSI-OPSI-4447_TCP</Description>
                  <Order>9</Order>
               </RunSynchronousCommand>
               <RunSynchronousCommand wcm:action="add">
                  <Path>Netsh advfirewall firewall add rule name="OPSI-TFTP-69_UDP" protocol=UDP dir=in localport=69 action=allow</Path>
                  <Description>OPSI-TFTP-69_UDP</Description>
                  <Order>10</Order>
               </RunSynchronousCommand>
            </RunSynchronous>
         </FirstLogonCommands>
        </component>
        <!-- folgender Teil funktioniert -->
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>0407:00000407</InputLocale>
            <SystemLocale>de-DE</SystemLocale>
            <UILanguage>de-DE</UILanguage>
            <UILanguageFallback>de-DE</UILanguageFallback>
            <UserLocale>de-DE</UserLocale>
        </component>
        <!-- bis hier -->
    </settings>


Laut der Microsoft-Anleitung liegen die Einstellungen unter den richtigen Komponenten-Aufruf sowie in der richtigen Rubrik.
Wie haben das andere gelöst? Wenn ich vom OPSI-Server die Remote-Installation des Opsi-Agent-Clients anstoße, müssen ja auf jeden Fall die entsprechenden Einträge am Client-Rechner vorgenommen sein.

Hat jemand eine Idee? Kommt man irgendwie an die Installations-Logs ran ohne die Festplatte an ein anderen Rechner anzuschliessen?

MG-Mann
Beiträge: 24
Registriert: 07 Mär 2019, 08:19

Re: unattend.xml und der OPSI-Agent

Beitragvon MG-Mann » 17 Sep 2019, 09:14

Die Windows installation läuft jetzt ohne Fehlermeldungen durch, doch leider setzt er die Firewall-Einstellungen bzw. Registry Einträge nicht.
Der Opsi.org-Ordner mit den Logs existiert leiter nicht mehr, den hat er wohl nach der Installation gelöscht.

Der Opsi-Agent wird nicht automatisch installiert.

Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1157
Registriert: 01 Jul 2008, 12:10

Re: unattend.xml und der OPSI-Agent

Beitragvon wolfbardo » 18 Sep 2019, 22:29

opsi/unattend.xml.template

als Vorlage fuer

custom/unattend.xml

nehmen und ggfs sukzessive vorsichtig aufzubohren, da sonst
MG-Mann hat geschrieben:Der Opsi-Agent wird nicht automatisch installiert.


passiert.

Gruss
Bardo Wolf


!!! ANMELDEN !!! opsi-Konferenz in Mainz am 02. / 03. März 2020 https://opsiconf.org

opsi workshops

https://uib.de/de/support-schulung/schulung/

Basis
23.-26.3.2020


opsi support by uib gmbh

http://www.uib.de

MG-Mann
Beiträge: 24
Registriert: 07 Mär 2019, 08:19

Re: unattend.xml und der OPSI-Agent

Beitragvon MG-Mann » 31 Okt 2019, 09:27

wolfbardo hat geschrieben:opsi/unattend.xml.template

als Vorlage fuer

custom/unattend.xml

nehmen und ggfs sukzessive vorsichtig aufzubohren, da sonst
MG-Mann hat geschrieben:Der Opsi-Agent wird nicht automatisch installiert.


passiert.

Gruss
Bardo Wolf



Leider Ja, aber auch mit der der unattend.xml.template funktioniert es nicht.
Die Windows Installation läuft durch, aber es ist kein Opsi-Agent installiert.
Es sind auch nicht die typischen Ordner C:\drvpe und C:\opsi.org vorhanden.

Zu welchem Zeitpunkt werden die Ordner, während der Windows installation, angelegt?
Woher bezieht sich das Setup die Daten von einem gemounteten Laufwerk oder von einem Netzlaufwerk?
Kann hier das nicht standard aktivierte SMB 1.0 eine Rolle spielen, wenn ja, wie haben es andere gelöst?

Gruß Marcus

MG-Mann
Beiträge: 24
Registriert: 07 Mär 2019, 08:19

Re: unattend.xml und der OPSI-Agent

Beitragvon MG-Mann » 20 Nov 2019, 11:05

Guten Morgen Zusammen,

ich habe inzwischen einen Hinweis gefunden, warum der opsi-client-agent nach der erfolgreichen Windows 10 installation
nicht installiert wird. Wie bereits beschrieben, werden auch die Ordner C:\drvpe und C:\opsi.org nicht angelegt.
Ich habe jetzt die unattend.xml stück für stück aus dem template umgebaut und habe den Punkt gefunden,
wo der opsi-client-agent nicht installiert wird.

Mit folgender konfiguration in der unattend.xml (aus der unattend.xml.template übernommen) funktioniert die installation des opsi-client-agent:

Code: Alles auswählen

<DiskConfiguration>
    <WillShowUI>OnError</WillShowUI>
    <Disk wcm:action="add">
        <DiskID>#@diskindex*#</DiskID>
        <WillWipeDisk>false</WillWipeDisk>
        <ModifyPartitions>
            #@modify_partitions*#
        </ModifyPartitions>
    </Disk>
</DiskConfiguration>
<ImageInstall>
    <OSImage>
        <InstallFrom>
            <MetaData wcm:action="add">
            <Key>/IMAGE/NAME</Key>
            <Value>#@imagename*#</Value>
             </MetaData>
        </InstallFrom>
        <InstallTo>
            <DiskID>#@installdiskindex*#</DiskID>
            <PartitionID>#@windows_partition_number*#</PartitionID>
        </InstallTo>
        <WillShowUI>OnError</WillShowUI>
    </OSImage>
 </ImageInstall>


Hat aber den Nachteil, dass nur eine Partition auf der Festplatte angelegt wird, was so nicht optimal ist.
Da wir verschiedene Rechner mit verschieden großen Partitionen haben, wollen wir Laufwerk C:\ im ersten Schritt mit
max. 100GB anlegen lassen und im nachgang dann auf die entsprechende Größe der Festplatte erweitern.

Mit der folgenden Konfiguration in der unattend.xml werden zwar die Partitionen richtig angelegt, aber der opsi-client-agent
nicht mehr installiert.

Code: Alles auswählen

<DiskConfiguration>
    <Disk wcm:action="add">
      <DiskID>0</DiskID>
            <WillWipeDisk>true</WillWipeDisk>   
            <CreatePartitions>
                <CreatePartition wcm:action="add">
                    <Order>1</Order>
                    <Size>500</Size>
                    <Type>Primary</Type>
                </CreatePartition>
                CreatePartition wcm:action="add">
                    <Order>2</Order>
                    <Type>Primary</Type>
                    <Extend>true</Extend>
               <Size>100000</Size>
                </CreatePartition>
            </CreatePartitios>               
            <ModifyPartitions>
                <ModifyPartition wcm:action="add">
                    <Active>true</Active>
                    <Format>NTFS</Format>
                    <Label>System reserviert</Label>
                    <Order>1</Order>
                    <PartitionID>1</PartitionID>
                    <TypeID>0x27</TypeID>
                </ModifyPartition>
            <ModifyPartition wcm:action="add">
                <Order>2</Order>
                <Format>NTFS</Format>
                <Label>System</Label>
                <Letter>C</Letter>
                <PartitionID>2</PartitionID>
            </ModifyPartition>
        </ModifyPartitions>   
     </Disk>
   <WillShowUI>OnError</WillShowUI>
</DiskConfiguration>
<UserData>
    <ProductKey>
      <WillShowUI>OnError</WillShowUI>
      <Key>#@productkey*#</Key>
    </ProductKey>
    <AcceptEula>true</AcceptEula>
    <FullName>#@fullname*#</FullName>
    <Organization>#@orgname*#</Organization>
</UserData>
<ImageInstall>
    <OSImage>
      <InstallTo>
            <DiskID>0</DiskID>
            <PartitionID>2</PartitionID>
        </InstallTo>
      <InstallFrom>
            <MetaData wcm:action="add">
            <Key>/IMAGE/NAME</Key>
            <Value>#@imagename*#</Value>
         </MetaData>
        </InstallFrom>
        <WillShowUI>OnError</WillShowUI>
    </OSImage>
</ImageInstall>


Die Problematik mit der Partitionierung sollte ja bei vielen Opsi-Admins auftauchen, die Ihr Windows 10 damit verteilen und auf
bestimmte Partitionsgrößen achten müssen.


Ich nehme an, dass das Problem irgendwo in der setup.py steckt, welches mit der vorangegangenen Partitionierung nicht klar kommt.
Leider komme ich mit der setup.py nicht weiter, hat jemand eine Idee wie ich das Problem lösen kann?

MG-Mann
Beiträge: 24
Registriert: 07 Mär 2019, 08:19

Re: unattend.xml und der OPSI-Agent

Beitragvon MG-Mann » 14 Jan 2020, 10:45

Interessant ist das Aufteilen der Partitionen auch für die jenigen, die Ihre Festplaten verschlüsseln wollen.
Hier muss die boot Partion ja eh extra sein.

Hat jemand von euch ein Beispiel, wie Ihr das gelöst habt?

uncle_scrooge
Beiträge: 596
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: unattend.xml und der OPSI-Agent

Beitragvon uncle_scrooge » 14 Jan 2020, 11:03

Dein Ansatz erschließt sich mir irgendwie nicht.

Eine 'Bitlocker-Partition' kannst Du über das Property boot_partition_size nach Gutdünken anlegen.
Und die Größe der 'Windows-Partition' kannst Du über das Property windows_partition_size steuern.
Und wenn Du einen eventuell verbleibenden Rest nicht als eigene Partition haben willst, setzt Du das Property data_partition_create auf false.