Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Wie schreibe ich eine Log Datei nach CommonAppData


21 replies to this topic

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 24 February 2010 - 08:57

Hi,

wenn ich zB in der setup.ini bei CmdLine /LI %ALLUSERSPROFILE%\MeineAnwendung.log eintrage kann ich die Log direkt in AllUsers schreiben.
Ich finde aber keine Variable für AllUsers\Anwendungsdaten. Außerdem kann ich auf diese Weise keinen neuen Ordner anlegen zB in AllUsers\MeineFirma\MeineAnwendung.log.
Weiß jemand wie ich in AllUsers\Anwendungsdaten schreiben kann (respektive AllUsers\ApplicationData usw, also Sprachunabhängig!) oder wie ich einen neuen Ordner anlegen kann woe ich meine log Datei rein schreiben lasse?

Vielen Dank schonmal.

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 01 March 2010 - 13:35

Hallo ist hier noch jemand aktiv?
Wo legt Ihr Eure logs ab?

sascha5782

sascha5782
  • Full Members
  • 6 posts

Posted 02 March 2010 - 17:07

Hallo,

hast Du schon %APPDATA% ausporbiert?

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 03 March 2010 - 11:55

Hi Sascha,

ja jetzt eben wink.gif . Funktionier auch, aber dabei wird die Log nach Anwendungsdaten des ausführenden Benutzers geschrieben. Ich hätte es gerne nach Anwendungsdaten unter ALLUSERS geschrieben.

%COMMONAPPDATA% oder %ALLUSERSAPPDATA% geht leider auch nicht...

Trotzdem Danke! smile.gif

Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 03 March 2010 - 14:16

Hi,
es gibt die Property CommonAppDataFolder.
Die wird vom Installer zu Beginn mit den passenden Wert gefüllt.

Bei mir steht da z.B. C:\Dokumente und Einstellungen\All Users\Anwendungsdaten drin

Die kannst du zwar nicht in der setup.ini verwenden. Aber du kannst ja evtl. eine Custom Action nach deinen Wunschen anlegen.


QUOTE
hast Du schon %APPDATA% ausporbiert?

Was passiert denn, wenn du in der setup.ini bei CmdLine auch ALLUSERS=1 aufnimmst?
Wird dann %APPDATA% entsprechend auf AllUsers geändert?

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 03 March 2010 - 15:07

QUOTE
Was passiert denn, wenn du in der setup.ini bei CmdLine auch ALLUSERS=1 aufnimmst?
Wird dann %APPDATA% entsprechend auf AllUsers geändert?

Wird es leider nicht, ist nach wie vor das Anwendungsdaten des ausführenden Nutzers.

QUOTE
Aber du kannst ja evtl. eine Custom Action nach deinen Wunschen anlegen.

Ja das habe ich auch schon versucht, aber selbst wenn ich eine Custom Action als First Action in Sequence starte ist das zu spät, weil das Logging scheinbar schon eher beginnt.
Vielleicht mache ich aber auch etwas falsch...Ich habe testweise mal versucht per Custom Action (First Action in UserInterface Sequence) einen Ordner im aktuellen Benutzer anzulegen also [USERPROFILE]^"MyCompany"
und die log per setup.ini CMDLine in diesen Ordner schreiben lasse, welcher nicht existiert. Ich bekomme dann immer die Meldung dass die Log nicht geschrieben werden kann (weil der Ordner nicht existiert).

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 March 2010 - 10:14

Auf meinem PC (Windows 7) gibt es überhaupt keinen Unterordner "AppData" bzw. "Anwendungsdaten" für den User "Public" bzw. "Öffentlich", sondern nur bei den einzelnen "echten" Benutzern. Der CommonAppDataFolder ist C:\ProgramData, also das gleiche wie %ALLUSERSPROFILE%. Was ich damit sagen will: verabschiede dich von dem Wunsch, etwas unter AllUsers\Anwendungsdaten schreiben zu wollen, denn dieses Uterverzeichnis existiert zumindest unter Wndows 7 nicht mehr.

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 04 March 2010 - 14:49

Ja stimmt, danke Stefan. Aber es muss doch einen Identifier für dieses Verzeichnis geben, welcher unter Windows 7 eben nach "ProgramData" und unter XP nach "AllUsers/Appdata" zeigt.

Wo sollte ich Deiner Meinung nach meine logs denn ablegen, so dass alle Nutzer da ohne Probleme rankommen, bzw was ist der von Microsoft dafür vorgesehene Ort?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 March 2010 - 20:11

