per Bat Ordner löschen die älter als 30 Tage sind mit Ausnahmen...

  • Ersteller Ersteller SandManTR
  • Erstellt am Erstellt am
S

SandManTR

Guest
Themenstarter
Ich möchte in Windows Benutzerprofile automatisch löschen die älter als 30 Tage sind.

Bsp:

C:\Users\admin
C:\Users\xyz_1
C:\Users\xyz_2
C:\Users\xyz_3

Dabei soll z.B. admin nie gelöscht werden, die anderen jedoch schon wenn diese älter als 30 Tage sind.

Hintergrund des ganzen: Auf einem Rechner loggen sich verschiedene Mitarbeiter ein, die Profile werden dann von Server heruntergeladen. Irgendwann ist die Festplatte voll und
von 10 Profilen ist in Wirklichkeit nur ein oder zwei noch in Benutzung auf genau diesem PC.

Vlt. kennt jemand eine Lösung dafür, bisher wurden die wohl immer manuell gelöscht und ich würde gerne einfach eine .bat schreiben die regelmäßig das Problem löst.
 
ja das hilft schon weiter. Ein Problem stellt dabei die Ausnahme dar, die ich für "admin" haben möchte.
 
Ne ne, tut sie nicht ;)

2 Möglichkeiten:

Eine for i in Schleife drum, und wenn dann "admin" an der Reihe ist -> Übergeh das Script oder schau ob Robocopy / rm excludes kann.

Ich hab kein Windows hier, ich kann frühstens Mittwoch auf der Firma schauen wie wir das umgesetzt haben, aber wir hatten das gleiche Problem und haben es mit der Seite gelöst.

Grüße
 
stimmt, mit einer Schleife könnte man was basteln.
Da es zum Glück nicht ganz so dringend ist, wäre ich dir mega dankbar wenn du mir eure Lösung kommende Woche verraten würdest :)
 
Du solltest nie bei Profilen einfach nur die Ordner löschen! Das geht schief. Die entsprechenden Registry-Einträge verbleiben dann und früher oder später wirkt sich das unschön aus.

Ich müsste morgen mal in der Firma schauen, ich hatte da mal was in Powershell gebastelt...
 
ja das dachte ich mir auch schon. Das Unternehmen macht das schon immer so, auf meine Nachfrage wurde mir gesagt, es hätte keine Auswirkungen, was ich persönlich aber nicht glaube. Bin für tipps wie man das sauber löst, dankbar! :)
 
Wenn es servergespeicherte Profile sind (wovon ich ausging) macht es tatsächlich nichts. Aber mein Script / meine Lösung löscht nur die Inhalte der Ordner, somit ist auch die Reg. sauber, hätte ich noch erwähnen sollen.

Aber, ich bin ja nur der Linux-Mensch, würde mich über eine sauberererere PowerShell-Lösung auch erquicken, Hatte mir PS zwar schon angeschaut, aber trotz hohem Script-Wissen ist PS schon was schaurig ;)

Grüße
 
Ich hab noch mal geschaut und hatte mal folgende Routine gefunden, die ein Profil offiziell löscht. Leider hab ich dazu keine Quelle mehr.

Aufruf mit Scriptname.ps1 -Username zulöschenderprofilname


[cmdletbinding()]
param(
[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = $env:computername,
[parameter(mandatory=$true)]
[string]$UserName
)

Process
{
foreach($Computer in $ComputerName)
{
Write-Verbose "Working on $Computer"
If(Test-Connection -ComputerName $Computer -Count 1 -ea 0)
{
$Profiles = Get-WmiObject -Class Win32_UserProfile -Computer $Computer -ea 0
foreach ($profile in $profiles)
{
$objSID = New-Object System.Security.Principal.SecurityIdentifier($profile.sid)
$objuser = $objsid.Translate([System.Security.Principal.NTAccount])
$profilename = $objuser.value.split("\")[1]
if($profilename -eq $UserName)
{
$profilefound = $true
try
{
$profile.delete()
Write-Host "$UserName profile deleted successfully on $Computer"
}
catch
{
Write-Host "Failed to delete the profile, $UserName on $Computer"
}
}
}
if(!$profilefound)
{
write-Warning "No profiles found on $Computer with Name $UserName"
}
}
else
{
write-verbose "$Computer Not reachable"
}
}
}

Da drumherum müsste man sich nur noch eine kleine Routine bauen, die das Datum ermittelt, die Ordner in C:\Users aufzählt, darin das Datum der letzten Änderung der ntuser.dat vergleicht und halt das entsprechende Profil killt, wenn es älter als der gewünschte Zeitraum ist. Entsprechende Ausnahmen sollten dann auch kein Thema sein. Fertig hab ich sowas leider nicht hier liegen.
 
  • ok1.de
  • thinkstore24.de
  • ok2.de - Notebook Computer Server
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben