Jump to content

Per Batch löschen


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

Empfohlene Beiträge

Hi zusammen,

 

ich habe ein Transferverzeichnis bei mir in der Firma. Dessen Inhalt soll jeden Tag via Batch (von einem Task aus gesteuert) gelöscht werden.

 

Der Inhalt des Verzeichnisses variiert, deswegen kann ich nicht expliziet sagen:

 

RD Verzeichnis

 

Der Befehl 'del' löscht nur Dateien, jedoch keine Verzeichnisse.

Meine Lösung war dann das Verzeichnis komplett zu löschen mit

 

RD /S /Q "LW:\Verzeichnis\Transferverzeichnis"

 

und es danach mit dem selben Batch wieder neu zu erstellen mit

 

MKDIR "LW:\Verzeichnis\Transferverzeichnis"

 

Jetzt besteht jedoch das Problem, dass nur der Admin (da der Task unter dem Adminaccount läuft) in das Verzeichnis schreiben kann, da dessen Recht mitgeschrieben wurden.

 

Vererben kann ich in dem Fall nicht, da sonst für sämtliche Unterverzeichnisse schreibrechte bestehen würden, dass aber nicht der Fall sein soll.

 

Kann mir jemand sagen, ob es eine Möglichkeit gibt, die Rechte nachträglich via Batch zu ändern ... oder habt ihr eine andere Idee?

 

 

Danke!

 

fbeucke

Link zu diesem Kommentar

Bei uns in der Firma werden die "Transit-Ordner" jede Woche gelöscht und ab dem AD pro User neu erstellt. Jeder Benutzer kann aber alle Transit-Ordner, also auch die von anderen Usern löschen. Was eigentlich kein Problem darstellt, da diese wirklich nur für den Transit gedacht sind. Der Aufwand, die Rechte nachträglich mit dem Batch neu zu vergeben sehe ich als unverhältnismassig.

Link zu diesem Kommentar

'Thema :Transfer Folder löschen

'Autor :Hansi Haase

'Datum :06.12.2001

'Zeit :20:00

'*********************************************************************************************************

 

strDrive = "F:"

strPath = "\MSA\Daten\Transit"

strDomain = "MS"

myLDAP = "ou=users,ou=msa,dc=ms,dc=com"

 

 

set Ws = WScript.CreateObject("WScript.Shell")

set fdrive = CreateObject("Scripting.FileSystemObject")

set fPath = CreateObject("Scripting.FileSystemObject")

set ffile = CreateObject("Scripting.FileSystemObject")

set fverz = CreateObject("Scripting.FileSystemObject")

set WshNetwork = WScript.CreateObject("WScript.Network")

set myContainer = GetObject("LDAP://" & myLDAP)

 

 

 

'kontrolle ob Delete-Drive exisitert

if not fdrive.DriveExists(strDrive) then

wscript.quit

end if

 

 

 

'kontrolle ob \MSA\Daten\ Vezeichniss existiert ansonsten erstellen

if not fverz.folderExists(strDrive & strPath) then

CreateFolder(strDrive & strPath)

end if

 

 

set fo = fverz.GetFolder(ws.ExpandEnvironmentStrings(strDrive & strPath))

set fc = fo.subFolders

'on error resume next

 

 

 

'Win2K

'Pro Benutzer ein Ordner erstellen '

for each myObj in myContainer

if (myObj.class = "user") Then

on error resume next

'set fo = fverz.CreateFolder(trim(strDrive & strPath & "\" & myObj.samaccountname))

set fo = fverz.CreateFolder(trim(strDrive & strPath & "\" & myobj.sn & myobj.givenname ))

end if

next

 

 

'msgbox "Ende"

 

'*********************************************************************************************************************************************************

' sub's

'*********************************************************************************************************************************************************

 

' Create Folder

'************************************************************

Sub CreateFolder(path)

Set fs = CreateObject("Scripting.FileSystemObject")

' wenn Pfadname nicht auf "\" endet, dann

' ein "\" anhängen:

If Not Right(Path,1) = "\" Then

folderpath = Path & "\"

Else

folderpath = Path

End If

 

' prüfen, welche Ordner angelegt werden müssen

'SYS: 'SYS: erneute Deklaration dieser Komponente

Set fs = CreateObject("Scripting.FileSystemObject")

pos = 0

Do

pos = InStr(pos+1, folderpath, "\")

If pos = 0 Then Exit Do

'msgbox folderpath & "/" & pos

If Not fs.FolderExists(Left(folderpath,pos)) Then

' Ordner fehlt? Dann anlegen!

fs.CreateFolder Left(folderpath,pos)

End If

Loop

 

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...