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

Admin+Poweruser


25 replies to this topic

ANo

ANo
  • Full Members
  • 179 posts

Posted 27 June 2006 - 17:49

Hallo Kollegen,
ich habe eine Frage zum Konzept WindowsInstaller-Projekte:

Eine Installation kann mit Administrator- und mit Poweruserrechten ausgeführt werden.
- Admin: Installation für alle oder für sich
- Poweruser: Installation für sich
- kein Eintrag von ALLUSERS in der Property-Tabelle

Der Poweruser installiert das Produkt für sich.
Nun möchte auch der Administrator das Product installieren.
Der Admin bekommt keine Auswahl-Option (für alle oder nur für sich)
angezeigt (Dialog CustomInformation).
Frage 1) Ist da schon ein Fehler?
Der Admin fährt fort mit der Installation.
Dabei wird das Produkt für alle installiert.

Problem, es werden mehrere Links erzeugt, auch im Startmenü, die nicht vorgesehen sind.
Beim Deinstallieren gibt es Fehler.

Frage 2) Müsste der Admin vorher prüfen, ob das Produkt schon installiert wurde und wenn ja
a) abbrechen seine eigene Installation
cool.gif das Produkt deinstallieren+neu installieren?

Ich weiß einfach nicht wie in so einer Situation vorzugehen ist.

In der Gegenrichtung funktioniert es:
- Admin installiert das Produkt für alle
- wenn Poweruser versucht das Produkt zu installieren, bekommt er die Meldung,
daß der Admin Rechte gesetzt hat und diese Installation verhindert

Ich würde mich sehr auf eine Antwort freuen.

MfG
André

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 June 2006 - 08:18

Bitte beschreib dein problem noch etwas genauer:

QUOTE
Problem, es werden mehrere Links erzeugt, auch im Startmenü, die nicht vorgesehen sind.

In wessen Startmenü? Dem vom Admin oder dem vom PowerUser? Es gibt ja ein Startmenü für alle Benutzer und dann noch für jeden Benutzer ein eigenes. Die Eintraäge werden dann jeweils zusammengemischt. Der PowerUser müsste also 2 Shortcuts sehen (einmal seinen eigenen und einmal den für ALLUSERS), der Admin aber nur einen.

QUOTE
Beim Deinstallieren gibt es Fehler.

Welchen?

QUOTE
wenn Poweruser versucht das Produkt zu installieren, bekommt er die Meldung, daß der Admin Rechte gesetzt hat und diese Installation verhindert

Welche Meldung genau, und wo kommt die her? Hast du die eingebaut?

Hast du mal Logdateien von allen Szenarien erstellt? Prüf mal genau, welchen Wert ALLUSERS hat und was er am Anfang des Log sagt ob die Software bereits installiert ist.

ANo

ANo
  • Full Members
  • 179 posts

Posted 28 June 2006 - 13:53

Hallo Stefan, ich versuche es etwas ausführlicher zu erklären:

Test 1: Poweruser, dann Admin
=============================
Der Poweruser installiert das Produkt für sich, das ist okay, mit 2 Shortcuts (Desktop+ Programmfolder).
Die COM-Objekte werden in den CommonFiles-Folder installiert.
SharedDLLS RefCount = 1
Während der Installation wurde in dem Dialog CustomInformation keine Auswahl angezeigt (für alle / für sich).
Dies sollte okay sein, da der Poweruser nur für sich selbst die Anwendung installieren darf.

Jetzt meldet der Admin sich an dem PC an und startet auch die Installation.
Normal würde dabei in dem Dialog CustomInformation eine Auswahl angezeigt werden (für alle /für sich).
Diese Auswahl wird aber nicht angezeigt (?).
Der Admin führt die Installation dennoch aus (als Test hier).
SharedDLLS RefCount = 2

Jetzt hat der Poweruser 4 Shortcuts (2 Desktop + 1 Programmfolder + 1 Startmenü).
Den Shortcut im Startmenü verstehe ich nicht, da die Anwendung nur 2 installieren soll (Desktop (für alle oder sich selbst) und Programmfolder (für alle oder sich selbst)).

Auch ein existierender UserX ohne weitere Rechte hat dann den einen Shortcut zuviel (1 Desktop + 1 Programmfolder + 1 Startmenü).

Jetzt meldet der Poweruser sich an dem PC an und deinstalliert das Produkt.
Seine selbst angelegten Shortcuts werden entfernt. Das Produkt wird deinstalliert.
Es werden alle Objekte im CommonFiles-Folder entfernt(?).
SharedDLLS RefCount = 1

Jetzt meldet der Admin sich an dem PC an und deinstalliert auch das Produkt.
Jetzt hagelt es Fehlermeldungen: COM-Objekte - Fehler beim Entfernen aus der Registrierung.
Weil es die Objekte nicht mehr gibt im CommonFiles-Folder.


Test 2: Admin (für alle), dann Poweruser
========================================
Der Admin installiert das Produkt für alle.
Jetzt meldet der Poweruser sich an dem PC an und möchte auch das Produkt installieren (hier als Test).
Der Poweruser bekommt die Meldung:
"The system administrator has set policies to prevent this installation."
Dies sollte okay sein.

Die Anwendung funktioniert, es gibt für alle 2 Shortcuts (1 Desktop + 1 Programmfolder).
Die Anwendung kann vom Admin auch sauber deinstalliert werden.


Test 3: Admin (für sich), dann Poweruser
========================================
Der Admin installiert das Produkt für sich.
SharedDLLS RefCount = 1

Jetzt meldet der Poweruser sich an dem PC an und möchte auch das Produkt installieren.
SharedDLLS RefCount = 2
Jetzt hat der Poweruser 3 Shortcuts (1 Desktop + 1 Programmfolder + 1 Startmenü).

Der Poweruser deinstalliert das Produkt wieder.
Die 3 Shortcuts werden entfernt. Das Produkt wird deinstalliert.
Es werden alle Objekte im CommonFiles-Folder entfernt(?).
SharedDLLS RefCount = 1

Jetzt meldet der Admin sich an dem PC an und deinstalliert auch das Produkt.
Jetzt hagelt es Fehlermeldungen: COM-Objekte - Fehler beim Entfernen aus der Registrierung.
Weil es die Objekte nicht mehr gibt im CommonFiles-Folder.


ALLUSERS im Dialog CustomerInformation
======================================
Verhalten für den Next-Button:

ALLUSERS | 1 | ApplicationUsers = "AllUsers" And Privileged
ALLUSERS | {} | ApplicationUsers = "OnlyCurrentUser" And Privileged

ALLUSERS wird nirgends (?, Suche über Tabellen) gesetzt.


<-- Logfiles muß ich noch auswerten


Abprüfung der Benutzerrechte
============================
erfolgt über CustomAction + Scriptfunktion mit
SYSINFO.WINNT.bAdmin_Logged_On
SYSINFO.WINNT.bPowerUser_Logged_On

Lösung (?)
==========
Prüfe bei der INstallation (wenn nicht im Maintenancemode) die RegistryKeys
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
S-1-5-UserXYZ\Products\
auf das Vorhandensein des Produkts ab.
Wenn schon vorhanden, dann Abbruch der Installation.

Sorry, es ist etwas lang.
Viele Grüße
André

ANo

ANo
  • Full Members
  • 179 posts

Posted 30 June 2006 - 12:02

Wenn ein Benutzer mit erhöhten Rechten eine Anwendung für alle installiert,
darf er dann die Anwendung auch wieder deinstallieren?

MfG
André


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 01 July 2006 - 11:23

QUOTE

Während der Installation wurde in dem Dialog CustomInformation keine Auswahl angezeigt (für alle / für sich).
Dies sollte okay sein, da der Poweruser nur für sich selbst die Anwendung installieren darf.

Schau bitte mal ins Log welchen Wert ALLUSERS wirklich ahtte. Im Prinzip hat ein Poweruser ausreichend Rechte um die Installation für alle Benutzer durchzuführen. Nur ein eingeschränkter Benutzer hat sie nicht. Oft wird hier aber nicht sauber unterschieden.

QUOTE

Jetzt hat der Poweruser 4 Shortcuts (2 Desktop + 1 Programmfolder + 1 Startmenü).

Mit Programmfolder meinst du: Start > Programme? Und mit Startmenü die Lsite direkt oberhalb des Start-Buttons? Dort werden die zulest gestarteten Programme aufgelistet. Hast du das Programm mal gestartet? Dann ist das der Grund für diesen Eintrag.

QUOTE

Es werden alle Objekte im CommonFiles-Folder entfernt(?).

Das darf eigentlich nicht sein.

QUOTE

Der Poweruser bekommt die Meldung:
"The system administrator has set policies to prevent this installation."
Dies sollte okay sein.

Da bin ich mir nicht sicher. Was genau steht denn im Log?

QUOTE

Verhalten für den Next-Button:
ALLUSERS | 1 | ApplicationUsers = "AllUsers" And Privileged
ALLUSERS | {} | ApplicationUsers = "OnlyCurrentUser" And Privileged

Kann sein dass Privileged auch für den PowerUser gesetzt ist. Schau mal im Log.

QUOTE

ALLUSERS wird nirgends (?, Suche über Tabellen) gesetzt.

Die Custom Action ISSETALLUSERS macht das normalerweise.

QUOTE

Abprüfung der Benutzerrechte
============================
erfolgt über CustomAction + Scriptfunktion mit
SYSINFO.WINNT.bAdmin_Logged_On
SYSINFO.WINNT.bPowerUser_Logged_On

In einer Custom Action??

QUOTE

Wenn ein Benutzer mit erhöhten Rechten eine Anwendung für alle installiert,
darf er dann die Anwendung auch wieder deinstallieren?

Ja, natürlich.

bernard

bernard
  • Full Members
  • 127 posts

Posted 11 August 2009 - 10:34

BS: Windows 7 Ultimate
User: jbStandard - Standard-User

Habe InstallShield 2008 Prof.
Generator Engine.msi - erstellt unter Basic MSI Projekt

Als Standard-User führe ich ein Basic MSI Projekt aus dem InstallScript Projekt:
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" ApplicationUsers=OnlyCurrentUser ARPSYSTEMCOMPONENT=1 /L*VX "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine.log"
aus.
Es kommt Dialog CustomerInformation() zuerst,
aber keine Auswahl nur: Only for me - ist OK!

In Property-Tabelle:
ApplicationUsers OnlyCurrentUser
kein ALLUSERS !

Im LOG-File (Generator_Engine.log):
kein ALLUSERS !
aber zwei Mal eine neue Zeile:
Property©: APPLICATIONUSERS = OnlyCurrentUser ??

Problem:
Es wird ins
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid}
IMMER geschrieben, nicht ins HKCU wie ich möchte.

Brauche dringend eure Hilfe

Danke in Voraus


ali

ali
  • Full Members
  • 1,008 posts

Posted 11 August 2009 - 12:48

Im Customer Information Dialog wird ALLUSERS auf "{}" gesetzt wenn eine Installation im Benutzermodus läuft
"If the value of ALLUSERS is not set or it is an empty string (“”), Windows Installer performs a per-user installation, and the configuration information is stored in the user’s personal profile. "

Kannst du ein Unterschied im verhalten erkennen, wenn du die Installation nicht aus dem Installscript sondern direkt über Eingabeaufforderung aufrufst?
Was passiert denn wenn du in dem Dialog "CustomerInfoemation" anstelle des {} eine 0 einsetzt?

ALLUSERS, MSIINSTALLPERUSER, and Windows 7 or Windows Server 2008 R2
If the ALLUSERS property is set to 2 and MSIINSTALLPERUSER is set to 1, the Windows Installer performs a per-user installation.

During a per-machine installation, the Windows Installer requires elevated privileges, and it directs files and registry entries to per-machine locations. If User Account Control (UAC) is available on the target system, a per-machine installation typically prompts for consent or credentials, depending on the access level of the user. During a per-user installation, the Windows Installer does not prompt for credentials, and it redirects files and registry entries to per-user locations.

For more information, see Single Package Authoring on the MSDN Web site.


Ist das Property MSIINSTALLPERUSER gesetzt?

In IS2010 gibt es eine neue Einstellungsmöglichkeit in dem "General Information" View für Windows 7. Hier kann man einstellen, ob der User entscheiden kann ob er eine PerUser-Installation durchführen kann oder nicht. "Show per User Option" nennt sich das hier und bietet dem Benutzer die Möglichkeit der Auswahl im "Ready to Install Dialog". Hierbei wird ALLUSERS=2 und MSIINSTALLPERUSER=1 gesetzt wenn eine Benutzerinstallation durchgeführt werden soll. Evtl. kannst du das ja mal manuell in deinen Dialog aufnehmen um die Einstellung zu testen.

gruß
ali

Edited by ali, 11 August 2009 - 13:03.


bernard

bernard
  • Full Members
  • 127 posts

Posted 11 August 2009 - 14:56

Danke ali für deine Antwort.

Leider kommt keinen Dialog CustomerInformation (es war in InstallScropt-Projekt).

1.
Habe probiert:
cmd>
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" ApplicationUsers=OnlyCurrentUser ARPSYSTEMCOMPONENT=1 /L*VX "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine.log"

Es kommen die folgende Dialogs:
- InstallWelcome
- ReadyToInstall
- Finish

2. MSIINSTALLPERUSER gibt es keine.
3. UAC hat Stufe 3: Default - Notify me only when programs try to make...

4. DeInstalliert
5. neu
msiexec /i "C:\xxxx\msi\Generator Engine.msi" ALLUSERS=0 INSTALLDIR="C:\xxxx_jbStandard\" ApplicationUsers=OnlyCurrentUser ARPSYSTEMCOMPONENT=1 /L*VX "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine.log"
Kommt die Fehlermeldung:
Error 1925: You do not have sufficient privileges to complete...

Und im LOG-File (Generator_Engine.log):
Property©: ALLUSERS = 1

Noch einen Tipp?


ali

ali
  • Full Members
  • 1,008 posts

Posted 11 August 2009 - 15:02

ja, mach mal ein log mit /l*v und schau wo das ALLUSERS auf 1 umgeswitcht wird. Irgenwie muss es ja dazu kommen.
Wenn du das Problem speziell auf Windows 7 hast, setze doch mal die Propertys ALLUSERS=2 und MSIINSTALLPERUSER=1 und schau was passiert.

Edited by ali, 11 August 2009 - 15:03.


bernard

bernard
  • Full Members
  • 127 posts

Posted 12 August 2009 - 08:36

Hi ali,

Mein "Basic MSI Project":
Dialogs -> All Dialogs -> CustomerInformation -> Behavior -> Next PushButton
Event: [ALLUSERS]
Argument: {}
Condition: ApplicationUsers = "OnlyCurrentUser" And Privileged
geändert, jetzt
Event: [ALLUSERS]
Argument: 0
Condition: ApplicationUsers = "OnlyCurrentUser"

Neues msi erstellt.

über Eingabeaufforderung:
1.
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" ARPSYSTEMCOMPONENT=1 ALLUSERS=2 /L*V "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine.log"
Es kommt die "Error 1925...." und

Im LOG-File (Generator_Engine.log):
MSI © (28:54) [09:17:25:078]: Command Line: INSTALLDIR=C:\delta_jbStandard\ ARPSYSTEMCOMPONENT=1 ALLUSERS=2 CURRENTDIRECTORY=C:\delta shared\msi CLIENTUILEVEL=0 CLIENTPROCESSID=1832
MSI © (28:54) [09:17:25:078]: PROPERTY CHANGE: Adding ALLUSERS property. Its value is '2'.
MSI © (28:54) [09:17:25:078]: PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '2'. Its new value: '1'.
MSI © (28:54) [09:17:25:078]: PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '1'. Its new value: '2'.
MSI © (28:54) [09:17:25:078]: PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '2'. Its new value: '1'.
MSI © (28:54) [09:17:29:234]: Switching to server: ROOTDRIVE="C:\" SECONDSEQUENCE="1" EXECUTEACTION="INSTALL" ACTION="INSTALL" SOURCEDIR="C:\delta shared\msi\" TARGETDIR="C:\" ALLUSERSPROFILE="C:\ProgramData\" USERPROFILE="C:\Users\jbStandard\" DELTA="C:\Users\jbStandard\delta\" INSTALLDIR="C:\delta_jbStandard\" _ED42DF519A544932AACD5B6251384506="C:\delta_jbStandard\HELP\" _5E96BF994C454AFF904DE39CFA4D0C7E="C:\delta_jbStandard\HELP\Adobe Acrobat\" _3555E4C7DCD24DB8AEF8B97D6537B302="C:\delta_jbStandard\WINPDL\" CLIENTPROCESSID="1832" CLIENTUILEVEL="0" CURRENTDIRECTORY="C:\delta shared\msi" ARPSYSTEMCOMPONENT="1" USERNAME="test5" ALLUSERS="1" ADDLOCAL=Generator_Engine
MSI (s) (38:18) [09:17:36:859]: Command Line: ROOTDRIVE=C:\ SECONDSEQUENCE=1 EXECUTEACTION=INSTALL ACTION=INSTALL SOURCEDIR=C:\delta shared\msi\ TARGETDIR=C:\ ALLUSERSPROFILE=C:\ProgramData\ USERPROFILE=C:\Users\jbStandard\ DELTA=C:\Users\jbStandard\delta\ INSTALLDIR=C:\delta_jbStandard\ _ED42DF519A544932AACD5B6251384506=C:\delta_jbStandard\HELP\ _5E96BF994C454AFF904DE39CFA4D0C7E=C:\delta_jbStandard\HELP\Adobe Acrobat\ _3555E4C7DCD24DB8AEF8B97D6537B302=C:\delta_jbStandard\WINPDL\ CLIENTPROCESSID=1832 CLIENTUILEVEL=0 CURRENTDIRECTORY=C:\delta shared\msi ARPSYSTEMCOMPONENT=1 USERNAME=test5 ALLUSERS=1 ADDLOCAL=Generator_Engine ACTION=INSTALL
MSI (s) (38:18) [09:17:36:859]: PROPERTY CHANGE: Adding ALLUSERS property. Its value is '1'.
Property(S): ALLUSERS = 1
Property©: ALLUSERS = 1

2.
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" ARPSYSTEMCOMPONENT=1 ALLUSERS=2 MSIINSTALLPERUSER=1 /L*V "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine.log"

Im LOG-File (Generator_Engine.log):
MSI © (6C:48) [08:41:50:281]: Command Line: INSTALLDIR=C:\delta_jbStandard\ ARPSYSTEMCOMPONENT=1 ALLUSERS=2 MSIINSTALLPERUSER=1 CURRENTDIRECTORY=C:\delta shared\msi CLIENTUILEVEL=0 CLIENTPROCESSID=1644
Property©: ALLUSERS = 2
Property©: MSIINSTALLPERUSER = 1

Ist OK aber es wird ins
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid}
noch geschrieben, nicht ins HKCU wie ich möchte.

Dazu noch Property.idt (mit Orca)

Attached Files



ali

ali
  • Full Members
  • 1,008 posts

Posted 12 August 2009 - 10:12

also um nach HKLM zu schreiben muss der Installer ja irgenwann erweitere Rechte anfordern. bekommst du als "Standard User" ohne Admin Rechte, mit dem du ja installierst eine entsprechende Aufforderung ein PW einzugeben?
Wie ist die Einstellung unter "GeneralInformation" -> "Require Administrative Privileges". Steht der auf "no"?

Edited by ali, 12 August 2009 - 10:14.


bernard

bernard
  • Full Members
  • 127 posts

Posted 12 August 2009 - 10:57

Das Problem habe ich mit Vista und Windows 7

"General Information" -> "Summary Information Stream" -> "Require Administrative Privileges" = No!

Habe jetzt probiert:
1.
Dialogs -> All Dialogs -> ReadyToInstall -> English(Unated States) -> Install -> Show UAC Shield Icon
war früher True, jetzt ist auf False gesetzt.
2.
Keine entsprechende Aufforderung auf ein Password.

msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" USERNAME="jbStandard" ARPSYSTEMCOMPONENT=1 /L*V "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine.log"

Im LOG-File (Generator_Engine.log):
MSI © (68:78) [11:38:24:406]: Command Line: INSTALLDIR=C:\delta_jbStandard\ USERNAME=jbStandard ARPSYSTEMCOMPONENT=1 CURRENTDIRECTORY=C:\delta shared\msi CLIENTUILEVEL=0 CLIENTPROCESSID=3688
MSI (s) (5C:98) [11:38:37:921]: Command Line: ROOTDRIVE=C:\ SECONDSEQUENCE=1 EXECUTEACTION=INSTALL ACTION=INSTALL SOURCEDIR=C:\delta shared\msi\ TARGETDIR=C:\ ALLUSERSPROFILE=C:\ProgramData\ USERPROFILE=C:\Users\jbStandard\ DELTA=C:\Users\jbStandard\delta\ INSTALLDIR=C:\delta_jbStandard\ _A0B8DD9862F54347B0883BFC1D98B721=C:\delta_jbStandard\HELP\ _411D8424FA3F4347A8A557369B1478E2=C:\delta_jbStandard\HELP\Adobe Acrobat\ _821C49FCE80948249D54BD219A5FDFD9=C:\delta_jbStandard\WINPDL\ CLIENTPROCESSID=3688 CLIENTUILEVEL=0 CURRENTDIRECTORY=C:\delta shared\msi ARPSYSTEMCOMPONENT=1 USERNAME=jbStandard ADDLOCAL=Generator_Engine ACTION=INSTALL
kein ALLUSERS

Und schreibt es immer noch ins HKLM.


ali

ali
  • Full Members
  • 1,008 posts

Posted 12 August 2009 - 15:38

also kein Windows 7 speziefisches Problem. Der installierende User ist wirklich kein Admin und es kommt auch kein User/PW Abfrage? Der Teil aus dem log ist der Beginn der Execute Sequenz. was schreibt der Installer den am Ende des Log, wo die ganzen Properties aufgelistet werden. "AdminUser", "Privileged", "ALLUSERS".
Vermute mal, das du irgendeien Aktion ausführst, die dein Setup in den erweiterten Modus befördert. Wenn du den UAC abschaltest, hast du keine Probleme?
Wenn man bei Vista, Win7 ohne Berechtigung in ein Verzeichnis schreibt wo es keine Zugriffsrechte gibt, zb. "ProgrammFiles" HKLM usw. dann wird der Teil normalerweise virtualisert.
Werden weitere Einträge nach HKLM geschrieben?

bernard

bernard
  • Full Members
  • 127 posts

Posted 13 August 2009 - 07:54

Zuerst vielen Dank!

Mein Basic MSI Project:
es wird 7 Files in 2 Ordner nur ausgepackt.

1.
Administrator hat UAC abgeschaltet: Stufe 1:
"Never notify me when:..."
2.
jbStandard-User führt
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" USERNAME="jbStandard" ARPSYSTEMCOMPONENT=1 /L*V "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine_6.log"

aus.
3.
es wird nur
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid}]
geschrieben.

4. log-File ist 253KB groß.
Deswegen nur alle "Action start" und "Property©:"
im File angehängt.

Was mache ich falsch?

Attached Files



ali

ali
  • Full Members
  • 1,008 posts

Posted 13 August 2009 - 09:07

kann ich dir so auch nicht sagen. der StartMenuFolder und StartUpFolder sind jedenfalls auf CurrentUser gestzt, von daher kann es so falsch nicht sein. Evtl. handelt der Msi von Vista und Win7 das anders mit den Uninstall Einträgen. Wenn du mal eine neue Komponente erstellst, und dort einen Regeintrag unter USER_SELECTABLE erstellst, sollte der nach HKCU geschrieben werden.

und noch mal im Direct Editor unter SummeryInformation nachsehen, wie "Word Count" wirklich gesetzt ist.

Aus IS Doku
If the ALLUSERS property is set to 2, the Installer always resets the ALLUSERS property to null or 1 based on whether it determines to do a per-user or a per-machine installation.
Da du oben bereits beschrieben hast, das wenn ALLUSERS=2 eingegeben wird ein ALLUSERS=1 rauskommt, gehe ich mal davon aus, das der MSI für deine Installation erweiterte Rechte anfordert.

Edited by ali, 13 August 2009 - 09:50.


bernard

bernard
  • Full Members
  • 127 posts

Posted 13 August 2009 - 10:25

QUOTE
Wenn du mal eine neue Komponente erstellst, und dort einen Regeintrag unter USER_SELECTABLE erstellst,
sollte der nach HKCU geschrieben werden.


Stimmt. Wird ins HKEY_CURRENT_USER etwas geschrieben.

QUOTE
Direct Editor unter SummeryInformation nachsehen, wie "Word Count" wirklich gesetzt ist

Word Count = 8

Windows 7 Ultimate -> msiexec.exe hat Version V5.0.7100.0

Soll ich als Administrator
In der Verwaltung->Lokale Sicherheitsrichtlinie -> Lokale Richtlinien -> Sicherheitsoptionen ->
etwas ändern?

bernard

ali

ali
  • Full Members
  • 1,008 posts

Posted 13 August 2009 - 10:49

nö,

überprüf mal die Regeinträge:

HKCR\Installer\Products\

HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\Products

HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Products

unter welchem dieser Schlüssel findest du dein Produkt und unter welchem nicht?

bernard

bernard
  • Full Members
  • 127 posts

Posted 13 August 2009 - 11:43

QUOTE
HKCR\Installer\Products\

HKCR\Installer\ - existiert nicht

QUOTE
HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\Products

HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\ - existiert nicht

QUOTE
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Products

HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Products - existiert nicht

Da gibt es nur:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer]
"InstallerLocation"="C:\\Windows\\system32\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders]
"C:\\Windows\\Installer\\{3B410500-1802-488E-9EF1-4B11992E0440}\\"=""
"C:\\delta_jbStandard\\HELP\\"=""
"C:\\delta_jbStandard\\HELP\\Adobe Acrobat\\"=""
"C:\\delta_jbStandard\\WINPDL\\"=""

Was kann ich noch testen?

Danke ali zuerst!

ali

ali
  • Full Members
  • 1,008 posts

Posted 13 August 2009 - 12:37

ach ja, bei Win 7 ist ja wieder alles anders.

Mir fällt momentan nix mehr ein. Wenn ein normaler User installiert und der Software Eintrag bei Win7 unter HKLM geschrieben wird bzw. geschrieben werden kann, stört das? Also ist der Eintrag dann für andere User auch sichtbar oder hat da Win7 wieder eine Funktion die das anderweitig regelt, das es doch nur der Installierende User angezeigt bekommt. Hast du dich mal mit nem anderen Useraccount angemeldt und geschaut.

Psote doch evtl. auch noch mal ins Acresso Community!

bernard

bernard
  • Full Members
  • 127 posts

Posted 13 August 2009 - 13:37

QUOTE
ist der Eintrag dann für andere User auch sichtbar...

ARPSYSTEMCOMPONENT=1 macht es unsichtbar.

1.
Log in User: TEST5 als Administrator.
Kann er nicht deinstallieren. Kommt:
"This action is only valid for products that are currently installed."
2.
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx\" ARPSYSTEMCOMPONENT=1 /L*V "C:\Users\test5\AppData\Local\Temp\Generator_Engine.log"

Es wird HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid}\InstallLocation überschrieben.

3. danach kommen die Probleme bei Deinstallation.

noch mal vielen Dank an alle


ali

ali
  • Full Members
  • 1,008 posts

Posted 13 August 2009 - 13:43

evtl. kannst du ja mal die Evaluation Version von IS2010 installieren und dein Projekt auf die Version konvertieren. Hier die entsprechenden Einstellungen machen und damit mal testen ob sich was ändert.

bernard

bernard
  • Full Members
  • 127 posts

Posted 14 August 2009 - 11:06

Danke ali für neuen Tipp.

1. Jetzt habe ich
InstallShield 2010 - Professional Edition with Virtualization Pack
Version 16 (Evaluation will expire in 21 days)
Mein Basic MSI Projekt auf die neue Version konvertiert.

2.
jbStandard-User führt
msiexec /i "C:\xxxx\msi\Generator Engine.msi" INSTALLDIR="C:\xxxx_jbStandard\" USERNAME="jbStandard" ALLUSERS=2 MSIINSTALLPERUSER=1 ARPSYSTEMCOMPONENT=1 /L*V "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine_3.log"
aus.

3. es wird ins
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid}]
wieder geschrieben.

4. ALLUSERS = 2
Log-File ist 262KB groß.
Deswegen nur "Property:"
im File angehängt.

Habe große Probleme mit IS-Projekten.

Attached Files


Edited by bernard, 14 August 2009 - 11:06.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 August 2009 - 21:36

Erstmal sorry - habe die etwas längere Diskussion noch nicht im Detail gelesen.
Aber mal als Idee:

In der Systemsteuerung die Benutzerkontensteuerung auf die höchste Stufe einstellen. Dann sollte sie sich genauso verhalten wie unter Vista.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 August 2009 - 21:47

QUOTE
ARPSYSTEMCOMPONENT=1 macht es unsichtbar.

Nimm das doch bitte mal raus, damit wir nicht durch versteckte Einträge verwirrt werden.

Nachdem Standard User A installiert, ist das Produkt dann in der Systemsteuerung für Standard User B oder für einen Administrator sichtbar?

QUOTE
Log in User: TEST5 als Administrator.
Kann er nicht deinstallieren. Kommt:
"This action is only valid for products that are currently installed."

Wie hat der Admin die Deinstalaltion gestartet? Aus der Systemsteuerung oder über msiexec.exe /x {[ProductCode]} ?

Bitte verwende zum testen jeweils wieder ein frisches Image bzw. setze die Festplatte der virtuellen Maschine zurück, damit wir beim Testen keine Schmutz-Effekte bekommen.

bernard

bernard
  • Full Members
  • 127 posts

Posted 17 August 2009 - 11:04

Hallo Stefan,

1.
QUOTE
bzw. setze die Festplatte der virtuellen Maschine zurück, damit wir beim Testen keine Schmutz-Effekte bekommen.

Habe es gemacht.
2.
QUOTE
In der Systemsteuerung die Benutzerkontensteuerung auf die höchste Stufe einstellen.
Dann sollte sie sich genauso verhalten wie unter Vista.

Jetzt ist UAC - Always notify me when:
- Programs try to install software or make changs to my computer
- I make changes to windows settings.
3.
Unter IS2010 habe neues Basic MSI Projekt "Generator EngineJB" erstellt:
Propery -> ALLUSERS=1 - delete
-> ApplicationUsers=AllUsers gesetzt auf OnlyCurrentUser
4.
Windows 7
Standard User
cmd>
msiexec /i "C:\xxxx\msi\Generator EngineJB.msi" INSTALLDIR="C:\xxxx_jbStandard\" USERNAME="jbStandard" ALLUSERS=2 MSIINSTALLPERUSER=1 /L*V "C:\Users\JBSTAN~1\AppData\Local\Temp\Generator_Engine_5.log"

Es kommt die Dialogs:
- InstallWelcome
- ReadyToInstall (click auf "Nur für mich")

Leider schreibt immer noch ins
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid}]

5. test5-User als Administrator
Er sieht in Control Panel -> Programs -> Programs and Features keine neue Programme! Ist OK!
6.
QUOTE
Aus der Systemsteuerung oder über msiexec.exe /x {[ProductCode]} ?

Run.. MsiExec /I{guid}
Kann er nicht deinstallieren. Kommt:
"This action is only valid for products that are currently installed."

Dazu noch Information:
- 170809-log.txt (aus dem LOG-File)

Problem bleibt noch. Trozdem vielen Dank!

Attached Files



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 August 2009 - 16:46

QUOTE
Problem bleibt noch. Trozdem vielen Dank!

Welches Problem? Wenn die Software nicht für den Administrator installiert ist, kann er sie auch nicht deinstallieren. Das ist by design.