Lmn 7.1: Probleme mit Regpatches für Windows

Hallo Thomas,

linuxmuster-linbo7 4.0.14-1:

ist da der neu regpatcher für Windows drin? Oder wieder der alte?

LG

Holger

Hi Holger,

am Regpatcher wurde nichts verändert.

VG, Thomas

MAXUP und nicht MAXDOWN. Habs im Ursprungspost geändert.

Hallo Thomas,

am Regpatcher wurde nichts verändert.

es ist der „neue“ aus 4.0.13: meine Windowsen werden davon noch immer
geschreddert.
Ich mache gerade Tests, an welcher Zeile im Regpatch es den liegt.
Seltsam, dass es beim cloop nicht aufgetreten ist: erst beim qcow2…

LG

Holger

Super, bin gespannt.

VG, Thomas

Hallo Thomas,

Ich mache gerade Tests, an welcher Zeile im Regpatch es den liegt

Super, bin gespannt.

sieht leider gar nicht gut aus.

Das ist der Regpatch um den es geht:
"
Windows Registry Editor Version 5.00

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Tcpip\Parameters]
„Hostname“=„{$HostName$}“
„NV Hostname“=„{$HostName$}“

; setzt den Domainnamen richtig
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
„DefaultLogonDomain“=„LINUXMUSTER“

; setzt den Computernamen und Domainnamenrichtig
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
„Domain“=„LINUXMUSTER“
„NV Hostname“=„{$HostName$}“
„Hostname“=„{$HostName$}“
„NV Domain“=„LINUXMUSTER“
"

Folgende jeweils komplett alleine haben nicht geklappt:
"

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Tcpip\Parameters]
„Hostname“=„{$HostName$}“
„NV Hostname“=„{$HostName$}“
"
(ich teste offensichtlich „von Oben nach unten“, vor allem weil der
letzte 4 Einträge patched).

Um sicher zu stellen, dass der richtige Patch am Client verwendet wird,
habe ich folgendes Testszenario:

  1. es wird nur ein Client verwendet
  2. er wird, nachdem der Regpatch am Server angepaßt wurde, partitioniert
    (um sich erzu stellen, dass der „alte“ Patch weg ist).
  3. der Regpatch auf dem Client wird per linbo-ssh nochmal kontrolliert
  4. neu+start
  5. warten.

Bin gerade bei diesem Patch:

; setzt den Domainnamen richtig
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
„DefaultLogonDomain“=„LINUXMUSTER“

System wurde Heute auf linbo 4.0.14 aktualisiert.

LG

Holger

Hallo Thomas,

ich bin durch.
Die letzten zwei Einträge haben geklappt: die ersten drei nicht.
Es ist also so, dass wenn CurrentControlSet drin ist, dann geht es nicht.

Jetzt versuche ich noch die letzten beiden zusammen.

Nochmal zusammen:
diese drei gehen nicht (einzeln getestet)

"
Windows Registry Editor Version 5.00

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Tcpip\Parameters]
„Hostname“=„{$HostName$}“
„NV Hostname“=„{$HostName$}“

Diese beiden gehen (bisher einzeln getestet):

; setzt den Domainnamen richtig
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
„DefaultLogonDomain“=„LINUXMUSTER“

; setzt den Computernamen und Domainnamenrichtig
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
„Domain“=„LINUXMUSTER“
„NV Hostname“=„{$HostName$}“
„Hostname“=„{$HostName$}“
„NV Domain“=„LINUXMUSTER“
"

LG

Holger

Hallo,

ich hab jetzt noch einen weiteren Test gemacht: und zwar mit dem
regpatch, der die beiden funktionierenden Einträge hat.
Der Test wqurde absichtlich auf dem Client durchgeführt, auf dem das
Image nicht erstellt wurde: damit ich sehen kann, was in der registry
ankommt: und genau da wird es spannend…
Und ich hab den Test gemacht, weil ich wissen wollte, ob der Domainlogin
funktioniert.

  1. Domainlogin funktioniert, obwohl der Rechner falsch heißt (wenn ich
    .\ bei Benutzernamen eingebe, dann wird der Rechnername des Rechners
    angezeigt, auf dem ich das Image erstellt habe). Netzlaufwerke sind da.

  2. Regeinträge:
    wie zu erwarten, sind folgende Einträge korrekt gesetzt (ich hab mit
    regedit.exe in der Registry an der entsprechenden Stelle jeweils den
    Eintrag kontrolliert):

