splitbeaver
Goto Top

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:&nbsp;<input type="text" size="30" name="pcname">
Username:&nbsp;<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

Content-ID: 181146

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

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

DevTig
DevTig 27.02.2012 um 21:24:34 Uhr
Goto Top
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
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
splitbeaver
splitbeaver 27.02.2012 um 21:41:07 Uhr
Goto Top
Das ganze ist als HTML verpackt - soll dann auf einem Server mit Admin rechten gehostet werden damit mehrere User das ganze ausführen können.
Rechnername soll dann mit der Eingabe aus dem Input feld Pcname ersetzt werden und beim Username durch usrname
Damit man das immer wieder ausführen kann - denke mir das es so die einfachste variante ist
Der Teil mit dem löschen hat eh schon gepasst - jedoch musste ich bei jeder delete Zeile immer die 2 Punkte händisch im editor ändern - sehr aufwändig
Damit möchte ich das mit einer Html Maske beseitigen
DevTig
DevTig 27.02.2012 um 22:40:29 Uhr
Goto Top
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 face-smile
<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 face-smile )

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
splitbeaver
splitbeaver 28.02.2012 um 10:46:52 Uhr
Goto Top
Habe es jetzt ohne Html gelöst , ist einfacher
Danke Herzlich für die hilfe !


Dim a
a = inputbox ("Geben Sie einen PC Namen ein")

Dim b
b = inputbox ("Username eingeben")

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")

Delete "\\"&a&"\C$\Dokumente und Einstellungen\"&b&"\Lokale Einstellungen\Temp"


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