# Fix-MailboxGUID # - Searches für Usermailboxes without a Mailbox GUID and generates one # # Version 1.2 19 Sep 2008 # FIX: Vergleich # -ResultSize 10000 # Version 1.1 8 Sep 2008 # added unattened Mode and eventlogging # Version 1.0 8 Sep 2008 # first version #[bool]$unattend = $false # unattened Mode OFF [bool]$unattend = $false # unattened Mode ON write-host "Fix-MailboxGUID: Preparing environment" # Initialize Eventlog für reporting and Debugging $evt=new-object System.Diagnostics.EventLog("Application") $evt.Source="MSXFAQ.FixMailboxGUID" $infoevent=[System.Diagnostics.EventLogEntryType]::Information $warnevent=[System.Diagnostics.EventLogEntryType]::Warning $errorevent=[System.Diagnostics.EventLogEntryType]::Error $evt.WriteEntry("FixMailboxGUID started",$infoevent,0) $wshshell = new-object -comobject wscript.shell write-host "Fix-MailboxGUID: ---------- Loading Recipients" $recipients = Get-Recipient -RecipientType Usermailbox -ResultSize 10000 write-host "Fix-MailboxGUID: ---------- Processing Recipients" $recipients | foreach { $distinguishedname = $_.distinguishedname write-host " checking: $distinguishedname" $adsobject = [adsi]"LDAP://$distinguishedname" ; $ErrorActionPreference = "SilentlyContinue"; # hide errors $mailboxguid = ""; # Initialize variable $mailboxguid = $adsobject.get("msExchMailboxGuid"); $ErrorActionPreference = "Continue"; if ($mailboxguid.tostring() -eq ""){ write-host -BackgroundColor red " FIX Required !"; if ($unattend -or ($wshshell.popup("Update MailboxGuid at $distinguishedname ?",0,"Fix-MailboxGUID",4) -eq 6)) { $GUID = [guid]::NewGuid(); # generate GUID $adsobject.put("msExchMailboxGuid",$GUID.tobytearray()); $adsobject.setinfo(); write-host -backgroundcolor green ` -foregroundcolor black ` " Fixed GUID="$GUID.tostring(); $evt.WriteEntry("Fixed:$distinguishedname with $GUID" ,$infoevent,10) } else { write-host -backgroundcolor yellow ` -foregroundcolor black ` " SKIP GUID "$GUID.tostring(); $evt.WriteEntry("Skipped:$distinguishedname",$warnevent,11) } } } $evt.WriteEntry("FixMailboxGUID finished",$infoevent,1)