; setzt den Domainnamen richtig

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]

„DefaultLogonDomain“=„LINUXMUSTER“

; setzt den Computernamen und Domainnamenrichtig
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
„Domain“=„LINUXMUSTER“
„NV Hostname“="{$HostName$}"
„Hostname“="{$HostName$}"
„NV Domain“=„LINUXMUSTER“

Diese Einträge sind falsch (es steht der Rechnernamen drin, der dem
Imageerstellrechner gehörte):

; setzt den Computernamen richtig

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]

„ComputerName“="{$HostName$}"

; setzt den Computernamen richtig

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]

„ComputerName“="{$HostName$}"

Und jetzt wird es seltsam.
Diese Einträge zeigen den richtigen Rechnernamen, obwohl die im Rechner
von dem das Image stammte, definitiv auf „dessen Namen“ lauteten (ich
hab den „Orginalrechner“ angeworfen und geschaut).

; setzt den Computernamen richtig

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Tcpip\Parameters]

„Hostname“="{$HostName$}"
„NV Hostname“="{$HostName$}"

Irgendwoher holt der sich da den richtigen Rechnernamen … aus
ControlSet001 ???
Ich weiß es nicht…

Ich klon den Client jetzt wieder kaputt, weil ich einen der drei
problematischen Zeilen wieder rein nehme… :slight_smile:

LG

Holger

Hallo Holger,

Windows wählt beim Booten aus, was das CurrentControlSet wird: Unterschiede zwischen ControlSet001, 002 und 003 in der Registry - Tipps & Tricks
Wenn ich den Artikel richtig verstehe, will man in seinem Registry-Patch eigentlich immer ControlSet001 patchen. Und im Umkehrschluss CurrentControlSet zu patchen, wäre vergebens, weil es im Bootvorgang mit dem Inhalt von ControlSet### überschrieben wird.

MfG Buster

Hallo Buster,

Windows wählt beim Booten aus, was das CurrentControlSet wird:
Unterschiede zwischen ControlSet001, 002 und 003 in der Registry - Tipps
& Tricks
https://www.wintotal.de/tipp/unterschiede-zwischen-controlset001-002-und-003-in-der-registry/
Wenn ich den Artikel richtig verstehe, will man in seinem Registry-Patch
eigentlich immer ControlSet001 patchen. Und im Umkehrschluss
CurrentControlSet zu patchen, wäre vergebens, weil es im Bootvorgang mit
dem Inhalt von ControlSet### überschrieben wird.

das hab ich ja auch vermutet.
Wenn dem so wäre, dann wäre das ja wunderbar: dann könnten die
CurrentControlSet Patches raus: und das sind genau die, die den Client
schreddern.
Aber diese beiden Stellen werden eben nicht übernommen:

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]
„ComputerName“=„{$HostName$}“

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
„ComputerName“=„{$HostName$}“

Die Frage ist: können wir damit leben?

LG

Holger

Hallo,

… ich denke, ich hab jetzt gute Nachrichten.
Angeregt durch Buster hab ich geschaut: dashier wird korrekt von
ControlSet001 in CurrentControlSet übernommen:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
„NV Hostname“="{$HostName$}"
„Hostname“="{$HostName$}"

Diese beiden Patches fehlen noch:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]
„ComputerName“="{$HostName$}"

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
„ComputerName“="{$HostName$}"

Also hab ich die beiden einfach geändert in:

[HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ActiveComputerName]
„ComputerName“="{$HostName$}"

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ComputerName]
„ComputerName“="{$HostName$}"

Dann hab ich den Rechner mit diesem regpatch geklont (wie immer:
partitioniert, regpatch auf Client geprüft, gesynct).

Effekt: Durchschlagend!
Der Rechner bootet, es steht der richtige Rechnernamen in der
Anmeldemaske, in der Registry ist der „Vorlagenrechnername“ nicht mehr
zu finden und vor allem:
an den beiden Stellen steht der richtige Namen:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName]

