none
Wo lege ich Daten für alle User ab? RRS feed

  • Frage

  • Hallo,
    früher (ohne UACC) gab es die Möglichkeit Daten, die für mehrere User bestimmt waren (z.B. Programmeinstellugen), in der Registry unter HKLM\Software\xyz abzulegen. UACC virtualisiert jetzt aber den Hive, so dass ich keine Regkeys zwischen verschiedenen Useraccounts austauschen kann.

    So jetzt meine Frage: Gibt es von Microsoft einen Vorschlag, wie so etwas in Zukunft gemacht werden soll, oder hat jemand eine Idee wo ich solche Einstellungen demnächst ablege?

    Danke,
    Ralf
    Dienstag, 26. Januar 2010 14:11

Antworten

  • Gemeinsame Dateien können nicht in der Registry abgelegt werden. Dafür gibt es aber einen Dateibereich.
    Siehe SHGetFolderLocation http://msdn.microsoft.com/en-us/library/bb762180(VS.85).aspx

    Für diesen Zweck ist IMHO der hier am Besten geeignet:
    CSIDL_COMMON_APPDATA (FOLDERID_ProgramData)
    Version 5.0. The file system directory that contains application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. This folder is used for application data that is not user specific. For example, an application can store a spell-check dictionary, a database of clip art, or a log file in the CSIDL_COMMON_APPDATA folder. This information will not roam and is available to anyone using the computer.


    http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx

    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Mittwoch, 27. Januar 2010 09:19

Alle Antworten

  • RalfDo:

    > früher (ohne UACC) gab es die Möglichkeit Daten, die für mehrere User bestimmt waren (z.B.
    > Programmeinstellugen), in der Registry unter HKLM\Software\xyz abzulegen.

    Die Möglichkeit besteht doch weiterhin, da bei der Installation des
    Programmes doch Admin-Rechte gegeben sind.

    > UACC virtualisiert
    > jetzt aber den Hive, so dass ich keine Regkeys zwischen verschiedenen Useraccounts austauschen
    > kann.
    > So jetzt meine Frage: Gibt es von Microsoft einen Vorschlag, wie so etwas in Zukunft gemacht
    > werden soll, oder hat jemand eine Idee wo ich solche Einstellungen demnächst ablege?

    Was spricht gegen HKCU? Dort haben Programme doch Schreibrechte.

    hpm
    Dienstag, 26. Januar 2010 14:55
  • Hi,

    Am 26.01.2010 15:11, schrieb RalfDo:
    > früher (ohne UACC) gab es die Möglichkeit Daten, die für mehrere User
    > bestimmt waren (z.B. Programmeinstellugen), in der Registry unter
    > HKLM\Software\xyz abzulegen.

    Das ist immer noch so. Es geht darum, daß ein USER sie nicht ändern
    darf. LESEN! darf er dort auch mit UAC.

    Der Trick ist ja nicht eine schlechte Software (mit fehlerhaften
    BErechtigungen) durch UAC wieder ans Leben zu bringen, sondern von
    vornherein das Thema LUA zu berücksichtigen.

    "Using a Least-Privileged User Account"
    http://go.microsoft.com/fwlink/?LinkId=81232.

    "The Windows Vista and Windows Server 2008 Developer Story: Windows
    Vista Application Development Requirements for User Account Control
    (UAC)"
    http://msdn.microsoft.com/en-us/library/aa905330.aspx

    Tschö
    Mark
    --
    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: www.gruppenrichtlinien.de - deutsch
    Discuss : www.freelists.org/list/gpupdate
    Dienstag, 26. Januar 2010 15:36
  • Genau darum geht es ja, er soll schreiben können.
    Mein spezielles Problem ist folgendes: Ich möchte in einem Programm das Netzwerkdrucker verbindet den Drucker vorschlagen, den der letzte User ausgewählt hat. Also User A sucht sich Drucker xy aus, weil der an dem Arbeitsplatz am nächsten steht. Wenn sich User B an der selben Workstation anmeldet, bekommt er Drucker xy vorgeschlagen, weil das die warscheinlichste Variante ist. Ich muss also irgendwo den Namen des Drucker von User A ablegen lassen. Da Programme aber mit IL Medium starten, dürfen sie nicht in HKLM schreiben. Ich kann daran auch keine fehlerhaften Berechtigungen finden, eine gemeinsam Ablage sollte es schon irgendwo geben.

    Gruß
    Ralf

    Mittwoch, 27. Januar 2010 07:43
  • Gemeinsame Dateien können nicht in der Registry abgelegt werden. Dafür gibt es aber einen Dateibereich.
    Siehe SHGetFolderLocation http://msdn.microsoft.com/en-us/library/bb762180(VS.85).aspx

    Für diesen Zweck ist IMHO der hier am Besten geeignet:
    CSIDL_COMMON_APPDATA (FOLDERID_ProgramData)
    Version 5.0. The file system directory that contains application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. This folder is used for application data that is not user specific. For example, an application can store a spell-check dictionary, a database of clip art, or a log file in the CSIDL_COMMON_APPDATA folder. This information will not roam and is available to anyone using the computer.


    http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx

    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Mittwoch, 27. Januar 2010 09:19
  • Am 27.01.2010 08:43, schrieb RalfDo:
    > Genau darum geht es ja, er soll schreiben können.

    NEEEEEEEEEEEEEIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIINN!

    Wenn er schreiben darf, dann darf er das NUR IN HKEY_CURRENT_USER!
    Verlege also die Daten die geändert werden dürfen und definiere
    sie PRO USER!
    Daten die für alle gelten dürfen nur von Administratoren geändert
    werden, denn schliesslich könnte es dazu führen, das das System
    unbruachbar wird, wenn es ein User ändert, denn die Änderung
    betrifft alle anderen ebenfalls.

    > Mein spezielles Problem ist folgendes: Ich möchte in einem Programm das
    > Netzwerkdrucker verbindet den Drucker vorschlagen, den der letzte User
    > ausgewählt hat.

    Für solche übergriefenden Aktionen musst du einen Dienst programmieren.
    Dieser läuft zB als SYSTEM und darf damit überall schreiben/lesen,
    wo der jeweilige User nicht hindarf.
    Du delegierst also die Aktion, sie wird nicht mehr vom User selbst
    ausgeführt, sondern an einen anderen, der das darf übergeben.

    Normal so noch reingeworfen:
    http://www.gruppenrichtlinien.de/HowTo/Wie_werde_ich_lokaler_Administrator.htm

    Tschö
    Mark

    --
    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: www.gruppenrichtlinien.de - deutsch
    Discuss : www.freelists.org/list/gpupdate
    Mittwoch, 27. Januar 2010 11:50
  • Hi Martin,

    kleine Ergänzung

    Am 27.01.2010 10:19, schrieb Martin Richter:
    > Gemeinsame Dateien können nicht in der Registry abgelegt werden. Dafür
    > gibt es aber einen Dateibereich.
    > [...] C:\Documents and Settings\All Users\Application Data.

    C:\ProgramData\ sollte eigentlich die Entsprechung ab Vista sein.
    Ab diesem Einstiegspunkt haben Benutzer als Spezielles Recht
    in "Dieser Ordner und Unterordner" Dateien erstellen/anhängen und
    Ordner erstellen/anhängen.

    Tschö
    Mark

    --
    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: www.gruppenrichtlinien.de - deutsch
    Discuss : www.freelists.org/list/gpupdate
    Mittwoch, 27. Januar 2010 12:05
  • @Mark: CSIDL_COMMON_APPDATA definiert genau diesen Pfad unter Vista+Windows 7!
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Mittwoch, 27. Januar 2010 12:30