fbeucke 10 Geschrieben 21. April 2005 Melden Teilen Geschrieben 21. April 2005 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 Zitieren Link zu diesem Kommentar
humpi 11 Geschrieben 21. April 2005 Melden Teilen Geschrieben 21. April 2005 Hi, wenn die Batch ansonsten funktioniert, kannst du sie via geplantem Task löschen. Ausführen als Admin und Kennwort eingeben. Zitieren Link zu diesem Kommentar
Calypso 10 Geschrieben 21. April 2005 Melden Teilen Geschrieben 21. April 2005 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. Zitieren Link zu diesem Kommentar
Calypso 10 Geschrieben 21. April 2005 Melden Teilen Geschrieben 21. April 2005 '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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.