Das würde bedeuten, dass ich mit dem neuen Patcher leben könnte: man
muss nur den Regpatch selbst anpassen.
„verlieren“ tut man dabei wohl nichts …

LG

Holger

1 „Gefällt mir“

Hallo,

ich habe auch nochmal nach den verschiedenen Bedeutungen der Registry-Keys gesucht und bin auf das hier gestoßen (Hervorhebung von mir):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName is the current NetBIOS computer name.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName is the NetBIOS computer name that will be used when the computer is restarted.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname is the host name of the computer.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname is the host name that the computer will take when it is restarted.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Domain is the current DNS domain name. Domain may be empty or not present. The full computer name is the values of Hostname + Domain.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Domain is the DNS domain name that the computer will use when it is restarted. The full computer name after a restart is the values of NV Hostname + NV Domain.

Demnach sollten diese Einträge reichen:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001\Control\ComputerName\ActiveComputerName\ComputerName für NetBIOS
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001\Services\Tcpip\Parameters\Hostname für Netzwerk/DNS
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001\Services\Tcpip\Parameters\Domain wobei ich da noch gelesen habe, dass es nicht die Kurzform sein sollte. Das deckte sich auch mit meiner Erfahrung, dass der Login am Windows gegen meinen externen Domänencontroller erst funktionierte, als ich den FQDN abzüglich Hostnamen verwendet habe.

Die Werte für „nach dem Reboot“ benötigen wir ja nicht. Die sollten nicht existieren und wenn doch, dann aber identisch sein.

Quellen:

MfG Buster

1 „Gefällt mir“

Okay, danke! :+1:

Die Problematischen betreffen also alle den System-Hive.
Es ist ja so, dass reged die Patches einzeln serviert kriegt und anwendet und bei jedem einzelnen gibt es eine Erfolgsmeldung. Wenn man nachher unter Linbo mit reged interaktiv den Hive durchsieht, sind auch alle Werte und Schlüssel vorhanden.
Ich schau mir das heute Nachmittag mal an. Evtl. hat es mit der Schreibweise zu tun (groß/klein).

VG, Thomas

@Buster @baumhof

Bitte nochmal klare Ansage: Wie lauten jetzt die korrekten Pfade im Regpatch?

  • \CurrentControl001\ oder
  • \ControlSet001\ oder
  • \CurrentControlSet\

Am besten wäre eine Beispieldatei, die ich ins Paket übernehmen kann, hier angehängt: #50.

VG, Thomas

Also, wenn der Regpatcher in allen Pfaden \CurrentControlSet\ durch \ControlSet001\ ersetzt, funktioniert das bei mir. Wäre das also die Lösung?

Zusätzlich muss bei allen Keys mit NV die DNS-Domäne verwendet werden. Richtig?

VG, Thomas

Hallo Thomas,

Also, wenn der Regpatcher in allen Pfaden \CurrentControlSet\ durch
\ControlSet001\ ersetzt, funktioniert das bei mir. Wäre das also die Lösung?

… den einen kannst du rauslöschen: der steht schon mit
CurrentControlSet und ControlSet001 drin: nur einer ist nötig.

In meiner vbox Umgebung war das die Lösung: ich schau mal, dass ich das
Montag in der Schule ausrolle.
Kann ich aber noch nciht versprechen.

Zusätzlich muss bei allen Keys mit NV die DNS-Domäne verwendet werden.
Richtig?

… bei mir steht bei denen wo NV mit drin steht manchmal der Hostname
und manchmal die Domain…
Von meiner Warte aus ist deine Aussage also nciht richtig.

Mein Patch sieht jetzt so aus:

Windows Registry Editor Version 5.00

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ActiveComputerName]
„ComputerName“="{$HostName$}"

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ComputerName]
„ComputerName“="{$HostName$}"

; setzt den Domainnamen richtig
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
„DefaultLogonDomain“=„LINUXMUSTER“

; setzt den Computernamen und Domainnamenrichtig
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
„Domain“=„LINUXMUSTER“
„NV Hostname“="{$HostName$}"
„Hostname“="{$HostName$}"
„NV Domain“=„LINUXMUSTER“

