global vorbelegen wie Kontakte in Outlook Adresslisten gespeichert werden

Die Outlook Adresslisten funktionieren am besten, wenn die Datensätze (Kontakte) im gleichem Syntax abgespeichert werden.

Hierbei kann es z.B. Sinnvoll sein, wenn ein der Syntax für das Feld „Speichern unter“ und „anzeigen als“ wie in Abbildung global vorbelegt wird.

Um dies für den eigenen PC oder für einen Terminalserver festzulegen gibt es Makros, welche über Outlook die Registrie des Systems anpassen, so das der Syntax vorbelegt wird.

Das Makro für „Speichern unter“ :

Public Sub ChangeFileAs()
    Dim objOL As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Dim objContact As Outlook.ContactItem
    Dim objItems As Outlook.Items
    Dim objContactsFolder As Outlook.MAPIFolder
    Dim obj As Object
    Dim strFileAs As String
    Dim myRegKey As String
    Dim myValue As String
    Dim myFileAs As String
    Dim myAnswer As Integer
    
On Error Resume Next

  ' get registry key to work with
  ' change the Outlook version # to match your version
  myRegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Contact\FileAsOrder"
  If myRegKey = "" Then Exit Sub
  'check if key exists
  If RegKeyExists(myRegKey) = True Then
    'key exists, read it
    myValue = RegKeyRead(myRegKey)
    If myValue = 14870 Then myFileAs = "Company"
    If myValue = 32791 Then myFileAs = "Last, First"
    If myValue = 32792 Then myFileAs = "Company (Last, First)"
    If myValue = 32793 Then myFileAs = "Last, First (Company)"
    If myValue = 32823 Then myFileAs = "First Last"
   
    
    'display result and ask if it should be changed
    myAnswer = MsgBox("The registry value for the key """ & _
               myRegKey & """is """ & myFileAs & vbCrLf & _
               "Do you want to change it?", vbYesNo)
  Else
    'key doesn't exist, ask if it should be created
    myAnswer = MsgBox("The registry key """ & myRegKey & _
               """ could not be found." & vbCr & vbCr & _
               "Do you want to create it?", vbYesNo)
  End If
  If myAnswer = vbYes Then
    'ask for new registry key value

    myValue = InputBox("Please enter new value: " & vbCrLf & _
    "14870 = Company" & vbCrLf & _
    "32791 = Last, First" & vbCrLf & _
    "32792 = Company (Last, First)" & vbCrLf & _
    "32793 = Last, First (Company)" & vbCrLf & _
    "32823 = First Last", myRegKey, myValue)
    If myValue <> "" Then
      RegKeySave myRegKey, myValue
      MsgBox "Registry key saved."
    End If    
  Else
  End If

' now that we've got the value of the default setting,
' we use it to set the value so all contacts are the same
    Set objOL = CreateObject("Outlook.Application")
    Set objNS = objOL.GetNamespace("MAPI")
    Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
    Set objItems = objContactsFolder.Items

    For Each obj In objItems
        'Test for contact and not distribution list
        If obj.Class = olContact Then
            Set objContact = obj

            With objContact

    If myValue = 14870 Then strFileAs = .CompanyName '"Company"
    If myValue = 32791 Then strFileAs = .LastNameAndFirstName '"Last, First"
    If myValue = 32792 Then strFileAs = .CompanyAndFullName '"Company (Last, First)"
    If myValue = 32793 Then strFileAs = .FullNameAndCompany '"Last, First (Company)"
    If myValue = 32823 Then strFileAs = .FullName '"First Last"

               .FileAs = strFileAs

                .Save
            End With
        End If

        Err.Clear
    Next

    Set objOL = Nothing
    Set objNS = Nothing
    Set obj = Nothing
    Set objContact = Nothing
    Set objItems = Nothing
    Set objContactsFolder = Nothing
End Sub

'reads the value for the registry key i_RegKey
'if the key cannot be found, the return value is ""
Function RegKeyRead(i_RegKey As String) As String
Dim myWS As Object

  On Error Resume Next
  'access Windows scripting
  Set myWS = CreateObject("WScript.Shell")
  'read key from registry
  RegKeyRead = myWS.RegRead(i_RegKey)
End Function

'sets the registry key i_RegKey to the
'value i_Value with type i_Type
'if i_Type is omitted, the value will be saved as string
'if i_RegKey wasn't found, a new registry key will be created
Sub RegKeySave(i_RegKey As String, _
               i_Value As String, _
      Optional i_Type As String = "REG_DWORD")
Dim myWS As Object

  'access Windows scripting
  Set myWS = CreateObject("WScript.Shell")
  'write registry key
  myWS.RegWrite i_RegKey, i_Value, i_Type

End Sub

'returns True if the registry key i_RegKey was found
'and False if not
Function RegKeyExists(i_RegKey As String) As Boolean
Dim myWS As Object

  On Error GoTo ErrorHandler
  'access Windows scripting
  Set myWS = CreateObject("WScript.Shell")
  'try to read the registry key
  myWS.RegRead i_RegKey
  'key was found
  RegKeyExists = True
  Exit Function
  
ErrorHandler:
  'key was not found
  RegKeyExists = False
End Function

Quelle 2017-03-08: https://www.slipstick.com/developer/bulk-change-fileas-format-contacts-default/

Das Makro für „anzeigen als“ :

Public Sub ChangeEmailDisplayName()
    Dim objOL As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Dim objContact As Outlook.ContactItem
    Dim objItems As Outlook.Items
    Dim objContactsFolder As Outlook.MAPIFolder
    Dim obj As Object
    Dim strFirstName As String
    Dim strLastName As String
    Dim strFileAs As String

    On Error Resume Next

    Set objOL = CreateObject("Outlook.Application")
    Set objNS = objOL.GetNamespace("MAPI")
    Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
    Set objItems = objContactsFolder.Items

    For Each obj In objItems
        'Test for contact and not distribution list
        If obj.Class = olContact Then
            Set objContact = obj

          With objContact
    
          If .Email1Address <>"" Then
            ' Uncomment the  strFileAs line for the desired format
            ' Add the email address to any string using
            ' the following code:
            ' & " (" & .Email1Address & ")"
                 
             'Firstname Lastname (email address) format
             ' strFileAs = .FullName & " (" & .Email1Address & ")"
                
             'Lastname, Firstname format
              strFileAs = .LastNameAndFirstName
                
             'Company name (email address) format
             ' strFileAs = .CompanyName & " (" & .Email1Address & ")"
                 
             'Comapany Firstname Lastname (email address) format
             'the display name will have a leading space if
             'the contact doesn't have a company name
             'strFileAs = .CompanyName & " " & .FullName & " (" & .Email1Address & ")"
                

             'File As format
             'Does not support Company (Fullname) format. 
             'Only Company name is used in the display name
             'strFileAs = .FileAs
                
             .Email1DisplayName= strFileAs

             .Save
           End If
          End With
        End If

        Err.Clear
    Next

    Set objOL = Nothing
    Set objNS = Nothing
    Set obj = Nothing
    Set objContact = Nothing
    Set objItems = Nothing
    Set objContactsFolder = Nothing
End Sub

Quelle 2017-03-08: https://www.slipstick.com/outlook/contacts/bulk-change-outlook-contacts-email-display-name-format/

Ich habe beide Makro erfolgreich anwenden können.

Viel Spaß und vergesst nicht das Backup davor!!!

Globale Adressliste portabel machen

die Globale Adresseliste des Exchange beinhaltet alle Kontakte der Firma und ist ausschließlich Online verfügbar.

Will man nun auch Offline (also außerhalb des Firmennetzwerk) auf die internen Kontakte zugreifen, so gibt es da einen kleinen Trick dafür.

Einfach die Kontakte aus dem GAL in die eigenen Kontakte einfügen wie in Abbildung

Globale Adresseliste

Quelle 2017-03-08 : https://www.slipstick.com/exchange/making-the-exchange-server-gal-portable/

Outlook Regeln – kann nicht in Microsoft Exchange hochgeladen werden und wurde deaktiviert

Beim anlegen und ausführen von Regeln in Microsoft Outlook 2013 erscheint folgende Fehlermeldung:

Mindestens eine Regel kann nicht in Microsoft Exchange hochgeladen werden und wurde deaktiviert

Abhilfe kann eine Anpassung der Mailbox Einstellungen auf dem Exchangeserver per Powershell bringen.

Mit der folgendem Befehl erfragen Sie die aktuelle Einstellung:

Get-Mailbox name@domain.com | fl rulesquota

Erhöhen Sie den Wert für die Regeln wie folgt:

Set-Mailbox name@domain.com -rulesquota 256KB

Exchange Server Version ermitteln und vergleichen

Bei der Fehlerbehebung eines Exchange Server ist es besser zu wissen mit wem man es zu tun hat, um eine gewisse Aussage oder/und Entscheidungen zu treffen.

Die Exchange Server Version mit Powershell ermitteln geht so:

Exchange Powershell Console öffnen und folgende Zeile ausführen

Get-ExchangeServer | ft name,AdminDisplayVersion -HideTableHeaders -AutoSize

Eine Übersicht der Exchange Server build numbers findet Ihr z.B. unter : https://buildnumbers.wordpress.com/exchange/

Defragmentieren einer Exchange-Server-Datenbank (edb) für Version 2010 und 2013

Beim löschen oder verschieben von Postfächern wird die Exchange Datenbank nicht automatisch kleiner. Um die Kapazität einer Datenbank wieder auf die reale Größe zu verkleinern muss die Datenbank eines Exchange Server defragmentieren werden.

hier eine Anleitung zur offline Defragmentierung des Informationsspeicher /EDB) eines Echange Server 2010 oder 2013

Defragmentiert wird eine Exchange-Server-Datenbank (edb) über die CMD mit dem Befehl eseutil. Dazu navigiert man in den „Bin„-Ordner der Exchange Installation. Dieser ist – wenn man den Pfad bei der Installation nicht abgeändert hat – wie folgt zu erreichen: c:\program files\microsoft\exchange server\bin

  1. Ermitteln des Namen der Datenbank die Defragmentiert werden soll

    z.B. durch PS Befehl: Get-MailboxDatabase -Status | ft name, databasesize

  2. Bereitstellung der Datenbank aufheben

    Exchange-Verwaltungskonsole > Serverkonfiguration > Postfach >korrekte DB markieren > Rechts unter „Aktionen“ auf „Bereitstellung der Datenbank aufheben“ klicken

  3. ESEUTIL über CMD ausführen

Wichtiger Hinweis:

Standardmäßig legt ESEUTIL.EXE die temporäre Datenbank auf C: ab.
Wenn C: zu klein ist, bricht ESEUTIL.EXE irgendwann ab.

Folgendes Szenario wird empfohlen

Mit dem Schalter d wird die ausgewählte Datenbank defragmentiert

Mit dem Schalter t wird der Ort für die temporäre Datenbank angepasst

Mit dem Schalter p wird die Original Datenbank nicht gleich gelöscht (wichtig falls der Prozess des defragmentieren fehlschlägt)

Beispiel des Command Befehl:

C:\Programme\Exchsrvr\bin\eseutil /D D:\Pfad zu Datenbank\Datenbank.edb /tD:\ Pfad zu Datenbank \ Datenbank_temp.edb /p

Nach erfolgreicher Defragmentierung die alte edb auf Datenbank_old.edb und die temporäre in Datenbank.edb umbenennen, wieder mounten (also einbinden oder bereitstellen) und ein Fullbackup fahren.

Erst danach die alte edb löschen.

Schätzungswert: bei einer 30GB großen Datenbank dauert der Defragmentierung-Vorgang ungefähr 30 Minuten

Die Abbildung zeigt den Defragmentierung-Prozess ohne Schalter /t und /p

eseutil

Alle Angaben sind ohne Gewähr. Also schön Backups vorher machen 😉

Shared Postfach bzw. Freigaben aus Exchange Online im Iphone einrichten

Hey Community …

Freigegebene Postfächer sind im Exchange Online (EO) lizenzfrei und momentan noch unbegrenzt. Den Sinn und die Installation sowie Konfiguration eines Freigegebenen Postfach möchte ich in diesem Beitrag nicht erklären. Sondern wie man dieses Postfach auch im Iphone abrufen kann.

folgende Voraussetzungen sollten bestehen:

  1. es gibt eine Freigegebenes Postfach

    Exchange Online Freigegebens Postfach
    Freigaben sind E-Mail Postfächer die keine Lizenz benötigen und wie ein Sammelpostfach funktionieren sollen
  2. Ihr kennt den Alias des Postfach’s

    Exchange-Online-Alias-Share
    Ein Alias für das Benutzerkonto muss angegeben werden, um den Teil der E-Mailadresse festzulegen, der vor dem @ Zeichen benutzt werden soll.
  3. Ihr habt „Vollzugriff“ und könnt „Senden als“ auf das Postfach

    Exchange-Online-Shared-ACL
    Zugriffsberechtigungen werden über die Postfachstellvertretung eingerichtet

richtet einen Mail Account über IMAP auf eurem Iphone mit folgenden Einstellung ein:

IMAP:
server: outlook.office365.com
username: my-personal-mailbox@my-domain.com/Alias des Postfach
password: personal-password
(if necessary: Port 993, SSL = ON and Password authentication)

SMTP:
server: smtp.office365.com
username: my-personal-mailbox@my-domain.com
password: personal-password
(if necessary: Port 587, SSL = ON and Password authentication)

Ich hoffe die Anleitung ist verständlich geschrieben … gutes gelingen.

@Nachtrag vom 2017-03-24

Beim Stöbern im Netz habe ich noch eine Anleitung gefunden die euch eventuell interessieren wird “ Einrichten einer Shared Mailbox Exchange 2013 auf einem iPhone