sisomyz
Goto Top

BatchDatei per ExcelVBA ausführen

Hallo in die Runde,
ich benötige eine einfache Lösung eine Batchdatei per Makro in Excel auszuführen.
Die Batchdatei läuft für sich genommen durch, nur per Makro funktioniert das nicht. Leider habe ich bisher keine Lösung gefunden, daher frage ich mal hier... was mache ich falsch?
Excel schließt sich nach dem Ausführen von selbst, daher muss was grob falsch sein.

Sub Datenabruf()
Call Shell("M:\Tools\Abfrage\Stationen_Download_DWD.bat")  
End Sub

Danke schon mal.

Content-Key: 5871835797

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

Printed on: April 25, 2024 at 11:04 o'clock

Member: Meierjo
Meierjo Feb 06, 2023 at 09:28:21 (UTC)
Goto Top
Hallo

So
sollte das funktionieren

Gruss
Mitglied: 5175293307
5175293307 Feb 06, 2023 updated at 10:05:43 (UTC)
Goto Top
was mache ich falsch?
So
Shell "cmd /c ""M:\Tools\Abfrage\Stationen_Download_DWD.bat"""  
Damit geht es ebenfalls
CreateObject("Wscript.Shell").Run "cmd /c ""M:\Tools\Abfrage\Stationen_Download_DWD.bat""",1,True  
Gruß Wurstel
Member: Sisomyz
Sisomyz Feb 06, 2023 at 10:12:00 (UTC)
Goto Top
Vielen Dank für eure Antworten.
Leider funktioniert das alles nicht, Excel wird in allen o.g. Varianten beim Ausführen sofort geschlossen.
Könnte es sein, dass es daran liegt, dass ich Powershell in der Batch verwende?

bin etwas ratlos...
Mitglied: 5175293307
5175293307 Feb 06, 2023 updated at 10:22:29 (UTC)
Goto Top
Zitat von @Sisomyz:
Leider funktioniert das alles nicht, Excel wird in allen o.g. Varianten beim Ausführen sofort geschlossen.
Funktioniert hier im Test beides einwandfrei! Dann muss es an deiner Batch liegen ...
Könnte es sein, dass es daran liegt, dass ich Powershell in der Batch verwende?
Jepp, hast du denn die Powershell Execution-Policy überhaupt angepasst? Wenn nicht dann musst du Bypass verwenden oder die Policy anpassen!
In der Batch also bspw. mittels Bypass Policy so
powershell -EP Bypass -C "Get-Process"  
Andererseits könnte das Ausführen auch per GPO bei euch gesperrt sein. Dann hast du Pech und musst dich an deinen Administrator wenden.
Member: Sisomyz
Sisomyz Feb 06, 2023 at 10:22:15 (UTC)
Goto Top
kleiner Nachtrag
das hier...
Sub KommandozeileStarten()
Dim Kommandozeile As Integer
Kommando = Shell("cmd.EXE", 1)  
End Sub
...führt ebenfalls kurz zum Öffnen der Konsole und danach wird sowohl die Konsole als auch Excel sofort beendet.
Mitglied: 5175293307
5175293307 Feb 06, 2023 updated at 10:24:02 (UTC)
Goto Top
Zitat von @Sisomyz:
...führt ebenfalls kurz zum Öffnen der Konsole und danach wird sowohl die Konsole als auch Excel sofort beendet.

Dann wurde bei euch das Ausführen von externen Befehlen wohl per Policy oder der installierten Security-Suite aus Sicherheitsgründen gesperrt.
Member: Sisomyz
Sisomyz Feb 06, 2023 at 10:24:29 (UTC)
Goto Top
Zitat von @5175293307:

Jepp, hast du denn die Powershell Execution-Policy überhaupt angepasst? Wenn nicht dann musst du Bypass verwenden oder die Policy anpassen!


Aber dann würde doch die Batchdatei für sich nicht laufen... die funktioniert aber einwandfrei. Oder steh ich auf dem Schlauch?
Mitglied: 5175293307
5175293307 Feb 06, 2023 updated at 10:30:18 (UTC)
Goto Top
Wie gesagt wohl eine Policy einer deiner verwendeten Security-Suites, Windows Defender blockt das bei dir vermutlich
Windows Defender Exploit Guard ASR Rules for Office
Member: Sisomyz
Sisomyz Feb 06, 2023 at 10:30:59 (UTC)
Goto Top
Schade, dann gibt es leider keine Lösung für mein Problem.
Vielen Dank für die Information und Hilfe face-smile
Mitglied: 5175293307
5175293307 Feb 06, 2023 updated at 10:33:01 (UTC)
Goto Top
Zitat von @Sisomyz:

Schade, dann gibt es leider keine Lösung für mein Problem.
Doch, die Regeln lassen sich ja ausnehmen wenn man will/kann/darf, das man sich damit aber ein potentielles Sicherheitsloch aufreißt sollte aber klar sein.