Jump to content

error 0x80041021


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo an alle,

 

ich habe ein kleines problem.

ich habe hier ein script was in verschieden ordner zugreiffen soll und

dann den inhalt bzw die ordner darunter löscht.

 

ausser sie sind in einer exclusions liste erfasst.

local funzt das script 1. klasse ber sobale ich es auf ein UNC Pfad \\coputer schicke kommt der Fehler 0x80041021

 

hier mal das script evtl kann mir einer von euch sagen wo der fehler liegt :confused:

bearbeitet von Refnex
Link zu diesem Kommentar

'-Konstanten----------------------------------------------

Const ForReading = 1, ForWriting = 2, ForAppending = 8

'-Array Variablen die zu überprüfenden Ordner getrennt mit ; angeben------

strRootFolder = "\\server510\test\1test; "

'CompName 

'strComputer =strRootFolder 


'-Variablen-----------------------------------------------

strRootFolder = split(strRootFolders, ";")
strLogFile = "F:\Rekursiv_loeschen\log.txt" '-Ablage der Log Datei
strExcludeFile = "F:\Rekursiv_loeschen\KillfolderExclude.txt" ' In diesem Textfile bitte die zu Exclusion Freigegebenen Verzeichnisse eintragen 
lngDays = 1
lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt 
lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms

'---

'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten!
If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = False Else boolcscript=True

Set objWMIService = GetObject("winmgmts:\\" & strRootFolders & "\root\cimv2")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ofolder = fso.GetFolder(strRootFolders)
Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)

Writelog "---- Alte Ordner in " & strRootFolders & " werden gelöscht! - " & Now()
Writelog "Ausgeschlossene Verzeichnisse:"

Dim arrEx()
maxExcludes=0
If fso.FileExists(strExcludeFile) Then
Set fex = fso.OpenTextFile(strExcludeFile, ForReading)
Do While Not fex.AtEndOfStream
maxExcludes=maxExcludes+1
ReDim Preserve arrEx(maxExcludes)
arrEx(maxExcludes) = fex.readline()
Writelog arrEx(maxExcludes)
Loop
fex.close
End If

Writelog "----"

'Durchlaufe alle Unterverzeichnisse
For Each folder In ofolder.subfolders
KillfolderSub folder
Next

Writelog "---- Script beendet - " & Now()
if not boolcscript then MsgBox "Script beendet - " & Now()

'---
'ENDE
'---

Sub KillfolderSub(objFolder)
'On Error Resume Next
strFolder = objFolder.Path
' vardatecreated = objFolder.datecreated

'Wenn Ordner in "Exclude"-Liste steht, nicht löschen!
boolExclude = False
For i=1 To maxExcludes
if lcase(strFolder) = lcase(trim(arrEx(i))) then boolExclude = True
Next

If boolExclude Then
Writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)"

Else

'Durchlaufe alle Unterverzeichnisse
For Each subfolder In objFolder.subfolders
KillfolderSub subfolder
Next

'Wenn Ordner vor mehr als x Tagen erstellt wurde...

' WScript.Echo vardatecreated & " - "& Date & " - "& lngDays
' If vardatecreated < (Date - lngDays) Then
' WScript.Echo "alt löschen"
'Alle Dateien im Ordner löschen
For Each file In objFolder.Files
vardatecreated = file.DateLastModified
'Script.Echo file & " - "&vardatecreated & " - "& Date & " - "& lngDays
If vardatecreated < (Date - lngDays) Then
Err.Clear
strFile = file.Path
fso.DeleteFile strFile, True
If Err = 0 Then
Writelog "Datei " & strFile & " gelöscht"
Else
Writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")"
End If 
Else
Writelog "Datei " & strFile & " nicht gelöscht! - zu Neu" & vardatecreated
End If
Next

' End If
End If




On Error Goto 0
End Sub


'---
'Löschen leerer Ordner
'---

mko (strRootFolders)

Sub mko (sfolder)
Set fso = CreateObject("Scripting.FileSystemObject")
Set fsofolder = fso.GetFolder(sFolder)
For Each subfolder In fsofolder.SubFolders

mko(subfolder.Path)

Next

If fsofolder.Files.Count = 0 And fsofolder.SubFolders.Count = 0 Then
fsofolder.Delete vbTrue

End If



End Sub


'---

Sub Writelog(strMessage)

flog.writeline strMessage
if boolcscript then WScript.echo strMessage

End Sub

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...