1 2 Previous Next 20 Replies Latest reply on Jul 27, 2017 11:49 PM by HorlemannIT

    Deinstallieren von MS Patchen

    Rookie

      Hallo zusammen,

       

      gibt es eine Möglichkeit via PatchLink Patches zu deinstallieren? Der Hintergrund dürfte bekannt sein, MS schafft es immer wieder mithilfe von Security Updates Bugs zu implementieren. :/

       

      Leider ist es so, dass bei uns die DSM Expertise seit kurzer Zeit aus dem Haus ist, das ist der Grund warum ich hier bei euch mal mein Glück versuche.

       

      Viele Grüße

        • 1. Re: Deinstallieren von MS Patchen
          SupportEmployee

          Theoretisch ist es möglich Patch-Deinstallationen genau wie Pakete über die "Support uninstall" Option zu steuern. Praktisch ist dass aber nicht so einfach, denn es müsste im Paket auch eine Uninstall-Information hinterlegt sei, welche den Originalzustand des Systems vor der Patchinstallation wiederherstellt. Diese Information haben aktuell weder die Microsoft- noch die 3rd-Party Patche hinterlegt.

          Deswegen ist es eine gute Lösung einen zweistufigen Patch-Rollout zu planen, Test-Clients per Automatischer Zuweisung und produktive/kritische Clients erst nach Aktivierung der Policy.

          • 2. Re: Deinstallieren von MS Patchen
            SitzRieSe Expert

            Mh... wobei man doch auch per Windows Bordmitteln relativ einfach Updates entfernen kann. Wir haben das zum Beispiel über DSM für den KB3203467 so gelöst:

             

            WMISimpleQuery('\\.\root\cimv2','Win32_QuickFixEngineering','HotFixID=KB3203467','WMI_')

            HotFixID

            EndProc/TS

            If %WMI_HotFixID%='KB3203467'

            ExecuteEx('wusa.exe /uninstall /kb:3203467 /quiet /norestart','exitcode','')/?/TS

            If not %exitcode%='0'

              If not %exitcode%='3010'

               If not %exitcode%='2359302'

                ExitProcEx(Failed,'The Uninstallation of KB3203467 failed with %exitcode%')

            Else

            ExitProcEx(Done,'Nothing to do! KB3203467 was not found!')

             

            Lässt sich sowas nicht realisieren? In dem aktuellen R2 Release gibt es ja Unterstützung zur Deinstallation von Updates. Nur leider scheint bisher kein MS Update dabei zu sein.

             

            Das Problem ist nämlich, das trotz mehrere Rollout Gruppen es immer wieder vorkommt, das Fehler die durch Patche verursacht werden erst spät auffallen. Teilweise sind dann die Updates schon auf Produktiv Maschinen verteilt worden oder selbst wenn nicht, müssen die Updates ja auch von den Testclients wieder runter, da in der Regel schon auch auf Clients getestet werden muss die Produktiv eingesetzt werden, weil viele Fehler im Detail stecken und sonst garnicht festgestellt werden.

             

            Gruß

             

            Alex

            1 of 1 people found this helpful
            • 3. Re: Deinstallieren von MS Patchen
              Rookie

              Witziger Zufall, genau das gleiche Update bereitet uns gerade Kopfschmerzen. Leider wurden die Konsequenzen tatsächlich erst zu spät erkannt, bzw. fielen erst im Laufe der Zeit auf.

               

              Was genau hat es hiermit auf sich:

              HotFixID

              EndProc/TS

               

              Den Rest durchschaue ich zwar, mit den 2 kann ich leider nichts anfangen.

              • 4. Re: Deinstallieren von MS Patchen
                SitzRieSe Expert

                HotFixID ist ein Wert den du über WMI abfragen kannst. Das WMISimpleQuery sucht am System genau nach dem KB3203467.

                 

                Das EndProc/TS gehört zum WMISimpleQuery Befehl und markiert das Ende des Befehls:

                 

                 

                Sieht dann so aus:

                 

                1 of 1 people found this helpful
                • 5. Re: Deinstallieren von MS Patchen
                  Rookie

                  Erstmal vielen Dank, das hilft mir auf jeden Fall schon mal weiter. Um zu testen habe ich das Paket mal nach deinen Vorgaben erstellt, leider bekomme ich aber folgenden Logeintrag zurück, installiert habe ich via Pilotinstallation:

                   

                  14:30:57.020 2        ---->Starting installation of "Remove KB3203467"

                   

                   

                  14:30:57.021 2        -> WMISimpleQuery('\\.\root\cimv2','Win32_QuickFixEngineering','HotFixID=KB3203467','WMI_') ... /TS

                  14:30:57.023 1         xniTools: namespace \\.\root\cimv2 connected successfully

                  14:31:41.451 1         xniTools: 515 instances were found.

                  14:31:41.451 E         Warning (Module:xniTools, Severity:0x03): no matching Object was found

                  14:31:41.452 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

                  14:31:41.452 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

                   

                   

                  14:31:41.452 1        Evaluating condition "%WMI_HotFixID%='KB3203467'"

                  14:31:41.453 E         Warning (Module:Main, Severity:0x03): Can't resolve variable WMI_HotFixID

                  14:31:41.453 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

                  14:31:41.453 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

                  14:31:41.453 2        Condition FALSE  -> skipping IF part

                   

                   

                  14:31:41.454 2        -> ExecuteEx('wusa.exe /uninstall /kb:3203467 /quiet /norestart','exitcode','')/?/TS

                  14:31:41.454 2         Command line logging has been enabled.

                  14:31:41.455 2         To disable it, enable the flag 'Do not log command line parameters' of the command

                  14:31:41.455 2         Execute: 'wusa.exe /uninstall /kb:3203467 /quiet /norestart'

                  14:31:41.482 2         Waiting for process...

                   

                   

                  14:31:41.533 1        Evaluating condition "not %exitcode%='0'"

                  14:31:41.534 2        Condition TRUE    -> entering IF part

                  14:31:41.534 2        Skipping command : If

                  14:31:41.534 2        Skipping command : If

                  14:31:41.534 2        Skipping command : ExitProcEx

                  14:31:41.535 2        else - Skipping ELSE part

                   

                   

                  14:31:41.535 2        -> ExitProcEx(Done,'Nothing to do! KB3203467 was not found!')

                  14:31:41.536 2        xniFPS: '{97D53726-F1C0-4C09-8D9E-EC74AC98144D}' is installed

                   

                   

                  14:31:41.536 2        ---->Installation of Remove KB3203467 complete.

                  • 6. Re: Deinstallieren von MS Patchen
                    SitzRieSe Expert

                    Und der Patch ist auf dem Testsystem installiert? Welches Windows ist das?

                     

                    kannst du mal Screenshot von dem eScript machen? ich glaube da passt die EInrückung auch noch nicht..

                     

                    Gruß

                     

                    Alex

                    • 7. Re: Deinstallieren von MS Patchen
                      Rookie

                      Windows 7 Enterprise 64bit

                       

                      Die Einrückung war tatsächlich nicht okay, habs korrigiert und danach noch mal nen Test gemacht.

                      Unbenannt.PNG

                       

                      So sieht das log aus:

                       

                       

                       

                      09:32:07.663 2        ---->Starting installation of "Remove KB3203467"

                       

                       

                      09:32:07.665 2        -> WMISimpleQuery('\\.\root\cimv2','Win32_QuickFixEngineering','HotFixID=KB3203467','WMI_') ... /TS

                      09:32:07.666 1         xniTools: namespace \\.\root\cimv2 connected successfully

                      09:32:41.953 1         xniTools: 202 instances were found.

                      09:32:41.954 E         Warning (Module:xniTools, Severity:0x03): no matching Object was found

                      09:32:41.954 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

                      09:32:41.955 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

                       

                       

                      09:32:41.955 1        Evaluating condition "%WMI_HotFixID%='KB3203467'"

                      09:32:41.956 E         Warning (Module:Main, Severity:0x03): Can't resolve variable WMI_HotFixID

                      09:32:41.956 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

                      09:32:41.956 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

                      09:32:41.957 2        Condition FALSE  -> skipping IF part

                       

                       

                      09:32:41.957 2        -> ExecuteEx('wusa.exe /uninstall /kb:3203467 /quiet /norestart','exitcode','')/?/TS

                      09:32:41.958 2         Command line logging has been enabled.

                      09:32:41.958 2         To disable it, enable the flag 'Do not log command line parameters' of the command

                      09:32:41.958 2         Execute: 'wusa.exe /uninstall /kb:3203467 /quiet /norestart'

                      09:32:41.993 2         Waiting for process...

                       

                       

                      09:32:42.052 1        Evaluating condition "not %exitcode%='0'"

                      09:32:42.053 2        Condition TRUE    -> entering IF part

                      09:32:42.053 2        Skipping command : If

                      09:32:42.053 2        Skipping command : If

                      09:32:42.054 2        Skipping command : ExitProcEx

                      09:32:42.054 2        else - Skipping ELSE part

                       

                       

                      09:32:42.054 2        -> ExitProcEx(Done,'Nothing to do! KB3203467 was not found!')

                      09:32:42.055 2        xniFPS: '{97D53726-F1C0-4C09-8D9E-EC74AC98144D}' is installed

                       

                       

                      09:32:42.056 2        ---->Installation of Remove KB3203467 complete.

                      • 8. Re: Deinstallieren von MS Patchen
                        SitzRieSe Expert

                        Hä? Also irgendwas stimmt da nicht...

                         

                        Bist du sicher das das Paket auch schon sauber distribuiert ist? Wenn die IF Abfrage auf FALSE geht, dann darf der den ExecuteEx nicht mehr ausführen... Der Plan ist ja, er schaut nach dem KB im Sys, wenns gefunden wird, wird es entfernt, wenn er es nicht findet, beendet er das Paket mit Nothing to do.

                         

                        Aber bei dir geht die IF Abfrage auf False und anschließend führt er das Execute aus. Das Handling der anderen IF Abfrage nach dem ExecuteEx ist ebenfalls falsch.

                         

                        Vielleicht erstellste nochmal ein neues eScript und achte auf die Einrückung... Danach distriburieren und nochmal testen.

                         

                        Gruß


                        alex

                        • 9. Re: Deinstallieren von MS Patchen
                          Rookie

                          Werde es jetzt noch mal versuchen, mit einem neuen Paket. Halte euch auf dem Laufenden.

                          • 10. Re: Deinstallieren von MS Patchen
                            Rookie

                            Neues Paket, gleiches Problem:

                            Bin ein bißchen ratlos gerade. Wenn er die Variable nicht auflösen kann, gibt er ja auch nicht den Wert wider, der erwartet wird und somit macht die weitere Fortführung des Scriptes doch sinn oder? Findet KB3203467 nicht (weil die Variable nicht aufgelöst werden kann) -> FALSE, IF Part wird übersprungen -> am Ende wird in den Else Part geschwenkt und die Meldung rausgegeben, dass das Update nicht installiert ist.

                             

                            Aber warum kann die Variable nicht aufgelöst werden?

                             

                            Unbenannt.PNG

                             

                            14:25:42.671 2        ---->Starting installation of "Uninstall KB3203467"

                             

                             

                            14:25:42.672 2        -> WMISimpleQuery('\\.\root\cimv2','Win32_QuickFixEngineering','HotFixID=KB3203467','WMI_') ... /TS

                            14:25:42.674 1         xniTools: namespace \\.\root\cimv2 connected successfully

                            14:26:16.355 1         xniTools: 202 instances were found.

                            14:26:16.356 E         Warning (Module:xniTools, Severity:0x03): no matching Object was found

                            14:26:16.356 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

                            14:26:16.357 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

                             

                             

                            14:26:16.357 1        Evaluating condition "%WMI_HotFixID%='KB3203467'"

                            14:26:16.358 E         Warning (Module:Main, Severity:0x03): Can't resolve variable WMI_HotFixID

                            14:26:16.358 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

                            14:26:16.358 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

                            14:26:16.359 2        Condition FALSE  -> skipping IF part

                            14:26:16.359 2        Skipping command : ExecuteEx

                            14:26:16.359 2        Skipping command : If

                            14:26:16.360 2        Skipping command : If

                            14:26:16.360 2        Skipping command : If

                            14:26:16.360 2        Skipping command : ExitProcEx

                            14:26:16.361 2        else - Entering ELSE part

                             

                             

                            14:26:16.361 2        ->  ExitProcEx(Done,'Nothing to do! KB3203467 was not found!')

                            14:26:16.362 2        xniFPS: '{1AC31E44-5CF0-4580-A9EE-1618A92A33D4}' is installed

                             

                             

                            14:26:16.362 2        ---->Installation of Uninstall KB3203467 complete.

                            • 11. Re: Deinstallieren von MS Patchen
                              _Mel_ Master

                              ist das loglevel auf 1 ? der komplette mangel an loglevel 0 einträgen deutet etwas darauf hin.

                               

                              aber die variable kann nicht aufgelöst werden, weil sie nicht gesetzt wird.

                              und sie wird nicht gesetzt, weil die WMI abfrage das objekt nicht findet.

                              • 12. Re: Deinstallieren von MS Patchen
                                Rookie

                                Okay, also du hast recht. Ich bin da gerade mal mit nem WMI Viewer rangegangen und siehe da:

                                 

                                wmi.PNG

                                Kein KB3203467 vorhanden.

                                 

                                 

                                Suche ich aber via Control Panel, bekomme ich folgendes angezeigt:

                                 

                                update.PNG

                                 

                                Also, dass das Script fehl schlägt finde ich nun nicht mehr so unverständlich. Den Rest schon...

                                • 13. Re: Deinstallieren von MS Patchen
                                  SitzRieSe Expert

                                  Okay... das ist interessant... Also so arbeitet das Skript auf jeden Fall jetzt sauber. Vorher führte er ja trotz dem FALSE den Execute befehl aus.

                                   

                                  Scheint so als ob der Zustand der Maschine nicht ganz ok ist. Probier mal über die CMD "wusa.exe /uninstall /kb:3203467". Dann müsste er es manuell per GUI entfernen wollen. Klappt das? Oder bekommst du da schon Fehler...

                                   

                                  Evtl. das Paket nochmal auf einer anderen Maschine ausführen.

                                   

                                  Gruß

                                   

                                  Alex

                                  • 14. Re: Deinstallieren von MS Patchen
                                    Rookie

                                    Guten Tag,

                                     

                                    sehr Interessante Antworten und Lösungsansätze, vielen dank schonmal dafür.

                                     

                                    Leider haben wir bei uns das selbe Problem, das der ExecuteEx Befehl zwar "durchläuft", jedoch dann bei den "Installierten Updates" das Update nicht deinstalliert ist, haben mehrere Clients getestet, leider keiner funktioniert.

                                     

                                    Scheint so als ob der Zustand der Maschine nicht ganz ok ist. Probier mal über die CMD "wusa.exe /uninstall /kb:3203467". Dann müsste er es manuell per GUI entfernen wollen. Klappt das? Oder bekommst du da schon Fehler...

                                     

                                    Evtl. das Paket nochmal auf einer anderen Maschine ausführen.

                                     

                                    über die CMD können wir den Befehl ausführen und die Deinstallation funktioniert einwandfrei.

                                     

                                    Gruß Kay

                                    1 2 Previous Next