miniad-dj
Goto Top

Löschen von Profilordnern nicht möglich (WServer 2008 R2)

Hallo zusammen!

Folgende Aufgabe möchte ich per vbs-Script lösen: In bestimmten Zeitabständen scheiden bei uns ca. 100 User aus, die es gilt automatisch zu löschen. Dank Schwichtenberg gelingt das Entfernen aus dem AD über eine TXT-Datei ohne Probleme. Verbleiben noch die angelegten Ordner, und zwar z.B. beim User juncar0793 die Ordner

C:\userdaten\daten\home\juncar0793 bzw.
C:\userdaten\daten\profile\juncar0793.

Also ein Script entworfen, welches zunächst den Ordner im home-Verzeichnis löscht, klappt ohne Probleme.
Gleiches Script für den Profile-Ordner genommen, Ausführung scheitert an den Berechtigungen.
Ordner manuell löschen scheitert ebenfalls an fehlender Berechtigung.
Also muss dem Administrator per Script Vollzugriff erlaubt werden.
Die entscheidende Zeile

icacls C:\userdaten\daten\profile\juncar0793\ /grant Administratorface-sadOI)(CI)F

Ergebnis:

05d35b04649df90c083b8fd917abf762

Also Vollzugriff. Aber der Ordner lässt sich trotzdem nicht löschen, da angeblich noch ein anderer User Zugriff hat. Lediglich unser Total Commander schafft es, den Ordner in den Papierkorb zu verschieben, nur einfach Löschen geht aber auch hier nicht.

Was mache ich falsch oder berücksichtige ich nicht?

Danke im Voraus für die Hilfe.

Jochen

Content-Key: 207186

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

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

Member: GuentherH
GuentherH May 28, 2013 at 20:56:51 (UTC)
Goto Top
Hallo.

Schau einmal nach delprof2. Nur damit lassen sich Profile ab Vista sauber und korrekt löschen.

LG Günther
Member: miniad-dj
miniad-dj May 28, 2013 at 21:33:58 (UTC)
Goto Top
Hallo Günther!
Danke für die Antwort und den guten Tipp. Ich lerne daraus, dass
1) das Löschen des Profilordners doch nicht so trivial ist, wie ich dachte und
2) man zumindest alle zeitlich inaktiven Profile löschen könnte.

Das Problem ist nur, dass es Benutzer gibt, die lange Zeit nicht im System waren, aber trotzdem erhalten bleiben sollen. Andere sollen aber im Moment des Verlassens der Institution gelöscht werden. Wichtig ist also nicht die zeitliche Nutzung sondern allein die Zugehörigkeit.
Problem also noch nicht ganz gelöst.

Gruß Jochen
Member: miniad-dj
miniad-dj May 28, 2013 at 21:42:24 (UTC)
Goto Top
Der Tipp mit delprof2 hat mich außerdem noch auf die folgende Seite geführt

http://www.windowspro.de/tool/benutzerprofile-loeschen-mit-dem-kostenlo ...

und da heißt es

Windows selbst bringt Bordmittel mit, um Benutzerprofile zu löschen. Es handelt sich dabei um den Dialog Benutzerprofile, der tief vergraben unter Systemsteuerung => System => Erweiterte Systemeinstellungen => Erweitert zu finden ist. Dort kann man Benutzerprofile über die grafische Oberfläche einzeln entfernen.

Das hilft zur Not evtl. auch schon, obwohl ein schönes Script schon reizvoll wäre.

Gruß Jochen
Member: GuentherH
GuentherH May 28, 2013 at 21:47:36 (UTC)
Goto Top
Hi.

Delprof2 bietet dir doch genau die Optionen, die du brauchst. Schau dir doch die Optionen einmal genau an - http://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

LG Günther
Member: miniad-dj
miniad-dj May 28, 2013 at 22:10:09 (UTC)
Goto Top
Hallo!

Ja, du hast Recht. Wer lesen kann ist klar im Vorteil:

