Registrypatch mit Parameter AllNTUserDats problematisch
Verfasst: 26 Mär 2018, 15:21
Hallo Leute,
ich habe da mal wieder ein kleines Problem:
ein OPSI-Paket soll diverse Registryeinträge setzen/ändern.
Da ich dies für alle User setzen möchte, verwende ich den Parameter "/AllNTUserDats" (und zusätzlich auch "/SysNative" so nebenbei bemerkt).
Dies wird für alle User auch problemlos umgesetzt, auch für den momentan angemeldeten User obwohl in der Protokolldatei folgendes steht:
So, jetzt ist aber der Domänen-Administrator angemeldet und ich mache das gleiche Spiel nochmal. Der gleiche Logbucheintrag ist auch wieder vorhanden, nur hat er dieses mal die Änderungen nicht umgesetzt. Auch ein neuerliches Anmelden (Ab- und dann Anmelden) oder ein Neustart hat die gewünschte Änderung nicht umgesetzt (ich habe irgendwo im Forum gelesen das bei NTUser.dat im Zugriff dies nach einem neuerlichen Anmelden umgesetzt würde).
Was mache ich falsch? Es ist nun kein Weltuntergang da diese Situation eher selten eintreten wird, aber dennoch würde ich gerne das Problem erkennen und Gewissheit haben daß dies nicht in anderen Konstellationen auch bei den betreffenden Userprofilen passieren könnte. Da wäre es dann durchaus wichtig da ich diese neue Registry-Änderung ja gerade für meine User setze die irgendwas haben wollen (Dateiendungen angezeigt bekommen, versteckte Verzeichnisse anzeigen, usw..).
Im konkreten Fall ist es folgende Sub die Aufgerufen wird:
bzw.
Mit folgendem Aufruf:
bzw.
Zweite "Nebenfrage" (da es mir gerade auffällt und ich das schon lange mal fragen wollte):
Kann man diesen Subs auch selbst definierte Parameter übergeben?
Damit müsste ich keine 2 Subs erstellen die das Gleiche machen (einmal deaktivieren und einmal aktivieren -> Parametergesteuert).
Ich könnte globale Variablen nutzen, was ich aber ungern machen würde wenn es auch mit Parametern gehen sollte.
ich habe da mal wieder ein kleines Problem:
ein OPSI-Paket soll diverse Registryeinträge setzen/ändern.
Da ich dies für alle User setzen möchte, verwende ich den Parameter "/AllNTUserDats" (und zusätzlich auch "/SysNative" so nebenbei bemerkt).
Dies wird für alle User auch problemlos umgesetzt, auch für den momentan angemeldeten User obwohl in der Protokolldatei folgendes steht:
Die NTUser.dat ist ja in dem Moment im Zugriff, die Änderung wird komischerweise aber dennoch sofort umgesetzt (ohne Neuanmeldung o.ä.).Warning: NTUser.dat could not be loaded from path "C:\Users\Mitarbeiter\NTUser.dat". Code 32: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
So, jetzt ist aber der Domänen-Administrator angemeldet und ich mache das gleiche Spiel nochmal. Der gleiche Logbucheintrag ist auch wieder vorhanden, nur hat er dieses mal die Änderungen nicht umgesetzt. Auch ein neuerliches Anmelden (Ab- und dann Anmelden) oder ein Neustart hat die gewünschte Änderung nicht umgesetzt (ich habe irgendwo im Forum gelesen das bei NTUser.dat im Zugriff dies nach einem neuerlichen Anmelden umgesetzt würde).
Was mache ich falsch? Es ist nun kein Weltuntergang da diese Situation eher selten eintreten wird, aber dennoch würde ich gerne das Problem erkennen und Gewissheit haben daß dies nicht in anderen Konstellationen auch bei den betreffenden Userprofilen passieren könnte. Da wäre es dann durchaus wichtig da ich diese neue Registry-Änderung ja gerade für meine User setze die irgendwas haben wollen (Dateiendungen angezeigt bekommen, versteckte Verzeichnisse anzeigen, usw..).
Im konkreten Fall ist es folgende Sub die Aufgerufen wird:
Code: Alles auswählen
[Registry_ShowFileExt]
openkey [Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
set "HideFileExt" = REG_DWORD:00000001
flushkey
Code: Alles auswählen
[Registry_HideFileExt]
openkey [Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
set "HideFileExt" = REG_DWORD:00000000
flushkey
Code: Alles auswählen
Registry_ShowFileExt /AllNtUserDats /SysNative
Code: Alles auswählen
Registry_HideFileExt /AllNtUserDats /SysNative
Zweite "Nebenfrage" (da es mir gerade auffällt und ich das schon lange mal fragen wollte):
Kann man diesen Subs auch selbst definierte Parameter übergeben?
Damit müsste ich keine 2 Subs erstellen die das Gleiche machen (einmal deaktivieren und einmal aktivieren -> Parametergesteuert).
Ich könnte globale Variablen nutzen, was ich aber ungern machen würde wenn es auch mit Parametern gehen sollte.