ich hoffe jemand kann mir mit folgendem Problem weiterhelfen:
Ich habe einen Workflow erstellt, der über eine Aktion im ServiceStore gestartet wird. Hier können mehrere Objekte ausgewählt werden und anschließend arbeitet der Workflow in einer Foreach-Schleife alle Objekte ab. In diesem Workflow wird das nachfolgende Script ausgeführt (für jedes Objekt).
Code: Select all
#$uri = "<server url adresse>"
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $uri -Authentication Kerberos
Import-PSSession $Session
#$pouser = "<po box username>"
$ErrorActionPreference = "SilentlyContinue"
$mb = Get-Mailbox -Identity $pouser
$users = $mb | Get-MailboxPermission | where {($_.accessRights -like "*fullaccess*") -and -not ($_.User -like "NT-AUTORITÄT\SELBST") -and ($_.IsInherited -ne $TRUE)}
$sendAsMailAddresses = New-Object System.Collections.ArrayList($null)
foreach($user in $users) {
try {
$adUser = Get-ADUser $user.User.Split("\")[1] -Properties mail -ErrorAction SilentlyContinue
$sendAsMailAddresses.Add($adUser.Mail)
}
catch {
}
}
$sendAsMailAddresses
Remove-PSSession $session
Das Problem hier ist nun, dass das Script scheinbar den Arbeitsspeicher auf dem Applikationsserver nicht mehr freigibt. Desto mehr Objekte ich auswähle, desto voller wird natürlich der Arbeitsspeicher auf dem Server und der WF kann irgendwann nicht mehr weiter verarbeitet werden und ich muss den IIS neu starten. Auch nach dem der Workflow komplett abgeschlossen ist, wird der Arbeitsspeicher nicht freigegeben.
Jemand Lösungsvorschläge, wie man das lösen kann?