Was spricht gegen %ALLUSERSPROFILE% ?

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 08 March 2010 - 13:41

Eigentlich nix, allerdings wäre ich der erste der dort eine Log Datei ablegt (wenn ich mal von meinem Rechner ausgehe). Besser wäre es da noch einen Ordner <Firmenname> anzulegen und dort hinein die log zu legen. Allerdings habe ich bisher noch keine Möglichkeit gefundne einen Ordner per Installscript anzulegen bevor das logging startet. Habe bspw eine Custom Action dafür erstellt welche als First Action eingetaktet war, was aber leider zu spät war. > Log konnte nicht geschrieben werden weil der Ordner nicht existiert.

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 10 March 2010 - 09:02

Kann mir bitte jemand sagen wie ich einen Ordner in AllUsers anlege bevor die Log Datei erstellt wird bzw. wo man Eurer Meinung nach eine Log Datei ablegen sollte? Ich möchte ungern der Erste sein der in %ALLUSERSPROFILE% eine Log Datei ablegt.

ali

ali
  • Full Members
  • 1,008 posts

Posted 10 March 2010 - 09:57

ho,
also wir legen usere install-logs immer ins %temp% Verzeichnis.

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 11 March 2010 - 11:18

Ah danke ali. Ich sehe da halt nur das Problem dass dies wieder ein nutzerspezifisches Verzeichnis ist. Wenn bspw. der Admin installiert und der Nutzer dann ein Problem hat und hier im Support anruft, kommt er dann (ohne Admin) nicht an die log ran...

ali

ali
  • Full Members
  • 1,008 posts

Posted 11 March 2010 - 12:17

hi,
da hasde ned ganz unrecht, fällt uns nicht so auf, da wir meist mit dem admin im kontakt sind. dann würde ja eigentlich das %windir% übrig beleiben, da stehen ja auch schon massig logs drin. Der Zugriff auf dieses Verzeichnis kann aber eben auch durch Systemprivs untersagt werden, aber wenn Admin installation verlangt wird, würde das auch gehen.

Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 15 March 2010 - 15:14

Ja genau ali, ins %windir% schreiben wir aktuell auch unsere Logs. Unsere Setups laufen auch alle als "elevate administrator". Allerdings schreiben wir eigentlich nur noch aus historischen Gründen ins Windir (weil es seit Jahren schon so ist wink.gif ).
Angeblich soll es aber seit Windows 7 irgendwelche Richtlinien geben dass man dort nicht mehr reinschreiben sollte.

Hat vielleicht noch jemand einen Tip wie ich ein Verzeichnis mit InstallShield anlegen kann bevor das Loggin startet. Wenn das geht würde ich nämlich nach %ALLUSERSPROFILE%<Firmenname>\Install-Log loggen.

Blueeberry

Blueeberry
  • Full Members
  • 29 posts

Posted 16 March 2010 - 09:55

QUOTE (Stefan Krueger @ 2010-03-04 10:14)
Auf meinem PC (Windows 7) gibt es überhaupt keinen Unterordner "AppData" bzw. "Anwendungsdaten" für den User "Public" bzw. "Öffentlich", sondern nur bei den einzelnen "echten" Benutzern. Der CommonAppDataFolder ist C:\ProgramData, also das gleiche wie %ALLUSERSPROFILE%. Was ich damit sagen will: verabschiede dich von dem Wunsch, etwas unter AllUsers\Anwendungsdaten schreiben zu wollen, denn dieses Uterverzeichnis existiert zumindest unter Wndows 7 nicht mehr.

Also ich hab auch Windows 7 und bei mir gibt es den AppData Order im Profil "Default", den sieht man aber nur wenn man unter Organisieren --> Ordern- und Suchoptionen --> Register "Ansicht" geht und da den Radio-Button auf "Ausgeblendete Dateen, Ordner und Laufwerke anzeigen" setzt.
Um theoretisch in den All Users Ordner zu kommen kannst du ja %ALLUSERPROFILE%\AppData oder %USERPROFILE%\..\AllUsers\AppData arbeiten bzw. in Windows 7 %USERPROFILE%\..\Default\AppData oder mit der %ALLUSERPROFILE% (In dieser Variable ist "C:\ProgramData" gesetzt, dass ist ein Versteckter Ordner und da sehe ich bei mir so einige Installation die damit arbeiten..).

Edit: Die Umgebungsvariablen kannst du unter anderem auslesen wenn du unter start --> ausführen --> cmd [Enter] --> set ohne parameter eingibst...

Edited by Blueeberry, 16 March 2010 - 09:57.


