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-ID: 5871835797

Url: https://administrator.de/forum/batchdatei-per-excelvba-ausfuehren-5871835797.html

Ausgedruckt am: 23.12.2024 um 02:12 Uhr

Meierjo
Meierjo 06.02.2023 um 10:28:21 Uhr
Goto Top
Hallo

So
sollte das funktionieren

Gruss
5175293307
5175293307 06.02.2023 aktualisiert um 11:05:43 Uhr
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
Sisomyz
Sisomyz 06.02.2023 um 11:12:00 Uhr
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...
5175293307
5175293307 06.02.2023 aktualisiert um 11:22:29 Uhr
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.
Sisomyz
Sisomyz 06.02.2023 um 11:22:15 Uhr
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.
5175293307
5175293307 06.02.2023 aktualisiert um 11:24:02 Uhr
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.
Sisomyz
Sisomyz 06.02.2023 um 11:24:29 Uhr
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?
5175293307
5175293307 06.02.2023 aktualisiert um 11:30:18 Uhr
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
Sisomyz
Sisomyz 06.02.2023 um 11:30:59 Uhr
Goto Top
Schade, dann gibt es leider keine Lösung für mein Problem.
Vielen Dank für die Information und Hilfe face-smile
5175293307
5175293307 06.02.2023 aktualisiert um 11:33:01 Uhr
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.