132501
Goto Top

Frage an die Batch und PowerShell Pros

Hallo,
ich möchte per Softwareverteilung einen Uninstaller laufen lassen. Dieser deinstalliert ein Add-in in Outlook. Der Uninstaller funktioniert nur dann wenn Outlook zuvor beendet wird, da wohl während der Deinstallation die Aufforderung erscheint, dass man doch bitte Outlook beenden soll. Die Softwareverteilnung kann diesen Prombt leider nicht selbstständig überspringen, daher haben ich an den entsprechenden Task eine Batch Datei angehangen, welche zuvor ausgeführt wird.

Ganz simpel: TASKKILL /IM Outlook.exe /F

Der Task funktioniert bis hierhin auch einwandfrei. Ich starte den Uninstaller per Softwareverteilung (Ivanti), Outlook geht beim User zu und die Deinstallation des Add-ins startet.

Nun habe ich aber das Problem, dass der komplette Task auf einen Fehler läuft, wenn Outlook beim User gar nicht läuft. Die Batch läuft logischerweise auf einen Fehler, da der Prozess Outlook.exe nicht gefunden wird. Dadurch bleibt leider der ganze Task hängen.

Die Frage ist nun, gibt es per Batch oder PowerShell einen ensprechenden Befehl, der sagt:
Wenn Outlook.exe ausgeführt wird -> Beenden und mit Deinstallation fortfahren.
Wenn Outlook.exe nicht ausgeführt wird -> mit Deinstallation fortfahren.

Vielen Dank schonmal.

Content-Key: 384985

Url: https://administrator.de/contentid/384985

Printed on: April 19, 2024 at 01:04 o'clock

Member: em-pie
em-pie Aug 30, 2018 updated at 12:19:22 (UTC)
Goto Top
Moin,

ich würde dich lünchen, wenn ich bereits seit 1h an einer Mail schreibe, diese immer mal wieder korrigiere und plötzlich ungefragt sich mein Outlook schließt. Klar werden die angefangenen Mails zyklisch unter Entwürfe abgespeichert, aaaaber....

Kannst du das AddIn nicht im Rahmen des Herunterfahrens/ Startens des Clients deinstallieren lassen?
Dann besteht auch nicht die Gefahr, dass Outlook zu früh wieder gestartet wird.
Zudem ist Outlook sauber beendet und eure User holen nicht "Kloppe" raus und kommen die IT besuchen...

Nur mal als Anregung.

Ansonsten wäre es mal interessant zu wissen, wie dein Script aussieht.
Ggf. solltest du vor dem "Kill Outlook" erstmal prüfen, ob der Prozess für den User überhaupt läuft:

https://social.technet.microsoft.com/Forums/windows/en-US/e9edd868-4421- ...

Gruß
em-pie
Member: dodo30
dodo30 Aug 30, 2018 updated at 12:22:31 (UTC)
Goto Top
hey

bin da auch kein PRO :D aber das sollte helfen

taskkill /IM "Outlook.exe" /F /FI "STATUS eq RUNNING"  

https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...
Mitglied: 137084
Solution 137084 Aug 30, 2018 updated at 12:45:09 (UTC)
Goto Top
Powershell
kill -Name OUTLOOK -Force -EA SilentlyContinue
oder der Befehl als Batch
powershell -Executionpolicy ByPass -NoProfile -Command "kill -Name OUTLOOK -Force -EA SilentlyContinue"  
Gruß Werner
Mitglied: 132501
132501 Aug 30, 2018 updated at 12:40:58 (UTC)
Goto Top
Es würde natürlich zuvor ein entsprechendes Announcement geschaltet. face-smile
Aber schön finde ich das auch nicht. Sind immerhin 300+ User. Das fremdentwickelte Add-in macht mir schon Alpträume... Aber leider ist es fehlerhaft und muss erneuert werden. Ein Update geht leider nicht. Es hilft nur weg und neu.

Ich habe jetzt mal schnell durch die Settings der Softwareverteilung geklickt, dort konnte ich jetzt nichts von "Do it at shutdown" finden. Müsste ich mal bei Ivanti nachfragen. Wir haben allerdings auch einige User die Ihre Clients nur Abmelden. Dann müsste man auch den Shutdown forcieren.

Ob der Prozess läuft oder nicht ist grundsätzlich erstmal egal. Wenn er läuft, alles gut. Dann wird er ja durch Taskkill beendet. Wenn er nicht läuft, soll er direkt mit der Deinstallation starten. Daher die Frage ob man der Batch irgendwie mitgeben kann, dass eben nicht der Fehler kommt (siehe Bild) sondern sich die Batch einfach schließt oder sowas. Durch diesen Fehler bleibt nämlich der Task in der Softwareverteilung hängen, da die Batchdatei nicht abgearbeitet wird.
1
Mitglied: 137084
137084 Aug 30, 2018 updated at 12:43:38 (UTC)
Goto Top
Entweder wie oben schon dodo oder ich schon schreiben, oder auch
taskkill /IM "Outlook.exe" /F 2>nul  
Aber in einem Skript führt so eine Fehlermeldung normalerweise nicht zum Abbruch des ganzen Skriptes, außer du fragst selbst das Error-Level ab!
Mitglied: 132501
132501 Aug 30, 2018 at 12:58:08 (UTC)
Goto Top
Vorweg:
Mit PowerShell klappt es. Danke WernerRennen.

Zur Verteilung: Wir nutzen eine recht mächtiges Tool dafür. Da laufen im Hintergrund sicher Scripte ab, aber nicht von uns erstellte. Das einzige "Script" was ich angehangen hatte war die Taskkill Batch. Diese Batchdatei kann man dem Uninstaller (MSI Paket) anhängen sodass die Softwareverteilung erst die Batchdatei und dann das MSI Paket ausführt.

Die PowerShell meldet auch nicht das der Prozess nicht läuft, wenn Outlook beendet ist. Sodass der Task nun durchläuft. Nach Starten von Outlook ist das Add-in nun futsch. Besten Dank!

Ich kläre jetzt mal, ob man den Task auch beim Booten oder Shutdown laufen lassen kann!
Member: dodo30
dodo30 Aug 30, 2018 at 13:01:12 (UTC)
Goto Top
Zitat von @dodo30:

hey

bin da auch kein PRO :D aber das sollte helfen

taskkill /IM "Outlook.exe" /F /FI "STATUS eq RUNNING"  
> 

https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...

und das wurd erfolglos getestet?

komich komich :D
Mitglied: 137084
137084 Aug 30, 2018 updated at 13:09:01 (UTC)
Goto Top
Zitat von @132501:
Das einzige "Script" was ich angehangen hatte war die Taskkill Batch.
Wenn das wirklich so ist ist es ganz klar, weil dein Tool den Exit-Code auswertet, und der wird nun mal wenn du den Fehler von Taskkill nicht abfängst von deinem Tool ausgewertet und das stoppt dann weil es eben denkt das ein Fehler aufgetreten ist. Die Zeile von dodo verhindert das ebenfalls. Eigentlich eine ganz normale Logik face-smile. Du hättest auch exit /b 0 in deine Batch am Ende schreiben können, würde das selbe bewirken.
Gib einfach mal exit /? ein und lerne.
Mitglied: 132501
132501 Aug 30, 2018 at 13:52:44 (UTC)
Goto Top
Hatte zuerst mit PowerShell getestet. Der Softwareverteilung ist es egal ob .bat oder .ps1.
Ich lasse es jetzt erstmal so.

Danke für die Hilfe!
Member: nEmEsIs
nEmEsIs Aug 30, 2018 at 17:39:27 (UTC)
Goto Top
Hi

Um dir zukünftig Ärger mit Anwendern zu ersparen würde ich dir PSADT nahelegen.
Es ist Open Source.
Der User hat die Wahl Outlook zu schließen oder nicht und das z.b 3 mal. Danach wird er angezählt.

Schau es dir mal an es ist aus meiner Sicht sehr sehr hilfreich im Bereich Softwareverteilung egal ob SCCM WpKg oder was auch immer.

Es ist alles in einem Worddokument in der zip gut dokumentiert.

http://psappdeploytoolkit.com

Mit freundlichen Grüßen Nemesis