
132501
30.08.2018, aktualisiert um 14:14:03 Uhr
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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 384985
Url: https://administrator.de/forum/frage-an-die-batch-und-powershell-pros-384985.html
Ausgedruckt am: 23.04.2025 um 07:04 Uhr
10 Kommentare
Neuester Kommentar
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
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
hey
bin da auch kein PRO :D aber das sollte helfen
https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...
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 ...

Powershell
oder der Befehl als Batch
Gruß Werner
kill -Name OUTLOOK -Force -EA SilentlyContinue
powershell -Executionpolicy ByPass -NoProfile -Command "kill -Name OUTLOOK -Force -EA SilentlyContinue"

Entweder wie oben schon dodo oder ich schon schreiben, oder auch
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!
taskkill /IM "Outlook.exe" /F 2>nul
Zitat von @dodo30:
hey
bin da auch kein PRO :D aber das sollte helfen
https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...
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

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 Das einzige "Script" was ich angehangen hatte war die Taskkill Batch.
Gib einfach mal exit /? ein und lerne.
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
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