Remote Ordnerstrukturen mit VBS entfernen
Zielsetzung: Nach Eingabe des Username und Netzwerkname (PC) Script per Button auslösen
Komme nicht mehr Weiter
Nach der Eingabe in die 2 Fenster (Netzwerkane,Username) welche immer wieder unterscheiden soll der Input Bereich die Eingaben an die Delete Zeile weitergeben.
Script soll erst nach dem Submit (Button klick) ausgeführt werden.
Benötigt man jeweils einen Button zum überleiten da es 2 Variablen sind ?
____________________________________________________________________
<form name="Formular"
method="post" onsubmit="return chkFormular()">
<pre>
Netzwerkname: <input type="text" size="30" name="pcname">
Username: <input type="text" size="30" name="usrname">
<input type="submit" value="Durchführen"><input type="reset" value="Abbrechen">
Daten bitte vor Bestätigen nochmals überprüfen !
</pre>
</form>
</body>
</html>
<script language="VBScript" type="text/javascript">
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Delete "\\TESTPC\C$\Dokumente und Einstellungen\NAME\Lokale Einstellungen\Temp"
Delete "\\TESTPC\C$\Dokumente und Einstellungen\NAME\Lokale Einstellungen\Temp2"
Delete "\\TESTPC\C$\Dokumente und Einstellungen\NAME\Lokale Einstellungen\Temp3"
Wscript.Quit
Sub Delete( Strfolder)
On Error Resume Next
Dim Folder
Set Folder = fso.GetFolder(StrFolder)
For Each SubFolder in Folder.SubFolders
Delete SubFolder
If Folder.Attributes And 1 Then
Folder.Attributes = Folder.Attributes - 1
End if
SubFolder.Delete
Next
For Each File in Folder.Files
If File.Attributes And 1 Then
File.Attributes = File.Attributes - 1
End If
File.Delete
Next
End Sub
Bedanke mich im Vorraus für jede Hilfe
MFG
Komme nicht mehr Weiter
Nach der Eingabe in die 2 Fenster (Netzwerkane,Username) welche immer wieder unterscheiden soll der Input Bereich die Eingaben an die Delete Zeile weitergeben.
Script soll erst nach dem Submit (Button klick) ausgeführt werden.
Benötigt man jeweils einen Button zum überleiten da es 2 Variablen sind ?
____________________________________________________________________
<form name="Formular"
method="post" onsubmit="return chkFormular()">
<pre>
Netzwerkname: <input type="text" size="30" name="pcname">
Username: <input type="text" size="30" name="usrname">
<input type="submit" value="Durchführen"><input type="reset" value="Abbrechen">
Daten bitte vor Bestätigen nochmals überprüfen !
</pre>
</form>
</body>
</html>
<script language="VBScript" type="text/javascript">
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Delete "\\TESTPC\C$\Dokumente und Einstellungen\NAME\Lokale Einstellungen\Temp"
Delete "\\TESTPC\C$\Dokumente und Einstellungen\NAME\Lokale Einstellungen\Temp2"
Delete "\\TESTPC\C$\Dokumente und Einstellungen\NAME\Lokale Einstellungen\Temp3"
Wscript.Quit
Sub Delete( Strfolder)
On Error Resume Next
Dim Folder
Set Folder = fso.GetFolder(StrFolder)
For Each SubFolder in Folder.SubFolders
Delete SubFolder
If Folder.Attributes And 1 Then
Folder.Attributes = Folder.Attributes - 1
End if
SubFolder.Delete
Next
For Each File in Folder.Files
If File.Attributes And 1 Then
File.Attributes = File.Attributes - 1
End If
File.Delete
Next
End Sub
Bedanke mich im Vorraus für jede Hilfe
MFG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181146
Url: https://administrator.de/contentid/181146
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo erstmal,
wie ist das ganze denn verpackt ? Als HTML, ASP oder HTA ?
..oder würde es eine Batch tun mithilfe von psexec ?
Hier mal a weng Code zum löschen eines Verzeichnisses auf dem Remote PC.
TempVerzeichnisLöschen.bat
Aufruf des ganzen mit:
Grüße
DevTig
Edit:
Was natürlich auch funktioniert - ohne psexec - ist, entsprechende Berechtigungen vorausgesetzt.
wie ist das ganze denn verpackt ? Als HTML, ASP oder HTA ?
..oder würde es eine Batch tun mithilfe von psexec ?
Hier mal a weng Code zum löschen eines Verzeichnisses auf dem Remote PC.
TempVerzeichnisLöschen.bat
pfad\psexec.exe \\%1 -u USERNAME -p PASSWORD "rd c:\Dokumente und Einstellungen\%2\Lokale Einstellungen\Temp\*.* /S /Q"
Aufruf des ganzen mit:
TemVerzeichnisLöschen.bat Rechnername Username
Grüße
DevTig
Edit:
Was natürlich auch funktioniert - ohne psexec - ist, entsprechende Berechtigungen vorausgesetzt.
rd \\RECHNERNAME\c$\Dokumente und Einstellungen\USERNAME\Lokale Einstellungen\Temp\*.* /S /Q
Ich würde das eher als ASP nutzen - funktioniert dan etwas besser.
Dann sollte es reichen die Felder pcname und usrname automatisiert zu übernehmen.
Am Ende könnte das ganze dann so aussehen - ungetestet natürlich
So kurz zur Erklärung:
Alle Temp Ordner werden im TempFolders-Array erfasst. Ermöglich ein späteres erweitern um n-Ordner.
Die Felder für PC-Name und Username werden beim klick auf durchführen automatisch übernommen. (Sofern das alles richtig funktioniert )
Das Script löscht alle Files im "Root" der Temp Ordner, die SubFolders werden komplett gelöscht ohne sie einzeln zu durchlaufen. Da das bei manchen Ordnern auf Problem stoßen kann ist zu testen ob es nicht sinnvoll ist eine zusätzliche DeleteSubfolder Routine einzubauen.
Soweit mal viel Spaß damit
Grüße
DevTig
Dann sollte es reichen die Felder pcname und usrname automatisiert zu übernehmen.
Am Ende könnte das ganze dann so aussehen - ungetestet natürlich
<html>
<head>YOUR-HEADER-INFORMATION</head>
<body>
<table>
<tr><td>Netzwerkname:</td><td><input type="text" size="30" name="pcname"></td></tr>
<tr><td>Username:</td><td><input type="text" size="30" name="usrname"></td></tr>
<tr><td colspan="2" align="right"><input type="button" value="Durchführen" onclick="Delete(pcname.Value,usrname.Value)"><input type="button" value="Abbrechen" onclick="ResetFields()"></td></tr>
</table>
</body>
<script language="vbscript">
Sub ResetFields()
pcname.Value = ""
usrname.Value = ""
End Sub
Sub Delete(ByVal strClientPC, ByVal strUsrName)
On Error Resume Next
Dim Folder
Dim TempFolders(2)
TempFolders(0) = "\\" & strClientPC & "\C$\Dokumente und Einstellungen\" & strUsrName & "\Lokale Einstellungen\Temp"
TempFolders(1) = "\\" & strClientPC & "\C$\Dokumente und Einstellungen\" & strUsrName & "\Lokale Einstellungen\Temp1"
TempFolders(2) = "\\" & strClientPC & "\C$\Dokumente und Einstellungen\" & strUsrName & "\Lokale Einstellungen\Temp2"
Set oFSO = CreateObject("Scripting.FileSystemObject")
For i = 0 To Ubound(TempFolders)
Set oFolder = fso.GetFolder(TempFolders(i))
For Each oFile in oFolder.Files
'Delete each file forced
oFSO.DeleteFile oFile,True
Next
For Each SubFolder in oFolder.SubFolders
'Delete each folder forced
oFSO.DeleteFolder SubFolder,True
Next
Next
End Sub
</script>
</html>
So kurz zur Erklärung:
Alle Temp Ordner werden im TempFolders-Array erfasst. Ermöglich ein späteres erweitern um n-Ordner.
Die Felder für PC-Name und Username werden beim klick auf durchführen automatisch übernommen. (Sofern das alles richtig funktioniert )
Das Script löscht alle Files im "Root" der Temp Ordner, die SubFolders werden komplett gelöscht ohne sie einzeln zu durchlaufen. Da das bei manchen Ordnern auf Problem stoßen kann ist zu testen ob es nicht sinnvoll ist eine zusätzliche DeleteSubfolder Routine einzubauen.
Soweit mal viel Spaß damit
Grüße
DevTig