4 Replies Latest reply on Jun 11, 2018 1:23 AM by KaiNitzsche

    MarkPackageAsNotInstalled funktioniert nicht wie gewünscht

    KaiNitzsche Apprentice

      Mahlzeit.

       

      Ich habe ein Problem mit dem o.g. Befehl, im Script sieht das so aus. Da sind die Haken entsprechend gesetzt, sodass Benutzer- und Computerteil als "nicht installiert" protokolliert sind:

      MarkPackageAsNotInstalled('Win10Inplace',mpniMachinePart+mpniUserPart)/TW
      

       

      Das betreffende Paket hat den Tag und ist danach auf Reinstall gesetzt und wird auf dem Client erneut ausgeführt. Allerdings scheint er keine Benutzerteile auszuführen, jedenfalls kommt die MsgBox nicht hoch:

      11:10:55.109 2        -> RegReadValueEx('HKEY_CURRENT_USER\Control Panel\Colors','Background','Installed',reUseX64Hive)
      11:10:55.109 2         Read value '0 0 0' from registry
      11:10:55.109 1        Evaluating condition "not _Installed_='255 255 255'"
      11:10:55.109 2        Condition TRUE    -> entering IF part
      11:10:55.109 2        ->  RegModify('HKEY_CURRENT_USER\Control Panel\Colors','Background','255 255 255',reUseX64Hive+mrReplace)/TU
      11:10:55.109 1         Skipping user-cmd.
      11:10:55.109 2        ->  ExecuteEx('C:\Program Files (x86)\Common Files\enteo\RepositoryCache\75377\rev\4\Extern$\msgboxt.exe /t:"Software Deployment Hinweis." /m:"Die Änderung der Schriftfarbe der Desktopicons auf Schwarz wurde vorbereitet. Zur endgültigen Anwendung ist eine Abmeldung notwendig." /m:"" /m:"Bitte drück...
      11:10:55.109 1         Skipping user-cmd.
      11:10:55.109 1        Evaluating condition "_antwort_='6'"
      11:10:55.109 E         Warning (Module:Main, Severity:0x03): Can't resolve variable antwort
      11:10:55.109 2        Condition FALSE  -> skipping IF part
      11:10:55.109 2        Skipping command : LogOff
      

       

      Setzte ich das Paket anschließend händisch auf Reinstall, klappt alles wie gewünscht:

      11:18:20.832 2        -> RegReadValueEx('HKEY_CURRENT_USER\Control Panel\Colors','Background','Installed',reUseX64Hive)
      11:18:20.832 2         Read value '0 0 0' from registry
      11:18:20.832 1        Evaluating condition "not _Installed_='255 255 255'"
      11:18:20.832 2        Condition TRUE    -> entering IF part
      11:18:20.832 2        ->  RegModify('HKEY_CURRENT_USER\Control Panel\Colors','Background','255 255 255',reUseX64Hive+mrReplace)/TU
      11:18:20.832 2        ->  ExecuteEx('C:\Program Files (x86)\Common Files\enteo\RepositoryCache\75377\rev\4\Extern$\msgboxt.exe /t:"Software Deployment Hinweis." /m:"Die Änderung der Schriftfarbe der Desktopicons auf Schwarz wurde vorbereitet. Zur endgültigen Anwendung ist eine Abmeldung notwendig." /m:"" /m:"Bitte drück...
      11:18:20.832 2         Command line logging has been enabled.
      11:18:20.832 2         To disable it, enable the flag 'Do not log command line parameters' of the command
      11:18:20.832 2         Execute: '"C:\Program Files (x86)\Common Files\enteo\RepositoryCache\75377\rev\4\Extern$\msgboxt.exe" /t:"Software Deployment Hinweis." /m:"Die Änderung der Schriftfarbe der Desktopicons auf Schwarz wurde vorbereitet. Zur endgültigen Anwendung ist eine Abmeldung notwendig." /m:"" /m:"Bitte drücken Sie den JA-Button falls Sie jetzt umgehend abgemeldet werden wollen." /m:"Bitte drücken Sie den NEIN-Button falls Sie jetzt keine Zeit haben und dies später machen wollen." /m:"" /m:"Möchten Sie jetzt abgemeldet werden?" /m:"Ja = JETZT               Nein = Später" /m:"" /m:"Diese Meldung wird automatisch nach 5 Minuten entfernt." /i:I /B:YN /w:300 /c:+ /f:T'
      11:18:20.848 2         Waiting for process...
      11:18:24.251 1        Evaluating condition "_antwort_='6'"
      11:18:24.251 2        Condition TRUE    -> entering IF part
      11:18:24.251 2        ->   LogOff
      11:18:24.251 2         System restart requested
      11:18:24.251 2         Current request session termination flags: 'LOG_OFF'
      

       

      Jemand mit Ideen?

       

      /Edit: Wir sind auf 2017.1 Patch-Version 4359

       

       

      Danke Kai

        • 1. Re: MarkPackageAsNotInstalled funktioniert nicht wie gewünscht
          Mike92 Rookie

          Wir haben in der DSM Version 2017 genau den selben Fehler festgestellt.

          Ist wohl meiner Meinung nach ein Bug.

          Bei uns lies sich das Problem aber umgehen indem wir den Befehl ChangeSwAssignment benutzt haben.

          ChangeSwAssignment.jpg

          • 2. Re: MarkPackageAsNotInstalled funktioniert nicht wie gewünscht
            KaiNitzsche Apprentice

            Danke dir! Hat den Bug schon jemand gemeldet?

             

            /Edit: Ich habe eben mal einen Case aufgemacht.

             

             

            Viele Grüße Kai

            • 3. Re: MarkPackageAsNotInstalled funktioniert nicht wie gewünscht
              _Mel_ Master

              nö, das ist kein bug, sondern folgt logisch aus den unterschiedlichen anwendungsfällen der beiden befehle

               

              der MarkPackageAsNotInstalled befehl ist dafür gedacht DSM mitzuteilen, daß man gerade etwas gemacht hat, was ein anderes paket vom rechner entfernt hat.

              dabei kann man aber nur das entfernt haben, was im aktuellen kontext auch zugreifbar ist.

              sprich: wenn ein paket im serviceinstaller ausgeführt wird und ein programm von der platte löscht, das von einem anderen paket installiert wird, dann kann es DSM über MarkPackageAsNotInstalled mitteilen, daß dieses andere paket nicht mehr auf dem rechner ist - aber das kann logischerweise nur für den maschinenteil gelten, denn die benutzerteile liegen ja in den verschiedenen benutzerprofilen an die der serviceinstaller gar nicht herankommt.

              wird das paket dagegen im autoinstaller ausgeführt, dann kann damit auf der benutzerteil des aktuellen benutzers als nicht mehr installiert gemeldet werden.

               

              dementsprechend sollten die befehle, die den maschinenteil des anderen paketes löschen als maschinenbezogen und die, die den benutzerteil löschen als benutzerbezogen geflaggt werden.

              der MarkPackageAsNotInstalled befehl macht einfach das was zum aktuellen ausführungsmodus paßt - was übrigens bedeutet: wenn das paket gerade nur den benutzerteil ausführt, dann wird auch der maschinenteil des anderen paketes nicht als deinstalliert markiert.

               

              die folge des befehls ist dann ggf, daß das paket installiert wird (beachte: installiert, nicht reinstalliert)

               

              der ChangeSwAssignment befehl löst dagegen eine reinstallation aus wie wenn amn in der dsmc eine reinstallation anfordern würde und eine reinstallation des maschinenteils hat zur folge, daß alle benutzerteile die älter sind ebenfalls reinstalliert werden.

               

              also der eine befehl meldet einen zustand und der andere gibt eine anweisung - und man sollte den befehl benutzen der paßt.

              2 of 2 people found this helpful
              • 4. Re: MarkPackageAsNotInstalled funktioniert nicht wie gewünscht
                KaiNitzsche Apprentice

                Danke dir Mel für die ausführliche Erklärung! Dann ist es in der Tat ein Verständnisproblem meinerseits gewesen, ich hatte mich schon gewundert weshalb zwei Befehle ähnliches tun.

                 

                 

                Viele Grüße

                Kai