Selbstlöschende VBS
Hallo Leute,
ist es möglich, eine vbs zu zu gestalten, dass es sich nach dem Skriptablauf von selbst auflöst ?!
Das Skript liegt meist in dem Windows Ordner, deshalb werden zum löschen Adminrechte benötigt.
Danke im Voraus
ist es möglich, eine vbs zu zu gestalten, dass es sich nach dem Skriptablauf von selbst auflöst ?!
Das Skript liegt meist in dem Windows Ordner, deshalb werden zum löschen Adminrechte benötigt.
Danke im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 220822
Url: https://administrator.de/forum/selbstloeschende-vbs-220822.html
Ausgedruckt am: 22.12.2024 um 22:12 Uhr
4 Kommentare
Neuester Kommentar
...mit Beispiel, um die Behauptung von DWW zu untermauern.
Erstelle irgendwo eine VBS-Datei mit dem Namen "Test.vbs"
und gib folgende Zeilen ein:
Wenn das - wie oben schon erwähnt - mit entsprechenden Rechten läuft, dann funktioniert das auch.
Gruss
Tsuki
Erstelle irgendwo eine VBS-Datei mit dem Namen "Test.vbs"
und gib folgende Zeilen ein:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile ("Test.vbs")
Wenn das - wie oben schon erwähnt - mit entsprechenden Rechten läuft, dann funktioniert das auch.
Gruss
Tsuki
Hallo today12,
mal abgesehen davon, dass ich weder verstehe warum das Script im Windows Verzeichnis liegen, noch warum es sich selbst löschen muss ...
Das ist so wie du dir das vorstellst nicht umsetzbar. Ein laufender Prozess kann nicht nachträglich mit höheren Rechte versehen werden. Wenn du das aus dem eigenen Scriptcode heraus umsetzen willst, dann muss sich das Script selbst mit erhöhten Rechten neu aufrufen. Beispiel:
Dass das UAC um Bestätigung bittet, versteht sich von selbst.
Zeile 10 kann für dich von Interesse sein, da das Arbeitsverzeichnis des Scripts mit erhöhten Rechten automatisch im system32 Verzeichnis landet. Diese Zeile setzt es zurück auf das Verzeichnis, in dem das Script liegt.
Grüße
rubberman
mal abgesehen davon, dass ich weder verstehe warum das Script im Windows Verzeichnis liegen, noch warum es sich selbst löschen muss ...
Das ist so wie du dir das vorstellst nicht umsetzbar. Ein laufender Prozess kann nicht nachträglich mit höheren Rechte versehen werden. Wenn du das aus dem eigenen Scriptcode heraus umsetzen willst, dann muss sich das Script selbst mit erhöhten Rechten neu aufrufen. Beispiel:
Set objWSH = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Call objWSH.RegRead("HKEY_USERS\S-1-5-19\Environment\TEMP")
If Err Then
CreateObject("Shell.Application").ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """", "", "runas", 1
WScript.Quit
End If
On Error Goto 0
objWSH.CurrentDirectory = objFSO.GetParentFolderName(WScript.ScriptFullName)
' Dein Code hier ...
objFSO.DeleteFile(WScript.ScriptFullName)
Zeile 10 kann für dich von Interesse sein, da das Arbeitsverzeichnis des Scripts mit erhöhten Rechten automatisch im system32 Verzeichnis landet. Diese Zeile setzt es zurück auf das Verzeichnis, in dem das Script liegt.
Grüße
rubberman