cullentrey
Goto Top

Powershell - Austauschordner löschen

Hallo,

ich habe folgendes Skript
$TargetFolder = "E:\temp\"  
$TargetFolderOpen = $TargetFolder + "*"  

$OUs = 	"OU=Abt-1,OU=Standort1,DC=XXX,DC=local",  
		"OU=Abt-n,OU=Standort1,DC=XXX,DC=local",  
		"OU=Abt-2,OU=Standort2,DC=XXX,DC=local",  
		"OU=Abt-n,OU=Standort2,DC=XXX,DC=local"  

$Users = $OUs | ForEach-Object { Get-ADUser -Filter * -SearchBase $_ }

$OpenFiles = Get-SmbOpenFile | Where-Object Path -like $TargetFolderOpen

foreach ($File in $OpenFiles)
	{
		Close-SmbOpenFile -FileId $File.FileId -Force
	}

Get-ChildItem $TargetFolder * -Recurse | Remove-Item -Force -Recurse

do 
	{
		Start-Sleep 20
	}
while (Test-Path $TargetFolder\*)

foreach ($User in $users)
    {
    	New-Item -Path $TargetFolder -Name $User.Name -ItemType directory
    }

über welches ich auf unserem FileServer (2012 R2) per Aufgabenplanung (jeden letzten im Monat) den Austauschordner lösche und anschließend für jeden User einen Unterordner erstelle.

Seit einiger Zeit habe ich aber das Problem, das teilweise Ordner nicht gelöscht werden. Über die Computerverwaltung ist ersichtlich, dass noch Verbindungen zu den Ordnern oder Dateien in den Ordner offen sind, welche nicht gelöscht werden. Über die Computerverwaltung lassen sich die Verbindungen problemlos schließen und das Skript läuft dann ganz normal zu Ende.

Das Skript läuft mit Administratorrechten.

Ich finde irgendwie keine Ansatzpunkt an dem ich prüfen kann warum die Verbindungen nicht geschlossen werden. Es ist auch nicht an einem Benutzer festzumachen, sind immer verschiedene.

Vielleicht hat jemand von euch eine Idee was hier dazwischen funkt, oder wie ich das Skript besser machen kann, damit der Fehler nicht mehr auftritt.

Danke und Grüße

Cullen

Content-ID: 467957

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

emeriks
Lösung emeriks 01.07.2019 aktualisiert um 11:36:43 Uhr
Goto Top
Hi,
wenn das Script zu einer Zeit läuft, wenn normalerweise kein Benutzer mit diesen Ordnern arbeitet, dann könntest Du zwischenzeitlich die Freigabe sperren, z.B. indem Du diese zwischenzeitlich löschst und abschließend wieder erstellst, oder indem Du die Freigabe-Berechtigungen einschränkst und abschließend wieder restaurierst. Dadurch sollten auch alle Locks geschlossen werden.

E.
CullenTrey
CullenTrey 01.07.2019 um 13:25:36 Uhr
Goto Top
Hi emeriks,

danke, den Gedanken hatten wir in der Abteilung auch schon mal, aber irgendwie hatte ich mich da noch gegen gesträubt (kann aber hier keinen Grund nennen).
Werd mir dann mal die entsprechenden Befehle anschauen.

Guß

Cullen
emeriks
emeriks 01.07.2019 um 14:05:14 Uhr
Goto Top
Du kannst auch mit Get-SmbSession und Close-SmbSession die Sitzungen schließen. Allerdings verhindert das nicht, dass da Cleintseitig sofort neue aufgebaut werden.
CullenTrey
CullenTrey 03.07.2019 um 13:42:00 Uhr
Goto Top
Hi,

danke für den Tipp, nachdem du das mit dem wiederaufbau geschrieben hast dachte ich mir das wohmöglich das auch mein problem beim schließen der Verbindung ist, somit hab ichs jetzt umgebaut und beende die Freigabe bevor ich die Ordner lösche, hoffe das es damit dann problemlos durchläuft.

Gruß

Cullen