VBS soll CMD mit Adminrecht starten
Hallo Leute, ich möchte per VBS ein CMD mit Adminrechten starten und so den Inhalt von %temp% löschen. Mein Script macht dies auch, allerdings werden die Ordner in %temp% nicht gelöscht und das CMD-Fenster soll sich nach dem löschen wieder schließen - normalerweise würde ich hier ein , True setzen, damit an dieser Stelle die nächsten Zeilen meines VBS abgearbeitet werden, dann werden die Dateien allerdings nicht mehr gelöscht. Wo ist mein Fehler?
Hier mal mein Code:
LG
Hier mal mein Code:
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "/k del /F /S /Q %temp%", "", "runas", 1
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 576723
Url: https://administrator.de/contentid/576723
Ausgedruckt am: 08.11.2024 um 21:11 Uhr
6 Kommentare
Neuester Kommentar
allerdings werden die Ordner in %temp% nicht gelöscht
Was erwartest du von del, das löscht nun mal nur Dateien und keine Ordner . Außerdem kannst du eben keine Ordner löschen in denen noch offene Dateihandles vorhanden sind, dafür müsste man erst die Handles abschießen.und das CMD-Fenster soll sich nach dem löschen wieder schließen
Warum verwendest du dann /k als Parameter und nicht /c ?? Einfach mal cmd /?
eintippeln hätte dafür gereicht .../C Führt den Befehl in der Zeichenfolge aus und endet dann.
/K Führt den Befehl in der Zeichenfolge aus und endet dann nicht.
CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c rd ""%TEMP%"" /s /q &md ""%TEMP%"" >nul 2>&1", "", "runas", 1
Ich werfe mal Löschen von Ordnern mittels Robocopy in den Raum.
z.B.
- man erstelle einen neuen, leeren Temp-Ordner
- man spiegele diesen neuen, leeren Temp-Ordner auf den zu löschenden Ziel-Ordner mittels Robocopy
- man löscht die Temp-Ordner und Ziel-Ordner
z.B.
set %tempdir%=C:\leer
set %destdir%=C:\ZuLoeschen
md "%tempdir%"
robocopy "%tempdir%" "%destdir%" /MIR /B /R:0 /W:0 /NP /MT
rd /s /q "%tempdir%"
rd /s /q "%destdir%"