Moin, ich würde gerne die Zugriffsrechte eines Verzeichnisses während bzw. nach der Ausführung meines Installers (MS Visual Studio 2015 C#) ändern. Es geht darum, dass das Program Konfigurationsdaten während des Betriebs im ProgramData-Verzeichnis speichert. Solange man als Administrator angemeldet ist, ist das auch kein Problem. Es sollen aber auch "Normalsterbliche" mit dem Programm arbeiten, was dazuführt, dass sie eine schöne Fehlermeldung bekommen, und damit nichts anfangen können. Wie man das manuell erledigt, weiß ich - will es aber automatisieren. Meine Suche im Netz hat nur "Icacls" zutage gebracht. Dafür müsste ich aber wohl vor der Istallation wissen, welche Benutzer/-Gruppen vorhanden sind, oder eine neue anlegen. Es handelt sich um die Fortführung einer Software, die unter XP begonnen wurde - da gab es nur Adminstratoren. Vielleicht hat jemand einen Link für mich. Vielen Dank
Rahul D. schrieb: > Meine Suche im Netz hat nur "Icacls" zutage gebracht. Dafür müsste ich > aber wohl vor der Istallation wissen, welche Benutzer/-Gruppen vorhanden > sind, oder eine neue anlegen. "jeder" gibt es überall. (oder "Benutzer") diese Gruppen habe auch eindeutige IDs, die sollte man dann verwenden weil es sonst auf nicht Deutschen System zu Problemen kommt. Aber ist es nicht einfacher den Speicherort zu ändern?
https://social.technet.microsoft.com/wiki/contents/articles/6083.windows-xp-folders-and-locations-vs-windows-7-and-vista.aspx Oder: Du versuchst zwanghaft den falschen Weg. Oliver
"[...]da gab es nur Adminstratoren." Autsch, und das mehr als 20 Jahre nach Windows NT.
Rahul D. schrieb: > dass das Program Konfigurationsdaten während des Betriebs > im ProgramData-Verzeichnis speichert. Das ist schon solange Zeit eine obsolete Technik, dass man so etwas nur noch im Rahmen von Computer-Archäologie finden kann. Es wäre doch allmählich an der Zeit, das Programm auf das jetzige Jahrtausend anzupassen. Eine Anpassung der Rechte oder das Arbeiten als Administrator sind unverantwortlicher Murks, ganz besonders dann wenn man die Software auch noch anderen unterjubeln will - auf dem eigenen Rechner kann man natürlich Mist bauen soviel man will, man trägt ja auch die Folgen selbst. Georg
Dieses kleine Setupprojekt von VS studio kann nicht viel. Ich habe mich deshalb mal mit dem Nullsoft Installer bechäftigt. http://nsis.sourceforge.net/AccessControl_plug-in Ansonsten gibt es auch noch Programme wie "Advanced Installer" oder WiX http://wixtoolset.org/ Mit Nullsoft oder WiX kann man eine Menge machen, muss sich jedoch einarbeiten. der Advanced Installer hat ein GUI
Rahul D. schrieb: > Es handelt sich um die Fortführung einer Software, die unter XP begonnen > wurde - da gab es nur Adminstratoren. WinNT3.1 kam 1993 raus. Acht Jahre vor XP > > Vielleicht hat jemand einen Link für mich. > > Vielen Dank Noch ein paar Ergänzungen zum bereits gesagten: 1. Früher gab's bzw. gibt's immer noch die Funktion ShGetFolderPath (ab W2k), davor hieß die SHGetSpecialFolderPath (ab W95, irgendwas mit dem IE war da noch...) ShGetFolderPath https://msdn.microsoft.com/de-de/library/windows/desktop/bb762181(v=vs.85).aspx Auflistung der Ordner https://msdn.microsoft.com/de-de/library/windows/desktop/dd378457(v=vs.85).aspx 2. .NET: Im System.Environment-Namespace https://msdn.microsoft.com/de-de/library/system.environment.specialfolder(v=vs.110).aspx nur falls man das braucht 3. Wenn die zu installierende Anwendung auch .NET ist: ApplicationSettings, die sich entweder im Projekt "zusammenklicken" lassen oder programmatisch erstellt werden können: https://msdn.microsoft.com/en-us/library/a65txexh(v=vs.140).aspx und/oder https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/application-settings-overview oder bei UWP: https://docs.microsoft.com/en-us/windows/uwp/app-settings/store-and-retrieve-app-data Edit: Noch ein guter, altbekannter Installer: Inno Setup http://www.jrsoftware.org/isinfo.php, Quelltexte: https://github.com/jrsoftware/issrc icacls.exe oder ähnliche Scherze kann man damit ebenso aufrufen
:
Bearbeitet durch User
Vielen Dank für die Unterstützung und Ratschläge. Die Links werde ich mir alle ansehen. Wie sähe denn eine bessere Methode - sprich: speichern der Konfigurationsdaten ohne diesen Workaround am Besten aus? Vielleicht noch etwas zum Programm: Mit diesem Programm kann man sich die Daten unserer Sensoren vieualisieren (Messwerte in Graphen anzeigen etc). Es ist eine kostenlose Zugabe zu unseren Systemen und hat daher eine eher geringere Priorität. [Gejammer] Der eigentliche Entwickler hat die Firma verlassen, weil er was anderes machen wollte. Ich durfte einen komplett undokumentieren Haufen Sourcecode übernehmen. [/Gejammer] Übrigens habe ich es scheinbar mit icacls und unserem Installer-Programm (seit 2011 keine neue Version mehr verfügbar) soweit hinbekommen. Im Moment liegt die Priorität auf der Beseitigung von Fehlermeldung. Die Systeme sind eigentlich immer Standalone - also keine weiteren Netzwerkverbindugen. WiX und Inno Setup habe ich schon angesehen und werde der "Spur" weiter folgen. Viele Grüße Rahul
Rahul D. schrieb: > Wie sähe denn eine bessere Methode - sprich: speichern der > Konfigurationsdaten ohne diesen Workaround am Besten aus Im Benutzerverzeichnis und nicht im Programmverzeichnis speichern.
Abradolf L. schrieb: > Im Benutzerverzeichnis und nicht im Programmverzeichnis speichern. ...hat den Nachteil, das wenn mehrere Anwender... Dan doch schon Eher "AllUsers" oder "ProgramData"
Bei Inno Setup ist das einfach. Zuerst muss sichergestellt werden, dass das Setup nur als Administrator leuft: [Setup] PrivilegesRequired=admin Dann erzeugt man den eigenen Ordner mit den richtigen Rechten: [Dirs] Name: "{commonappdata}\MeineApp"; Permissions: users-full
Sven L. schrieb: > Dan doch schon Eher "AllUsers" oder "ProgramData" Und genau beim "ProgramData"-Verzeichins liegt das Problem: Da darf man als Normalbenutzer nicht reinschreiben. Inno schrieb: > Bei Inno Setup ist das einfach. > > Zuerst muss sichergestellt werden, dass das Setup nur als Administrator > leuft: > > [Setup] > PrivilegesRequired=admin > Danke! > Dann erzeugt man den eigenen Ordner mit den richtigen Rechten: > > [Dirs] > Name: "{commonappdata}\MeineApp"; Permissions: users-full Das funktioniret auch mit "icacls". Ich werde das aber auf jeden Fall im Hinterkopf behalten.
Rahul D. schrieb: >> Sven L. schrieb: >> Dan doch schon Eher "AllUsers" oder "ProgramData" > > Und genau beim "ProgramData"-Verzeichins liegt das Problem: Da darf man > als Normalbenutzer nicht reinschreiben. Tut es nicht, was Du meinst, ist "Program Files". "AllUsers" und "ProgramData" ist ein und dasselbe Verzeichnis und genau dafür gedacht, gemeinsam genutzte Programmdaten abzulegen. swg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.