Es gibt, so hab ich das interpretiert , noch die Diskussion, dass bei
den beiden Domaineinträgen nicht die Kurzform rein sollte, sondern die
langform: also nicht LINUXMUSTER sondern LINUXMUSTER.LAN

Ich sage dazu: beides scheint zu gehen: in der Schule hab ich die FQDN
und in der vbox Umgebung nur die DOMAIN.

VIele Grüße

Holger

Hallo,

die NV-Werte („next value“ hostname und domain) braucht es nicht, wenn sichergestellt ist, dass die gleichnamigen Keys vorher nicht existierten. Wenn die Keys existieren und man überschreibt sie nicht, läuft man Gefahr, dass nach einem normalen Start (grün) der Rechner wie der Muster-Rechner heißt.

Kann reged Keys löschen? Das Dateiformat bietet die Option ja mit einem Minus vor dem Abschnitt/Key. Ich habe leider gerade keine Testumgebung zur Hand.

MfG Buster

Hallo,

die NV-Werte („next value“ hostname und domain) braucht es nicht, wenn
sichergestellt ist, dass die gleichnamigen Keys vorher nicht
existierten. Wenn die Keys existieren und man überschreibt sie nicht,
läuft man Gefahr, dass nach einem normalen Start (grün) der Rechner wie
der Muster-Rechner heißt.

genau davor hab ich auch angst: das sollten wir nicht machen.

Ich habe nun also in meiner VM getestet (wie immer: regpatch auf server
hin, client partitioniert+gesynct: immer der Client von dem das Image
nicht stammt, damit ich sehen kann, wo es möglicherweise nicht geändert
wurde).

Ich habe nacheinander diese beiden Regpatches getestet.
Der erste ist der aktuelle aus /srv/linbo/examples/

Windows Registry Editor Version 5.00

; linuxmuster.net 7

; patches hostname, to be applied after every image sync

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName\]
"ComputerName"="{$HostName$}"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName\]
"ComputerName"="{$HostName$}"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Tcpip\Parameters\]
"Hostname"="{$HostName$}"
"NV Hostname"="{$HostName$}"
; add your custom registry patches below

er enthält keinerlei ControlSet001

Effekt ist, dass alle Einträge, die oben in der Datei sind: aber an den
Stellen ControlSet001/Services/Tcpip/Parameters
und
CurrentControlSet/Services/Tcpip/Parameters
in den Werten: Hostname und NV Hostname steht der Namen des Vorlagenrechners.
Domainlogin geht, Netzlaufwerke da.

Dann habe ich „den alten“ Regpatch getestet:

Windows Registry Editor Version 5.00

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName\]
"ComputerName"="{$HostName$}"

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName\]
"ComputerName"="{$HostName$}"

; setzt den Computernamen richtig
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Tcpip\Parameters\]
"Hostname"="{$HostName$}"
"NV Hostname"="{$HostName$}"

; setzt den Domainnamen richtig
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\]
"DefaultLogonDomain"="LINUXMUSTER"

; setzt den Computernamen und Domainnamenrichtig
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
"Domain"="LINUXMUSTER"
"NV Hostname"="{$HostName$}"
"Hostname"="{$HostName$}"
"NV Domain"="LINUXMUSTER"

Damit stehen an beiden Stellen CurrentControlSet und ControlSet001 die
richtigen Werte.

Also: linbo 4.0.15 patched die Reg mit dem alten Patch korrekt und der
Client wird nicht beschädigt.
Domainlogin geht und Netzlaufwerke sind da.

Es sollte der Vorlagenpatch geändert werden, weil er die ControlSet001
Werte vermissen läßt.

Wenn ich Morgen Nacht Zeit habe spiele ich das in meiner Schule ein und
verteile das Image am Montag Morgen

Viele Grüße

Holger

2 „Gefällt mir“

Auch hier: hoffe, ihr kommt mit der Aufteilung zurecht, wenn das noch so Usus ist.
Ich komme nämlich mit der Verfolgung des update-threads nicht zu recht, wenn das alles da rein soll.

Vg, Tobias

2 „Gefällt mir“

Ja, aber ist nicht dringend. Der Regpatcher repariert das ja. Spricht was dagegen, den Milestone jetzt nach stable zu schieben?

VG, Thomas