If, on the other hand, only a few known profiles are to be deleted, use the inclusion feature and Delprof2 ignores everything else.

Hat mir sehr geholfen.

Gruß Jochen
Member: miniad-dj
miniad-dj Jun 07, 2013 at 13:00:49 (UTC)
Goto Top
Hallo zusammen!
Ich melde mich doch noch einmal, vielleicht kann noch jemand von unseren Ergebnissen profitieren.
Delprof2 hat letztlich nicht unser Problem gelöst, da ich nur inaktive Profile ansprechen kann (oder ich habe es nicht richtig angewendet).
Wir haben den kompletten Löschvorgang mittels eines vbs-Scripts bearbeitet. Hiermit werden die User im AD gelöscht, ihre home-Verzeichnisse und endlich auch ihre Profilordner, indem der Adminsitrator sich die Rechte mit icacls schnappt. Bis auf wenige Ausnahmen bei verhunzten Profilen scheint es zu funktionieren.

Option Explicit
Dim fso, f, Zeile, Feld
Dim Verzeichnis_home, Verzeichnis_profile
Dim Benutzer, Vorname, Nachname, Passwort
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile ("abgang.txt",1,0)
Do while not f.AtEndOfLine
Zeile = f.readLine
Feld = split(Zeile,";")
Benutzer = Feld(0)
Vorname = Feld(1)
Nachname = Feld(2)
Passwort = Feld(3)
MsgBox "Benutzer eingelesen " &Benutzer, vbSystemModal + vbInformation
Call BenutzerLoeschen(Benutzer,Vorname,Nachname,Passwort)
Verzeichnis_home = "C:\hier den home-Ordner vollständig einsetzen"+Benutzer
Verzeichnis_profile = "C:\hier den profile-Ordner vollständig einsetzen"+Benutzer
If FSO.FolderExists(Verzeichnis_home) Then
REM löschen
FSO.DeleteFolder Verzeichnis_home
REM Ausgabe
WScript.Echo "Das Verzeichnis " & Verzeichnis_home & "wurde gelöscht."
Else
REM Fehlermeldung ausgaben
WScript.Echo "Das Verzeichnis " & Verzeichnis_home & "existiert nicht."
End If
REM Rechte Neu vergeben Administrator übernimmt Besitz über das CMD rechte.cmd
Dim WshShell, ret
Set WshShell = WScript.CreateObject("WScript.Shell")
ret = WshShell.Run ("rechte.cmd " & Benutzer &"\",0,1)
WScript.Echo "Rechte neu vergeben "
If FSO.FolderExists(Verzeichnis_profile) Then
REM löschen
FSO.DeleteFolder Verzeichnis_profile
REM Ausgabe
WScript.Echo "Das Verzeichnis " & Verzeichnis_profile & "wurde gelöscht."
Else
REM Fehlermeldung ausgaben
WScript.Echo "Das Verzeichnis " & Verzeichnis_profile & "existiert nicht."
End If
MsgBox "Ende Schleife", vbSystemModal + vbInformation
Loop
f.Close
MsgBox "Ende des Scripts", vbSystemModal + vbInformation
WScript.Quit(0)
Sub BenutzerLoeschen (Benutzer,Vorname,Nachname,Passwort)
MsgBox "Einstieg Subroutine für " & Benutzer, vbSystemModal + vbInformation
Dim ouo
Set ouo = GetObject("LDAP://vollständiger Servername z.B xy.server.net /ou=user,DC=Servername 1.Teil,DC=Servername 2.Teil, DC=Servername 3.Teil")
ouo.Delete "user", "CN=" & Vorname & " " & Nachname REM Benutzer funktioniert nicht
MsgBox "Ende Subroutine: " & Benutzer & "gelöscht", vbSystemModal + vbInformation
WScript.Sleep(1000)
End Sub


cmdlet rechte.cmd

icacls C:\schueler_daten_4\daten\profile\%1 /grant Administrator:face-sadd,wdac,f,ma)