rico55
Goto Top

Windows Standard Verzeichnisberechtigungen

Hallo,

meine Studienkollegen und ich schreiben gerade eine Software in Java, die wir möglichst problemlos deployen wollen.

Nun haben wir noch keine Kunden aber hätten gerne welche ;) und um die Akzeptanz der Software zu erhöhen, würden wir den

Installationsvorgang natürlich gerne so problemlos wie möglich gestalten.

Wenn wir unseren Installer auf unseren windows Testmaschinen starten (Windows 7 , 64 Bit) fällt uns aber auf

das je nach Konfiguration und Installation scheinbar Windows unterscheidet welche Rechte in unserem Installationsordner

unserer Software gegranted werden.

Meine Frage dazu:

Ich habe jede Menge gesucht und gelesen über die Berechtigungen von Windows im allgemeinen, aber ich konnte nichts

finden was die Fragen beantwortet

"wo installiere ich am besten Dritthersteller Software bzw wo kann diese am Besten ihre Konfigurationdaten ablegen"
(außer in Temp)

Um es noch etwas zu konkretisieren

Ich würde gerne wissen wo unsere Software installiert werden kann und Konfigurationsdaten abgelegt werden können

damit an einem Mehrbenutzersystem diese auch gut läuft, ohne das hier die Objektrechte dazwischenfunken.

Konkretes Beispiel:

Wir haben zB einen Windows 7 Rechner nennen wir ihn mal X, an dem starten wir unsere Software und alles ist prima, Software läuft.

Dann haben wir einen meiner Meinung nach ähnlich aufgesetzten Rechner nennen wir ihn Y und an diesem fragt unser

Installer bei der Installation mit dem SELBEN Installerfile auf einmal ob wir die File wirklich ausführen wollen - das

sollte nicht vorkommen.

Hat jemand eine Idee?

Kennt jemand eine Ressource wo ich dazu etwas nachlesen kann?

VG
Mike

Content-ID: 201606

Url: https://administrator.de/contentid/201606

Ausgedruckt am: 19.11.2024 um 11:11 Uhr

Onitnarat
Onitnarat 12.02.2013 um 14:09:24 Uhr
Goto Top
Servus Mike,
also Programme installiert man in Windows unter %Programfiles%\Programmname...meist also C:\Programme\Programmname
die Konfigurationsdaten kannst Du dort auch ablegen oder halt unter %Appdata%\Roaming\Programmname bzw. %Appdata%\Local\Programmname (Windows Vista, 7, 8).

Detailliert nachlesen hier: http://msdn.microsoft.com/de-de

Gruß
Marcus
Rico55
Rico55 12.02.2013 aktualisiert um 14:16:46 Uhr
Goto Top
Hi Marcus,

das habe ich mir schon gedacht, weil das meiste von Standardinstallationen ja offensichtlich dort landet.

Ich möchte halt gerne wissen ob das nur Konvention ist (zB wie in Linux) oder ob das einen greifbaren techn. Vorteil hat.

Desweiteren gibt es scheinbar von Haus aus Ordner die sind restriktiver mit den Rechten und Ordner die sind weniger

restriktiv. Ich würde gerne wissen welche genau das sind. (beispiel Tempverzeichnis)

Um konkret auf meinen Anwendungsfall zurückzukommen habe ich einmal das Problem

1) Wo soll der Installer hininstallen und vor allen Dingen seine Konfigdateien ablegen, damit in einer

sicherheitsrelevanten Umgebung das

zu einer hohen Wahrscheinlichkeit auch ohne unser Zutun funktioniert (hier muss es Unterschiede geben von Haus aus, da

bin ich mir sicher)

2) Warum fragt mich unser Installer einmal ob ich die Software nun "ganz wirklich installieren will weil sie aus

unsicheren Quellen stammt" und einmal eben nicht? (selbe Installer, meiner Meinung nach gleichartig konfigurierte Systeme)

VG
Mike


EDIT zu 2)
UAC ist auf beiden Rechner aus
Onitnarat
Onitnarat 12.02.2013 um 14:47:54 Uhr
Goto Top
Hi Mike,

ich bin leider kein Entwickler, aber ein bisschen Erfahrung ist vorhanden. Ich weiß soviel, dass die Abfrage "Wollen Sie die Datei wirklich ausführen?" beim Start von EXE-Dateien die in C:\Programme liegen nicht erscheint und das quasi per Design von Windows so ist.
Ich weiß auch soviel, dass ein normales Benutzerkonto in Windows sehr beschränkte Schreibrechte hat. Außer für die Ordner und %Appdata%. Ob Du hier nun die Unterordner Local oder Roaming verwendest hängt dann von Dir ab. Das ist auch nur wichtig in Active-Directory-Umgebungen.
Roaming bedeutet, dass bei Verwendung von servergespeicherten Profilen, diese Verzeichnisse beim An- und Abmelden mit dem Server sychronisiert werden und der Benutzer die Daten bei einem Rechnerwechsel quasi mitnimmt.
Local wiederum bedeutet, dass die Daten lokal auf dem Rechner verbleiben.

Ich würde jetzt an Eurer stelle versuchen die Programmdateien nach C:\Programme\[Programmname] installieren zu lassen. Arbeitet aber hier mit den Variablen %Programfiles% bzw. %Programfiles(x86)%. So stellt Ihr sicher, dass Eure Anwendung auch auf einem 64bit System ins richtige Verzeichnis installiert wird.
Die Konfigurationsdateien legt ihr am Besten unter %Appdata% ab.

Warum der Installer einmal fragt und einmal nicht, weiß ich jetzt auch nicht, aber das hat vermutlich etwas mit signierten Installerdateien zu tun und mit nicht-signierten. Nicht-signierte stammen für das Windowssystem aus einer potentiell unsicheren Quelle und das Windows warnt den Benutzer.
Für einen Test würde ich aber definitiv ein frisch installiertes Windows vorschlagen.

Gruß
Marcus
SarekHL
SarekHL 12.02.2013 um 14:54:12 Uhr
Goto Top
Ich verstehe den Sinn der Frage nicht ganz. Ein Programm installieren tut normalerweise ein Administrator, und der hat natürlich überall Schreibrechte. Im Betrieb braucht ein (vernünftig geschriebenes) Windows-Programm keine Schreibrechte mehr auf diesen Ordner.

Benutzerdaten, die zwischen den Benutzern ausgetauscht werden sollen, könnte man zum Beispiel in einem Unterordner von %ALLUSERSPROFILE% anlegen. Benutzerdaten eines einzelnen Benutzers kann man in der Registry (HKCU) oder im Dateisystem unter %APPDATA% ablegen.