Der Fehler (9327, 9323 Offlineadressliste) findet sich häufig im Eventlog des Exchange Servers der das Offline Adressbuch generiert:
MSExchangeSA
9327Es wurden einige Einträge in der Offlineadressliste „\Globale Adressliste“ von OALGen ausgelassen. Um festzustellen, welche Einträge betroffen sind, muss die Ereignisprotokollierung für den Offlineadress-Generator mindestens auf „Mittel“ festgelegt sein.
– \Default Offline Adressbuch
Um festzustellen was die Warnung verursacht muss das Diagnose Level angehoben werden, in einigen Fällen taucht dann diese Meldung als Verursacher auf:
MSExchangeSA
9323Eintrag ‚Benutzer‘ weist ungültige oder abgelaufene E-Mail-Zertifikate auf. Diese Zertifikate werden nicht in die Offlineadressliste für ‚\Globale Adressliste‘ aufgenommen.
– \Default Offline Adressbuch
Ursache sind also abgelaufene Zertifikate die im Active Directory veröffentlicht wurden, jetzt kann man natürlich jeden User der angemeckert wird durchgehen und die entsprechenden Zertifikate löschen, oder man verwendet das Script welches ich erstellt habe.
Um das Script auszuführen werden die Quest Active Directory Tools benötigt, die Tools können hier kostenlos runtergeladen werden:
http://www.quest.com/powershell/activeroles-server.aspx
außerdem muss die Exchange Management Shell auf dem Rechner installiert sein, der das Script ausführt.
Das Script erhöht das Diagnoselevel und startet dann eine Generierung des Offline Adressbuchs. Dann sucht es alle betroffenen Benutzer und entfernt die ungültigen Zertifikate, wenn gewünscht.
Grundsätzlich sollte das Script auch mit Exchange 2013 funktionieren, das habe ich allerdings noch nicht getestet.
Das Script gibt es hier zum Download:
[wpdm_file id=6]
Hallo Frank,
also auch in der QuestShell bekomme ich nur Fehler:
Set-EventLogLevel : The Event Source ‚MSExchangeSA‘ was not found.
At C:\Service\Clean-ExpiredCertificates.ps1:23 char:13
+ $loglevel = Set-EventLogLevel -Identity $generator -level medium
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (\MSExchangeSA\OAL Generator:ECIdParameter) [Set-EventLogLevel], DataSource
OperationException
+ FullyQualifiedErrorId : [Server=APP006,RequestId=b02d07ba-1d13-4782-b1e9-a2224952549a,TimeStamp=19.12.2018
12:05:13] [FailureCategory=Cmdlet-DataSourceOperationException] C10D6994,Microsoft.Exchange.Management.EventLogTas
ks.SetEventLogLevel
Starte OAB Generierung auf Server
Warte bis das OAB erzeugt wurde
Get-EventLog : Cannot validate argument on parameter ‚ComputerName‘. The argument is null or empty. Provide an
argument that is not null or empty, and then try the command again.
At C:\Service\Clean-ExpiredCertificates.ps1:31 char:44
+ $checkevent = Get-EventLog -ComputerName $oabserver -LogName Applic …
+ ~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-EventLog], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.GetEventLogCommand
Hast du eine Idee warum das so sein mag?
Vielen Dank
Guten Abend,
gibt es zu den Questtools evtl. einen neuen Link? Dieser im Beitrag scheint nicht mehr richtig zu sein.
Hallo Roland,
die Quest Tools gibt es mittlerweile so nicht mehr. Bei Gelegenheit werde ich das Script umbauen, damit die Quest Tools nicht mehr erforderlich sind. Hier gibt es die Tools noch zum Download:
https://www.powershelladmin.com/wiki/Quest_ActiveRoles_Management_Shell_Download
Gruß,
Frank
Hallo Frank,
ich erhalte diese Meldungen:
Get-EventLog : Keine Übereinstimmungen gefunden.
Bei C:\users\xxxxxxxGLOBAL\desktop\Clean-ExpiredCertificates.ps1:50 Zeichen:24
+ $events = Get-EventLog <<<< -ComputerName $oabserver -LogName Application -InstanceId 2147492971 -after $now
+ CategoryInfo : ObjectNotFound: (:) [Get-EventLog], ArgumentException
+ FullyQualifiedErrorId : GetEventLogNoEntriesFound,Microsoft.PowerShell.Commands.GetEventLogCommand
In einem NULL-Array kann kein Index erstellt werden.
Bei C:\users\xxxxxxxxxGLOBAL\desktop\Clean-ExpiredCertificates.ps1:53 Zeichen:36
+ $user = $event.ReplacementStrings[ <<<< 0]
+ CategoryInfo : InvalidOperation: (0:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
Get-QADUser : Invalid identity
Bei C:\users\xxxxxxxGLOBAL\desktop\Clean-ExpiredCertificates.ps1:54 Zeichen:29
+ $expiredcerts = Get-QADUser <<<< "$user" | Get-QADCertificate -Valid:$false
+ CategoryInfo : NotSpecified: (:) [Get-QADUser], Exception
+ FullyQualifiedErrorId : Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets.GetUserCmdlet
Guten Morgen,
nettes Tool was sicherlich hilfreich ist, jedoch erhalte ich folgende Fehler nach „OAB Generierung ist abgeschlossen [in grün]“:
Get-EventLog : Keine Übereinstimmungen gefunden.
…..
[ : In einem NULL-Array kann kein Index erstellt werden.
….
Get-QADUser : Die Benennung „Get-QADUser“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder
es ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
halten), und wiederholen Sie den Vorgang. …..
Irgend eine Idee?
Hallo,
Du musst wie im Artikel beschrieben die Quest Tools runterlaufen und installieren, dann das Script aus der Quest Shell ausführen.
Gruß, Frank