![]() |
Vista: Wohin mit "AllUsers"-Dateien?
Hallo,
unser Programm pflegt eine XML Datei in welcher Daten für alle Benutzer verwaltet werden. Diese Datei lag bis XP in C:\Dokumente und Einstellungen\AllUsers\Anwendungsdaten. Seit Vista ist das C:\ProgramData. Da nun jeder User dort auch reinschreiben muss, tritt ab Vista ein Problem auf: User A kann die Datei anlegen un hat vollen Zugriff drauf. User B hat allerdings nur Lesen&Ausführen weshalb es beim Schreiben natürlich zu Problemen kommt. Es muss doch einen Ort geben, wo man so eine Datei abgelegt werden kann und Jeder Vollzugriff drauf hat, oder? Welcher Ordner ist das seit Vista? Ich möchte unsere User eigentlich nicht mit Kontextmenü -> Als Admin starten nerven. Per Manifest als Admin starten ist auch ungeschickt, da das gleiche Programm aus einem Dienst heraus parametrisiert aufgerufen wird, wenn dort die Meldung kommt und keiner die sieht hängt das Programm ewig im Nirvana rum. Habt Ihr ne Idee wo ich die Datei am besten hinmachen kann? :gruebel: |
Re: Vista: Wohin mit "AllUsers"-Dateien?
Was liefert denn GetSpecialFolder(CSIDL_COMMON_APPDATA) für einen Pfad?
Dieser ist ja angeblich genau für sowas da. [add] Aber eventuell/notfalls kannst du dir ja wärend des Setups (mit Adminrechten) einen Unterordner in C:\ProgramData anlegen, wo du dann allen Usern Schreibrechte einräumst? |
Re: Vista: Wohin mit "AllUsers"-Dateien?
GetSpecialFolder(CSIDL_COMMON_APPDATA) liefert mir "C:\ProgramData", darüber wird auch der Pfad zur Datei generiert. Was ist wenn ein normaler User die Installation vornimmt, dann kann ich doch nich bei der Installation die Rechte für jeden setzen?
|
Re: Vista: Wohin mit "AllUsers"-Dateien?
Es gibt keinen solchen Ordner. Jeder Benutzer hat normalerweise eine eigene Datei. Die kann ja jeder auslesen, man kann also Daten problemlos zwischen den Dateien der verschiedenen Benutzer austauschen. Aber man kann eben keinem anderen Benutzer seine Datei direkt kaputtmachen.
Eine Software kann z.B. beim Start fragen, ob Änderungen anderer Benutzer importiert werden sollen. Ansonsten müssen tatsächlich die Ordnerrechte des Unterordners in den Anwendungsdaten aller Benutzer entsprechend verändert werden. Allerdings müsste es dafür schon gute Gründe geben. Ich persönlich hätte jetzt keinerlei Ideen für eine Software wo man das nicht auch sauber lösen könnte. :gruebel: Heißt: Es müssen die Rechte für die Gruppe Benutzer entsprechend gesetzt werden. // EDIT: Zitat:
|
Re: Vista: Wohin mit "AllUsers"-Dateien?
Zitat:
Zitat:
|
Re: Vista: Wohin mit "AllUsers"-Dateien?
Zitat:
|
Re: Vista: Wohin mit "AllUsers"-Dateien?
Naja der Dienst braucht nunmal ne Datei die er unabhängig vom Benutzer verwalten kann, wo aber die Benutzer auch drauf zugreifen können. In der Datei werden ständig Änderungen vorgenommen und nicht einmalig Einstellungen die man importiert und ab da dann selbst weiterarbeitet.
@himi: ich guck mal ob das während dem Setup geht, guter Tipp! |
Re: Vista: Wohin mit "AllUsers"-Dateien?
Ich würde sagen, entsprechendes ist C:\Users\Default\AppData und entsprechendem Unterordner.
|
Re: Vista: Wohin mit "AllUsers"-Dateien?
Man braucht keine Adminrechte, um die Rechte eines selbsterstellten Ordners oder einer Datei zu ändern. Wenn einem das Objekt gehört, kann man auch anderen den Zugriff erlauben. Ob man das tun sollte, ist eine andere Frage. Man muss dann nämlich höllisch aufpassen, dass ein eingeschränkter Benutzer einem Admin keine Daten unterjubeln kann, die dein Programm Amok laufen lassen.
|
Re: Vista: Wohin mit "AllUsers"-Dateien?
Also das mit den Rechten vergeben im Setup war der richtige Tip.
Ab Vista sind die Ordner unter C:\ProgramData\ Davor unter C:\Dokumente und Einstellungen\AllUsers\Anwendungsdaten\ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz