9 Replies Latest reply on Mar 15, 2012 10:02 AM by NicoS1

    Runonce User

    BaSe Apprentice
      Hallo,

      wir haben bei uns in der Firma eine Software "SolidWorks eDrawing 2011", das ist ein Viewer.

      Leider möchte das Programm sich nach dem ersten Start registrieren und eine Grafikleistungsprüfung durchführen, die dafür nötigen Schalter sind in HK_User des angemeldeten Benutzters abgelegt, abbrechen kann man das leider nicht.

      Ich suche nach einer Lösung damit beim erstellen eines Benutzerprofiles(erste Anmeldung) ein Regeintrag erfolgt damit man die beiden Dinge ausschalten kann.

      Ich habe Testweise eine Batchdatei erstellt die ein regedit /s bla durchführt, das ganze habe ich dann unter HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\RunOnce abgelegt.

      Meldet sich der Benutzer nun das erste mal an wird die Batchdatei leider nicht ausgeführt, keine Ahnung warum.

      Welche Möglichkeiten habe ich denn damit die Regdatei bei der ersten Anmeldung eines Benutzers ausgeführt wird, kann man das elegant mit DSM lösen?
        • 1. Re: Runonce User
          ChristophSteckelberg Expert
          HKEY_USER/.Default ist ein Template welches nach HKEY_CURRENT_USER kopiert wird, wenn ein komplett neues Userprofil auf dem Rechner erstellt wird. Der Key müsste dort auch nach CurrentVersion\RunOnce gelegt werden.

          Du kannst den RunOnce Key aber auch direkt nach HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run Once ablegen, dann wird das Executable auch bei der ersten Neuanmeldung an ein bestehendes Userkonto ausgeführt.
          • 2. Re: Runonce User
            Markus.Zierer Expert

            Ich suche nach einer Lösung damit beim erstellen eines Benutzerprofiles(erste Anmeldung) ein Regeintrag erfolgt damit man die beiden Dinge ausschalten kann.



            Dafür nimmst Du am besten den RegLoad Befehl. Du importierst die entsprechenden RegKeys ins NIR File und anschliessend werden bei jeder Paketinstallation die RegKeys entsprechend geschrieben. Du darfst dann natürlich nicht die Installation der Benutzerteile für dieses Paket deaktivieren...

            Nach dem erstmaligen LogOn des Benutzers wird ja, hoffentlich, der AutoInstaller gestartet. Dieser würde dann die entsprechenen RegKeys  in die User Registry schreiben und damit wäre dein Problem dann gelöst. Und wenn das Paket nachträglich installiert wird, ist es sowieso kein Problem, da da der Benutzer ja bereits angemeldet ist (im Regelfall jedenfalls) und dann die RegKeys auch gleich korrekt geschrieben werden.
            • 3. Re: Runonce User
              derniwi Master
              Hallo,

              warum über RunOnce? Du kannst do die Teile, die in HKCU liegen, direkt in HKU\.DEFAULT importieren. Das sollte dir bei Neuinstallationen von Rechnern helfen. Falls ein Benutzer schon mal angemeldet war, wird das nicht helfen.

              Du kannst natürlich auch die Werte vor der Verteilung der Software in den HKCU-Zweig laden.

              Gruß
              Nils
              • 4. Re: Runonce User
                Markus.Zierer Expert
                Was habt Ihr nur immer alle mit eurem .Default Hive ?

                Nehmt den RegLoad und ladet damit die entsprechenden Registry Hives/Keys entweder direkt VOR der SW Installation oder DANACH in die Registry des aktuell angemeldeten Benutzers und Gut is. Genau dafür ist die Funktion doch da...
                • 5. Re: Runonce User
                  NicoS1 Master
                  Erm... Leute... das mit dem RegHive ".DEFAULT" ist ein absoluter Trugschluss.

                  Der gilt NICHT für neue Userprofile aka "Default User Profile", sondern wird unter anderem vom SYSTEM Account benutzt.

                  Will man im Default User Profil was ändern, so muß man sich das erstmal mappen. Das liegt nämlich unter:
                  C:\Dokumente und Einstellungen\DEFAULT\NTUSER.DAT
                  bzw.
                  C:\Users\Default\NTUSER.DAT

                  Man mappt ihn mit:
                  REG LOAD HKU\Def C:\Users\Default
                  tuser.dat
                  dann kann man es verändern (liegt mit dem Befehl dann unter HKEY_USERS\Def)... und wieder unmounten.

                  Aber... davon mal komplett abgesehen, wird das ganze sowieso nur bei der ALLERERSTEN Anmeldung eines Benutzers ausgeführt, nicht bei jeder weiteren.

                  Die richtige und korrekte Lösung ist die von Markus, nämlich einfach eine Registry Erweiterung in DSM zu paktieren für HKey current user... DSM erkennt das automatisch als Benutzeteil und führt es für jeden User der sich anmeldet einmalig aus. Vorraussetzung dafür ist natürlich, dass der AutoInstaller läuft, da der SerivceInstaller keine Benutzerbezogenen Teile ausführen kann.

                  Ansonsten sehe ich persönlich nur noch eine Lösung über GPO und / oder LogonScript... aber da wirds halt jedes Mal dann ausgeführt. RunOnce lässt sich per GPO soweit ich weiß nicht realisieren.
                  • 6. Re: Runonce User
                    BaSe Apprentice
                    [QUOTE=Markus.Zierer;36715]Dafür nimmst Du am besten den RegLoad Befehl. Du importierst die entsprechenden RegKeys ins NIR File und anschliessend werden bei jeder Paketinstallation die RegKeys entsprechend geschrieben. Du darfst dann natürlich nicht die Installation der Benutzerteile für dieses Paket deaktivieren...
                    .

                    Danke, damit hat es super geklappt.
                    • 7. Re: Runonce User
                      BaSe Apprentice
                      Ich habe nochmal eine Frage.

                      Kann man innerhalb eines eScripts den Computer und Benutzeranteil packen?

                      Ich habe ein eScript(ab oder angemeldet ist angegeben) das im Normalfall im abgemeldeten Zustand das MSI des Viewers installiert. Anschließend hab ich ein Benutzerantei das per Regload unter HKCU Registryeinträge erstellt.

                      Ich habe mir das so vorgestellt das die Installation Nachts läuft, der Benutzer sich tagsüber anmeldet und dann den Benutzeranteil des Paketes installiert wird.

                      Aber scheinbar führt er den Benutzeranteil nach der Anmeldung eines Benutzers nicht aus.
                      • 8. Re: Runonce User
                        CalumField1 Expert
                        Ein Scripts kann Computer und User Teile enthalten - kein Problem.

                        Der Idee von dir soll funktionieren.

                        Hast du das Script markiert Nur ausführen wenn kein Benutzer eingeloggt ist oder überprüfe der Script Eigenschaft - Installation of user-related portions.


                        Es gibt Gründe Computer & User Teile zu trennen ohnehin gibt es ein InstalledApps für Computer und User im Registry, und alle Skripte die ein Machine zugewiesen sind, werden für jeden User ausgeführt außer wenn zB. Policybeschränkungen und solches bestehen.
                        • 9. Re: Runonce User
                          NicoS1 Master
                          Hallo Base,

                          kurz zum besseren Verständnis vielleicht erklärt:

                          Serviceinstaller = Kann laufen wenn kein Benutzer angemeldet ist, kann aber keine Benutzerteile ausführen.

                          AutoInstaller = Läuft nur wenn Benutzer angemeldet ist (und niagnt32.exe gestartet ist, oder manuell gestartet wird), kann aber Benutzerteile installieren.

                          In den "Ausführungseigenschaften" deines Scriptes hast du die Einstellung wann ein Paket laufen darf:
                          Nur wenn ein Benuter angemeldet ist = Paket darf nur mit Autoinstaller (oder Software Shop) installiert werden.
                          Nur wenn kein Benutzer angemeldet ist = Paket darf nur mit dem ServiceInstaller und wenn kein Benutzer angemeldet ist installiert werden.
                          Egal ob Benutzer angemeldet ist oder nicht = Paket kann unter allen Umständen laufen. Falls der Serviceinstaller das Paket "zuerst erwischt" wird der Autoinstaller dann nur noch den Benutzerteil ausführen.

                          Dafür muß aber das Paket auf "Egal ob ein Benutzer angemeldet ist" stehen, wie Calum das schon schreibt.