Bug in "win10-x64_4.0.7.4-6.opsi"

Antworten
JMS
Beiträge: 94
Registriert: 22 Nov 2010, 12:05

Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von JMS »

Hallo zusammen,

Installation von win10-1709 (mit Paket win10-x64_4.0.7.4-6.opsi) läuft mit Property "administrator_password" durch, auch das Umsetzen des Namens "Administrator" in "Administrateur" oder Administrador" durch das phyton-Skript passt.
:D

Nun aber zu den Fehlern:

1. "Skinnable opsi-winst/opsi-script" wird nicht gezogen.

2. Auf dem Client bleibt (in "C:\Windows\Panther\") das File "unattend.xml" zurück, inkl. Admin-Passwort!
Das kommt wohl (und wie ich es sehe), weil in der unattend.xml (auch in Eurer Vorlage) im Abschnitt "specialize" ein auskommentierter Abschnitt ist. Das Phyton-Skript ersetzt aber das Passwort, Windows widerum ersetzt während der Installation das Passwort NICHT in *SENSITIVE*DATA*DELETED*. (weil auskommentiert?)
Außerdem steht dieser Abschnitt in der "verarbeiteten" unattended.xml, auf den sich allerdings nicht verzichten lässt:

Code: Alles auswählen

                 <RunSynchronousCommand wcm:action="add">
                    <Description>Passwd Admin Account</Description>
                    <Order>2</Order>
                    <Path>cmd.exe /c net user Administrator nt123456</Path>
                </RunSynchronousCommand>

3. Auf dem Client bleibt (in "C:\Windows\Panther\") das File "setupact.log" zurück, inkl. Admin-Passwort!

Vielleicht könnte ja für die Fehler 2 & 3 ein kleines Powershell-Skriptchen in \opsi\postinst.d Abhilfe schaffen:

Code: Alles auswählen

$alt="nt123456"
$neu="*SENSITIVE*DATA*DELETED*"

foreach ($f in gci -r -include "*.xml") { (gc $f.fullname) | foreach {$_ -replace $alt, $neu } | sc $f.fullname }
foreach ($f in gci -r -include "*.log") { (gc $f.fullname) | foreach {$_ -replace $alt, $neu } | sc $f.fullname }
Allerdings müsste der Wert aus dem Property "administrator_password" noch in das Powershell-Skript, vielleicht analog dem per "99_cleanup.cmd" generierten %tmp_dir%\cleanup.cmd?)


4. Auf dem Client bleibt (in "C:\opsi.org\log\cfg\") das File "sysconf.ini" zurück, inkl. Admin-Passwort!

Für Fehler 4: Habe die "99_cleanup.cmd" wie folgt angepasst:

Code: Alles auswählen

rem shutdown.exe: parameter t von 1 auf 5 Sekunden angepasst... sicherheitshalber...

rem --- Disable powershell
powershell.exe set-executionpolicy Undefined

rem --- Cleanup
set cleanup_script=%tmp_dir%\cleanup.cmd

echo [%date% %time%] Writing cleanup script %cleanup_script%

REM NEU - START
echo del %SYSTEMDRIVE%\opsi.org\log\cfg\sysconf.ini /F >>%cleanup_script%
REM NEU - ENDE

rem this is NT5:
echo shutdown.exe -r -f -t 1 -c "Opsi Reboot"    >>%cleanup_script%
rem this is NT6:
echo shutdown.exe /l /r /t:5 "Opsi Reboot" /y /c >>%cleanup_script%

if exist "%ProgramFiles%(x86)\opsi.org\opsi-client-agent\opsi-winst\shutdown.exe" goto :64bitsystem
echo "%ProgramFiles%\opsi.org\opsi-client-agent\opsi-winst\shutdown.exe" /l /r /t:5 "Opsi Reboot" /y /c >>%cleanup_script%
echo "%ProgramFiles%\opsi.org\opsi-client-agent\utilities\shutdown.exe"  /l /r /t:5 "Opsi Reboot" /y /c >>%cleanup_script%
goto :preruncleanup

:64bitsystem
echo "%ProgramFiles%(x86)\opsi.org\opsi-client-agent\opsi-winst\shutdown.exe" /l /r /t:5 "Opsi Reboot" /y /c >>%cleanup_script%
echo "%ProgramFiles%(x86)\opsi.org\opsi-client-agent\utilities\shutdown.exe"  /l /r /t:5 "Opsi Reboot" /y /c >>%cleanup_script%

:preruncleanup
echo rmdir /S /Q %SYSTEMDRIVE%\opsi.org\tmp >>%cleanup_script%

:runcleanup
echo [%date% %time%] Executing cleanup script %cleanup_script%

%cleanup_script%

Jetzt passt's...

5. Falsche Ersetzungen in der unattended.xml?
Ich stolpere über die mit einem "*" gekennzeichneten Zeilen:

Code: Alles auswählen

	<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>#@system_keyboard_layout*#</InputLocale>
            <SystemLocale>#@system_language*#</SystemLocale>
*           <UILanguage>#@system_language*#</UILanguage>
*           <UILanguageFallback>#@system_language*#</UILanguageFallback>
            <UserLocale>#@system_language*#</UserLocale>
        </component>

Code: Alles auswählen

        <component name="Microsoft-Windows-International-Core-WinPE" 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">
            <SetupUILanguage>
                <UILanguage>#@winpe_uilanguage*#</UILanguage>
                <WillShowUI>OnError</WillShowUI>
            </SetupUILanguage>
            <InputLocale>#@winpe_inputlocale*#</InputLocale>
            <SystemLocale>#@system_language*#</SystemLocale>
            <UILanguage>#@winpe_uilanguage*#</UILanguage>
*            <UILanguageFallback>#@winpe_uilanguage_fallback*#</UILanguageFallback>
            <UserLocale>#@winpe_uilanguage*#</UserLocale>
            <LayeredDriver>1</LayeredDriver>
        </component>
Jedenfalls landet das hier im log setuperr.log in \Panther\UnattendGC

Code: Alles auswählen

[MUIUNATTEND.EXE] Failed to set es-ES as UILanguageFallback. error:87
[MUIUNATTEND.EXE] Failed to set es-ES as UILanguageFallback. error:87
Viele Grüße


JMS
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1517
Registriert: 10 Jun 2015, 12:19

Re: Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von m.radtke »

Hi JMS,

vielen Dank für Deine Rückmeldung und das Du die Produkte ausgiebig testest.

Wir werden die Sachen zeitigst in eine neue Version gießen.

Grüße
Mathias
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
JMS
Beiträge: 94
Registriert: 22 Nov 2010, 12:05

Re: Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von JMS »

Hallo Mathias,

aber gerne doch! Ich bin nicht gerade ein Freund von Forks und möchte natürlich, dass Verbesserungen in Eure Templates mit einfließen. Wenn ich behilflich sein kann, dann gerne...

Ihr Jungs von uib kennt die Pakete ja am allerbesten, des wegen hier ein bisschen ausführlicher... für den Fall, dass das jemand "aus der Community" nachbauen möchte... bis die überarbeiteten Pakete kommen.

Was die beschriebenen Fehler 2 und 3 betrifft, so schafft das hier Abhilfe:

Schritt 1:
Anlage des files "98_cleanuplogs.ps1", am besten erstmal in "\custom\postinst\". Vielleicht kommt ja ein besseres Skript von uib nach und der Verzeichnisinhalt "\opsi\postinst" ist ja uib vorbehalten!

Code: Alles auswählen

$alt="#@administratorPassword*#"
$neu="*SENSITIVE*DATA*DELETED*"

foreach ($f in gci -path $Env:WinDir\Panther -r -include "*.xml") { (gc $f.fullname) | foreach {$_ -replace $alt, $neu } | sc $f.fullname }
foreach ($f in gci -path $Env:WinDir\Panther -r -include "*.log") { (gc $f.fullname) | foreach {$_ -replace $alt, $neu } | sc $f.fullname }
Die Variablennamen sind Geschmacksache ;-) ... wichtig ist halt der String "#@administratorPassword*#"

Schritt 2:
In der setup.py muss dann das hier geändert werden:

Code: Alles auswählen

	# ALT
	# for i in ( target + '/opsi/unattend.xml', target + '/opsi/opsi-client-agent/files/opsi/cfg/config.ini' ):
	# NEU
	for i in ( target + '/opsi/unattend.xml', target + '/opsi/opsi-client-agent/files/opsi/cfg/config.ini', target + '/custom/postinst.d/98_cleanuplogs.ps1' ):
Damit wird dann - zusätzlich zu den beiden bekannten Files - auch noch die zuvor angelegte Datei "98_cleanuplogs.ps1" gepatcht und das Adminkennwort (lt. Property) anstelle #@administratorPassword*# eingetragen.


Soweit so gut, aber (und jetzt kommts:) :shock:
Zu dem Zeitpunkt, wenn die postinst.cmd aus dem Paket ausgeführt wird, befindet sich der Rechner noch in einer Phase, in der er noch in die Logs im Ordner %windir%\panther\unattendGC schreibt. Und genau darin liegt der Haken!!
Im Grunde müssten die Skripte cleanup.cmd und das obenstehende PS nach dem nächsten Boot laufen, also wenn die Win-Installation tatsächlich beendet ist.


Viele Grüße


JMS
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1517
Registriert: 10 Jun 2015, 12:19

Re: Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von m.radtke »

Hi JMS

leider habe ich erst heute Zeit gehabt mir die ganzen logs etc auf unserer Testumgebung anzuschauen.
Das die Passwörter in Klartext drin stehen ist natürlich unschön.
Unschöner ist das die unattend.mxl von einem User frei zugreifbar ist. Dies wird gefixt.

Die setupact.log und setuperr.log in C:\Windows\Panther\UnnattendGC sind von einem User nicht zu öffnen. Habe es eben geprüft.
Unter C:\Windows\Panther setupact und setuperr ist zumindest auf den geprüften win10 maschinen kein passwort zu finden.

nächste Woche gibt es dann ein update

Gruß
Mathias
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1517
Registriert: 10 Jun 2015, 12:19

Re: Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von m.radtke »

Sooooo
wie letzte Woche besprochen, es gibt ein Update.

Version 4.0.7.4-7
Darin wird die unattend.xml gelöscht.
Die setupact bzw setuperr mit Passwort sind für Non-Admin User nicht zugänglich.

http://download.uib.de/opsi4.0/experime ... s/netboot/

Gruß
Mathias
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von d.oertel »

Hallo JMS,

danke für die Hinweise!
Kann ich noch eine Erläuterung bekommen zu:
1. "Skinnable opsi-winst/opsi-script" wird nicht gezogen
Danke

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Bug in "win10-x64_4.0.7.4-6.opsi"

Beitrag von d.oertel »

Hallo JMS,

bezüglich de Punktes:
5. Falsche Ersetzungen in der unattended.xml?

Aus unserer Sicht ist in
<settings pass="specialize"> und <settings pass="oobeSystem">
im Bereich
<component name="Microsoft-Windows-International-Core"
korrekt:
<UILanguage>#@system_language*#</UILanguage>

problematisch:
<UILanguageFallback>#@system_language*#</UILanguageFallback>

Dies ist problematisch, da nicht für alle möglichen Systemsprachen alles Übersetzt ist.
Ob wir hier ein zusätzliches Property brauchen prüfen wir noch und haben dazu ein internes Ticket aufgemacht.

In <settings pass="windowsPE"> im Bereich:
<component name="Microsoft-Windows-International-Core-WinPE"
ist der Eintrag:
<UILanguageFallback>#@winpe_uilanguage_fallback*#</UILanguageFallback>
korrekt, da dieser ja aus einem eignenen Property kommt.

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Antworten