14634
Goto Top

LöschVBS mit ausnahme möglich?

Hallo, ich möchte alle Ordner im Verzeichnis c:\Documents and Settings löschen die über 30 Tage nicht mehr benutzt worden sind.
Dazu habe ich folgendes VBS Script::
Set myArguments = WScript.Arguments

If myArguments.Count <> 2 Then	
	call DisplayInfo
	Wscript.Quit (1)
End if

Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d","-" & myArguments(1), heute)  

set objFS = CreateObject("Scripting.FilesystemObject")  
set myFolder = objFS.GetFolder(myArguments(0))
set mySubfolders = myFolder.Subfolders

for each subfolder in mySubfolders
	If subfolder.DateCreated < olddate then
		subfolder.Delete
If instr(Pfad,"Administator") then flag=1  
	end if
next 

Sub DisplayInfo
	MsgBox "Usage: deleteoldfolders.vbs [FolderPath] [Anzahl Tage]", vbExclamation, "Missing Arguments"  
End Sub
ich will aber auch das der Ordner Administrator und All Usern nicht gelöscht werden, dazu brauche ich eine ausnahmegenehmigung.
Leider weiß ich nicht wie ich diese am besten in das Script implemtiere.

Kann hier jemand helfen?

Content-Key: 152383

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

Printed on: April 19, 2024 at 08:04 o'clock

Member: Berrnd
Berrnd Oct 05, 2010 at 12:14:43 (UTC)
Goto Top
Hi,

...ja einfach den Namen des Ordner vor dem Löschen noch prüfen...
(siehe Zeile 17)
Set myArguments = WScript.Arguments

If myArguments.Count <> 2 Then	
	call DisplayInfo
	Wscript.Quit (1)
End if

Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d","-" & myArguments(1), heute)  

set objFS = CreateObject("Scripting.FilesystemObject")  
set myFolder = objFS.GetFolder(myArguments(0))
set mySubfolders = myFolder.Subfolders

for each subfolder in mySubfolders
	If (subfolder.DateCreated < olddate) And Not (subfolder.Name = "All Users" OR subfolder.Name = "Administrator") then  
		subfolder.Delete
next 

Sub DisplayInfo
	MsgBox "Usage: deleteoldfolders.vbs [FolderPath] [Anzahl Tage]", vbExclamation, "Missing Arguments"  
End Sub
Gruß
Bernd
Member: bastla
bastla Oct 05, 2010 at 12:25:54 (UTC)
Goto Top
... oder etwas flexibler (aber ungetestet):
Set myArguments = WScript.Arguments
Exceptions = "#All Users#Administrator#whoever#AndSoOn#"  

If myArguments.Count <> 2 Then	
	call DisplayInfo
	Wscript.Quit (1)
End if

Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d","-" & myArguments(1), heute)  

set objFS = CreateObject("Scripting.FilesystemObject")  
set myFolder = objFS.GetFolder(myArguments(0))
set mySubfolders = myFolder.Subfolders

for each subfolder in mySubfolders
	If (subfolder.DateCreated < olddate) Then If InStr(1, Exceptions, "#" & subfolder.Name & "#", vbTextCompare) = 0 Then subfolder.Delete  
next 

Sub DisplayInfo
	MsgBox "Usage: deleteoldfolders.vbs [FolderPath] [Anzahl Tage]", vbExclamation, "Missing Arguments"  
End Sub
Grüße
bastla
Mitglied: 60730
60730 Oct 05, 2010 at 13:52:10 (UTC)
Goto Top
Moin,

die Frage kommt ja hin & wieder des öfteren vor und immer wieder gibts dann schlauberger, die darauf hinweisen, dass "Profile" etwas mehr sind, als die Daten, die unter dem betreffenden Username Ordner liegen und das der symphatische Marktführer aus Redmont eigens für diese Problematik ein Werkzeug gezimmert hat.

Dann bin ich heute mal wieder der Großvater....
ich will aber auch das der Ordner Administrator und All Usern
und warum ist das default Profile in dem Gedankengang unter die Räder gekommen?

Gruß
Mitglied: 14634
14634 Oct 05, 2010 at 14:28:22 (UTC)
Goto Top
HAllo, danke für eure hilfe, also das Script läuft einwandfrei in meinem Testordner, wenn ich es aber unter c:\Documents and Settings ausführen will, sagt es leider "kein zugriff" obwohl ich admin bin face-confused
Mitglied: 14634
14634 Oct 05, 2010 at 14:33:48 (UTC)
Goto Top
hallo, den default profile habe ich natürlich dazugeschrieben. Das war einach nur eine Info ob mehre gehen..
ich werde mir mal die msi anschauen, danke

edit: Delprof löscht mir auch den Administrator von Documents and Settings, das wollte ich eigentlich nicht