ali

ali
  • Full Members
  • 1,008 posts

Posted 16 March 2010 - 14:33

@alibaba
das wird nicht das einzige Problem sein, das du hast. Wenn man unter
%ALLUSERSPROFILE% einen Ordner anlegt, dann muss man auf den noch Rechte vergeben, damit ein "normaler" User schreibenden Zugriff darauf hat!
Einfach anlegen wird nicht genügen.

Wir sind am überlegen, ob wir %ALLUSERSPROFILE% zum Loggen unserer Anwendung nehmen, da könnte man Ordner und Rechte schon bei der Installation anlegen. Aber beim Start vom Setup huh.gif da würde mir nur ein eigens dafür konstruierter Starter einfallen, der vor dem Setup anlegt und dann das Setup startet.

Edited by ali, 16 March 2010 - 14:35.


Alibaba

Alibaba
  • Full Members
  • 78 posts

Posted 17 March 2010 - 15:56

Danke für die zahlreichen Antworten! smile.gif

@Blueeberry:
ich kann leider nicht mit %ALLUSERPROFILE%\AppData arbeiten, weil dieser Ordner ja bspw. unter einem deutschen Windwos XP nicht existiert und unsere Setups sind nach wie vor auch für XP konzipiert. Ich brauche eben genau einen Bezeichner den ich in der Kommandozeile verwenden kann und der unter XP, Vista, etc und vor allem auch unter allen möglichen BS Sprachen funktioniert...

@ali:
Ja gut der normale Nutzer müsste ja nur Leserechte in diesem Ordner haben, schreiben tut ja das Setup welches sich immer Admin Rechte holt. (elevate Administrator) Den eigenen Starter möchte ich natürlich vermeiden, aber wahrscheinlich wird nix anderes übrigbleiben. Früher gab es mal die OnBegin Funktion, die hätte das wahrscheinlich erledugen können, aber leider unterstützt IS das nicht mehr seit der 12er Version glaub ich. Die Anwendungslogs würde ich an Eurer Stelle allerdings nicht nach AllUsers legen, denke die sind im Nutzerordner besser aufgehoben. Was wenn mehrere Nutzer am selben Rechner mit der selben Anwendung arbeiten.

Edited by Alibaba, 18 March 2010 - 09:17.


ali

ali
  • Full Members
  • 1,008 posts

Posted 17 March 2010 - 18:08

QUOTE
Die Anwendungslogs würde ich an Eurer Stelle allerdings nicht nach AllUsers legen, denke die sind im Nutzerordner besser aufgehoben. Was wenn mehrere Nutzer am selben Rechner mit der selben Anwendung arbeiten.


Gebe ich Dir Recht, aber meist hat man Kontakt zum Admin, der meldet sich mit seinem Account an. Wenn der jetzt die UserLogs holen will, muss er sich erst mit anderem User anmelden. Dazu kommt noch, das wir ein Tool gebaut haben, welches die Logs sammelt und per Mail an uns sendet. Dieses Tool wird auch unter Vista und weiter als Admin aufgerufen. Für uns wäre es also besser wenn die Logs zentral stehen. Man kann der LogDatei ja zb. einen Usernamen in den Dateinamen geben.

Edited by ali, 17 March 2010 - 18:09.


Guest_jminstall

Guest_jminstall
  • Guests

Posted 09 September 2010 - 10:40

Spricht etwas dagegen, den Ordner schon im Setup-Design anzulegen? Ich lege dazu eine entsprechende Komponente mit Destination [CommonAppDataFolder]FIRMENNANE\log an.

Bisher schreiben wir allerdings das IS-Log nicht direkt rein, sondern kopieren es am Ende der Installation aus dem tmp-Verzeichnis. Keine Ahnung, warum wir das so machen (ich hab die Installationsbetreuung auch nur "geerbt"). Ein Grund dürfte sein, dass das tmp-Verzeichnis immer existiert und man auch dahin loggen kann, wenn das eigene Log-Verzeichnis nicht engelegt werden kann.

Gruß
Jörg

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 September 2010 - 14:21

Naja, das Log beginnt ja schon bevor der Installer Verzeichnisse anlkegt und Dateien kopiert usw.

Guest_jminstall

Guest_jminstall
  • Guests

Posted 17 September 2010 - 17:31

Hm, guter Einwand, Stefan. Das Problem wird er aber generell haben, wenn er im Rahmen der Installation erst ein neues Verzeichnis anlegen will. Bis dahin schreibt IS immer ins TMP-Verzeichnis, nehme ich an.