Announcement

Collapse
No announcement yet.

Schreiben in die Registry - mal geht's, mal nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schreiben in die Registry - mal geht's, mal nicht

    Hi,

    ich hab hier noch so ein tolles Phänomen in einer TerminalServer-Umgebung: ich habe einen Dienst, der in die Registry der gerade angemeldeten Benutzer schreiben soll:

    Code:
    private void SetRegValue(string usersid)
    {
                try
                {
                    RegPath = usersid + @"\Software\MySoftware";
    
                    Microsoft.Win32.RegistryKey reg = Microsoft.Win32.Registry.Users.OpenSubKey(RegPath, Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl);
                    reg.SetValue("Test", DateTime.Now.ToString(), Microsoft.Win32.RegistryValueKind.String);
                    reg.Flush();
                    reg.Close();
                    this.LogToFile("SUCCESS", usersid, null);
                }
                catch (Exception ex)
                {
                    this.LogToFile("ERROR", usersid, ex);
                }
    }
    Die Funktion läuft prima (wird in einer Schleife alle paar Sekunden aufgerufen)... im Schulungsraum, wo das später laufen soll, klappt es auch... sofern ich es mit einem Benutzer teste! Bei 2, 3, 4 oder 5 Benutzern klappt es meistens auch prima... nur irgendwann ist ein Punkt erreicht wo plötzlich nichts mehr in die Registry geschrieben wird! Die Funktion wirft aber keine Exception, protokolliert auch einen SUCCESS, der Wert ist in der Funktion sogar mit GetValue auslesbar, aber beim Benutzer steht nichts drin... nach einigen Minuten (5-10 Minuten) oder wenn sich andere Benutzer vom TS abmelden, kommt der Wert dann plötzlich...

    Mein erster Gedanke war natürlich, dass die SID eventuell nicht stimmt, aber die stimmt laut Log-File definitv mit dem Benutzer überein...

    Hat da jemand ne Idee dazu? Bin froh um jeden Tipp... :-/

  • #2
    Ich hab noch nie (außer als Konsumer) in einer TS Umgebung gearbeitet.
    Ich geh mal davon aus, dass es ein DomänenUmgebung ist, die User also DomänenUser, die korrekt im AD stehen?

    Meine Vermutung wäre, dass diese Prozesse nicht garantiert synchron erfolgen und irgendwelche Ressourcen/ Systemdienste streiken.

    Ich würde das aktiv im TS Eventlog überprüfen und fragliche Dienste auch mal von Hand stoppen / starten.
    Natürlich müsste halbwegs klar sein, welche Dienste in dem Rahmen überhaupt eine Rolle spielen. Dabei wäre zu berücksichtigen, ob Mehrfachanmeldungen, verschiedene User Rechte usw. eine Rolle spielen.
    Gruß, defo

    Comment

    Working...
    X