Sunday, February 05, 2012
Hallo zusammen,
Vor einiger Zeit habe ich mal ein VBS Script geschrieben, welches die PST Files im Outlook Profil erkennt und entfernen kann. Dieses Script kann beispielsweise ins Logonscript eingebaut werden.
Das entfernen von PST's funktioniert aber nur bei der ersten PST - sobald mehrere PST Dateien vorhanden sind, wird die schlaufe beim entfernen irgendwie verlassen - habe mich da aber nicht weiter darum gekümmert. Bin aber für Feedback dazu dankbar.
Ich habe also ein Outlook Profil mit zwei PST Dateien angelegt

Und so sieht das Script dann aus.





Diese Informationen können natürlich auch verwendet werden um ein Inventar der PST Dateien im Netzwerk anzulegen indem diese Infos im Loginscript erhoben werden und in ein File geschrieben werden.
'###############################################################################
'# Remove PST from Outlook
'# Uses Outlook to remove PST Files from Profile
'# 29.10.2011 Andres Bohren / www.icewolf.ch
'###############################################################################
Option Explicit
ListPST
ShowIdentity
Dim oWshShell
Set oWshShell = WScript.CreateObject("WScript.Shell")
'oWshShell.Popup "Removed PST Files from your Profile", 2, "RemovePST", 64
Public Sub ListPST()
'On Error resume next
Dim objOutlook 'As Outlook.Application
Dim Session 'As Outlook.NameSpace
Dim Store 'As Outlook.Store
Dim Stores 'As Outlook.Stores
Dim objFolder 'As Outlook.Folder
Dim Report 'As String
Dim strPrompt 'As String
Set objOutlook = CreateObject("Outlook.Application")
Set Session = objOutlook.Session
'Set Session2 = objOutlook.Session
Set Stores = Session.Stores
For Each Store In Stores
If Store.ExchangeStoreType = 3 then
Report = ""
Report = Report & Store.DisplayName & vbCrLf
Report = Report & "Location : " & Store.FilePath & vbCrLf
Report = Report & "Is Cached Exchange : " & Store.IsCachedExchange & vbCrLf
Report = Report & "Is Data File Store : " & Store.IsDataFileStore & vbCrLf
Report = Report & "Is Instant Search Enabled : " & Store.IsInstantSearchEnabled & vbCrLf
Report = Report & "Is Open : " & Store.IsOpen & vbCrLf
Report = Report & "Class : " & Store.Class & vbCrLf
Report = Report & "Exchange Store Type : " & Store.ExchangeStoreType & vbCrLf
Report = Report & "Store ID : " & Store.StoreID & vbCrLf & vbCrLf
msgbox "Report: " & Report
set objfolder = nothing
Set objFolder = store.GetRootFolder
strPrompt = "Remove PST file? " & Store.DisplayName & vbcrlf & Store.FilePath & vbcrlf & "Folder: " & objFolder
If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
Session.RemoveStore objFolder
End If
End If
Next
End Sub
Sub ShowIdentity
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
Msgbox "Hostname: " & WshNetwork.ComputerName & " User: " & WshNetwork.UserDomain & "\" & WshNetwork.UserName
End sub
Das VBS File kann auch heruntergeladen werden.
Grüsse
Andres Bohren

Hallo zusammen,
Das eseutil.exe Kommandozeilentool dient zur Überprüfung und Reparatur von Exchange Datenbanken. Für Exchange 2010 habe ich auf Technet keine spezielle Seite gefunden. Für Exchange 2007 gibts eineEseutil Technet Dokumentation.
Das Eseutil liegt im Exchange Programmverzeichnis
cd C:\Program Files\Microsoft\Exchange Server\V14\Bin
eseutil.exe /?

Check
Das Tool kann nur angewendet werden wenn die Datenbank dismounted ist. Ich habe deshalb mal die MDB03 dismouted und führe das Esetuil mit dem Parameter /mh aus um die Kopfzeilen der DB anzuzeigen.
eseutil.exe /mh [Path to Database]
eseutil.exe /mh D:\MDB03\MDB03.edb
Da die Datenbank normal dismounted wurde ist die DB im "Clean Shutdown" state.

Wir können nun mit dem Parameter /ml die Logfiles Prüfen.
eseutil /ml D:\MDB03\[Logprefix]]
eseutil /ml D:\MDB03\E03
In diesem Fall ist alles okay - alle Logfiles wurden gefunden.

Löschen wir doch mal das Logfile E0300000087.log und führen den Logfile Check nochmals aus
eseutil /ml D:\MDB03\E03
Das Fehlende Logfile wird also erkennt.

Es ist auch möglich die Kopfdaten des .chk Files anzuzeigen
eseutil /mk [Path to chk File]
eseutil /mk D:\MDB03\E03.chk

Recovery
Nachdem das fehlende Logfile wieder zurückkopiert ist, mache ich mal ein recovery. Das sollte aber nur im Falle eines Fehlers angewendet werden und nicht "nur so aus spass".
Eseutil /r <Log Prefix> /l [Path of the log files] /d [Path of the database]
Eseutil /r E03 /l D:\MDB03\ /d D:\MDB03\MDB03.edb

Repair
Ein Repair sollte nur dann ausgeführt werden, wenn die DB im "Dirty Shutdown" state und die Logfiles nicht mehr verfügbar sind. Ein Database Repair hat einen Datenverlust zur Folge - deshalb wird auch eine Warung ausgegeben.
Eseutil /p [Path to Database] /t [Path to Temporary Databasefile]
Eseutil /p D:\MDB03\MDB03.edb /t D:\MDB03\temp_MDB03.edb


Grüsse
Andres Bohren

Hallo zusammen,
Bei Exchange Server sind verschiedene Dateien für die Exchange Datenbanken beteiligt. Einge gute übersicht dazu gibts in diesem BuchExchange Server 2010 Administrator's Pocket Consultant Seite 77.

Im grossen und ganzen bestehen die Mailbox Datenbanken aus der Datenbank (database.edb) und den dazugehörigen Transaction Logs (E##.log, E##00000001.log...) sowie den Reserve Logfiles (E##00000001.log,...E##0000000A.log)
Im Windows Explorer sieht das dann so aus

Und hier die Beschreibungen der einzelnen Files
| Datei |
Funktion |
Beschreibung |
| E03.chk |
Checkpoint File |
In diesem File wird gespeichert, welche Transaktionen der Logfiles bereits commited sind. |
| E03.log |
Actual Exchange Logfile |
Aktuelle Transaktionen welche änderungen an der Datenbank vornehmen |
| E0300000001.log,E0300000002.log... |
Secundary Exchange Logfiles |
Weitere Logfiles werden erstellt. Es können bis zu einer Billion Logfiles zu einer Mailbox Datenbank erstellt werden. |
| E03res00001.jrs,...E03res0000A.jrs |
Reserve Logfiles |
Reserve Logfiles, falls das Log volläuft |
| E03tmp.log |
Temporary Logfile |
Temporäres Logfile |
| MDB03.edb |
Exchange Database |
Exchange Mailbox Datenbank |
| tmp.edb |
Tempory Transactions |
Temporärer Speicherplatz für Transaktionen |
Grüsse
Andres Bohren

Thursday, February 02, 2012
Hallo zusammen,
Wie im Juni angekündigt, wurde gestern auf dem Exchange Team Blog das PST Capture Tool vorgestellt. Das Tool kann hier heruntergeladen werden. Ebenfalls ist eine PST Capture Dokumentatation auf Technet verfügbar.
Architektur
Die Architektur ist Agentenbasiert. Sprich es gibt einen Server welcher mit den Agenten auf den Clients kommuniziert um die PST Dateien zu suchen und auf den PST Capture Server zu übertragen.

PST Capture Server
Prerequisits auf dem PST Capture Server
- Dotnet 3.5
- Outlook 2010 x64
- Serviceaccount ist Local Mitglied der lokalen Administratoren Gruppe auf dem PST Capture Server
- Der Serviceaccount hat eine Mailbox
- Serviceaccount ist Mitglied der Rolle "Public Folder Management"

Der Serviceaccount muss in die Lokale Administratoren Gruppe des PST Capture Servers hinzugefügt werden

Der Serviceaccount muss eine Mailbox haben

Der Serviceaccount muss zur Rolle "Public Folder Management" hinzugefügt werden.

Installation PST Capture Server
Hier die Screenshots des PST Capture Servers





Installation PST Capture Agent
Hier die Screenshots des PST Capture Agents





Den Client kann man auch Silent installieren
msiexec /i \\<share>\PSTCaptureAgent.msi /q CENTRALSERVICEHOST=<server> SERVICEPORT=6674
Die Konfiguration wird in der Registry abgelegt
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\PST Capture\DiscoveryAgent]
"CentralServiceHost"="icesrv04.corp.icewolf.ch"
"CentralServicePort"=dword:00001a12
"CheckConfigInterval"=dword:0000003c

Outlook mit PST
In Outlook habe ich nun ein PST erstellt

Das sieht dann etwa so aus

PST Capture Console
Und das ist nun die PST Capture Console

Es lohnt sich sicher einen Blick auf Tools --> Settings zu werfen




Nun suchen wir mal nach PST's. Computer welche den Agenten installiert haben, erkennt man am grünen Bildschirm.

Es können nur lokale Disks durchsucht werden. Falls PST's auf Fileservern liegen, soll gemäss Microsoft der Agent auch auf dem Fileserver installiert werden.


Die PST Datei wurde gefunden, nun kann man diese zur Import List hinzufügen.

In der Importlist muss noch die Mailbox zugewiesen werden


Nun kann der PST Import beginnen

Wenn Outlook läuft, wird die PST Datei von Outlook verwendet und kann nicht kopiert werden.

Voila, der Import hat nun geklappt

Wie man sieht, ist im Postfach nun ein Ordner "Persönliche Ordner" vorhanden. Leider wird in Outlook die PST Datei nicht abgehängt oder gelöscht, so kann der Benutzer die PST Datei also weiterhin verwenden - das finde ich bei einer Agentenbasierten Architektur echt nicht sexy!

Grüsse
Andres Bohren

Saturday, January 28, 2012
Hallo zusammen,
Resource Kalender wie beispielsweise Räume stellen bei einer Migration eine besondere Herausforderung dar. Exchange erlaubt nämlich nur Terminanfragen derselben Exchange Organisation.
Listigerweise gibt es einen Paramenter "ProcessExternalMeetingMessages" im Set-CalendarProcessing cmdlet welcher wie folgt beschrieben ist:
The ProcessExternalMeetingMessages parameter specifies whether to process meeting requests that originate outside the Exchange organization. If set to $false, meeting requests that originate outside of the organization are rejected. Valid input for this parameter is $true or $false.
Ist aber für die Katz - egal ob auf True oder False gesetzt - Exchange beantwortet keine Meeting Requests von extern! Und damit Basta!
Damit das doch geht müssen gemäss meinen Recherchen folgende Dinge erfüllt sein:
- Der Receive Connector auf Exchange 2010 muss auf "Externally Secured" stehen
- Es muss ein Contact Object mit der Emailadresse des Meeting Requesters im AD existieren
Sind diese beiden Anforderungen nicht erfüllt, erhält der Absender keine zu- oder Absage

Receive Connector
Der dem Receive Connector muss mit "Externally Secured" stehen.

Bei den Permission Groups müssen "Anonymous Users" und "Exchange Servers" ausgewählt sein.

Durch das setzen von "Externally Secured" werden folgende Extended Rights auf dem Receive Connector gesetzt.
Get-ReceiveConnector -Identity ICESRV01\TestReceiveConnector | Get-ADPermission | where {$_.User -like "NT AUTHORITY\ANONYMOUS LOGON"} | select user, ExtendedRights

Send Connector
Der Send Connector ist "hundsgewöhnlich" einfach Target IP...

...und Address Space sind gesetzt.

Contact Object
Im Active Directory wo die Room Mailbox steht, habe ich ein Mail Enabled Contact Object mit der Emailadresse des Users gemacht, welche den Meeting Request versendet.

Resource Booking Attendant
Auf der Room Mailbox ist der "Resource Booking Attendant" gesetzt und das Automate Processing auf "AutoAccept" gesetzt.

Testing
Nun kanns losgehen, der User "Source01" aus der Domain "source.internal" bucht den Raum "SitzungszimmerEiger" in der Domain corp.icewolf.ch

Ändert den Typ auf Resource (geht aber auch als normaler Teilnehmer)

Und versendet die Besprechungsanfrage....

Et voila, die Terminanfrage wird angenommen.

Fazit
Forestübergreifendes bzw. Exchange Organisation übergreifendes Resource Booking ist möglich. Allerdings ist der Aufwand mit gegenseitigen Contacts und speziellen ReceiveConnector Settings nicht ganz ohne.
Ausserdem ist der Parameter "ProcessExternalMeetingMessages" für die Katz - das hat bei mir nicht funktioniert. Aus meiner Sicht ist es also nicht möglich Räume von Extern (vom Internet) her zu Buchen - ausser ich mache jedesmal ein Contact Object - aber das ist ziemlich "bäääää"
Grüsse
Andres Bohren

Hallo zusammen,
Bei kurzen Verbindungsunterbrüchen zwischen Outlook und Exchange informiert Outlook den Benutzer darüber, dass sich der Status der Konnektivität geändert hat. Das sieht dann etwa so aus. Dies kann Beispielsweise vorkommen, wenn die aktive Datenbank auf Exchange in einem DAG auf einen anderen Server verschoben wird.


Dies Ballon PopUps kann man in Outlook aber auch deaktivieren. Einfach mit der rechten Maustaste in der Statusleiste auf das Outlook Icon klicken und die Option "Änderung in Netzwerkkonnektivität anzeigen" deaktivieren.

Dabei wird der folgende Registry Key geändert:
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Display Types\Balloons\NetConn
"NetConn"=dword:00000000 --> bedeutet dass die Benachrichtigung deaktiviert ist
"NetConn"=dword:00000001 --> bedeutet dass die Benachrichtigung aktiviert ist

Grüsse
Andres Bohren

Hallo zusammen,
Neulich habe ich mich gefragt, was denn passiert wenn man bei Exchange 2003 einer Verteilerliste eine Email Adresse hinzufügt.
Um das herauszufinden habe ich vor und nach der Aktion mit LDIFDE einen Export der Attribute gemacht und anschliessend verglichen. Wie das geht ist hier beschrieben http://blog.icewolf.ch/archive/2009/11/19/export-active-directory-objects-ldifdecsvde.aspx



Es stellt sich raus, dass nur die markierten Attribute neu gesetzt sind, welche vorher nicht vorhanden waren. Unter Exchange 2000/2003 sorgt dann der RUS dafür, dass der Empfänger oder die Verteilerliste eine Emailadresser erhält.
dn: CN=testdist10,OU=TEST,DC=source,DC=internal
changetype: add
objectClass: top
objectClass: group
cn: testdist10
distinguishedName: CN=testdist10,OU=TEST,DC=source,DC=internal
instanceType: 4
whenCreated: 20120119100143.0Z
whenChanged: 20120119100447.0Z
displayName: testdist10
uSNCreated: 172063
uSNChanged: 172066
reportToOriginator: TRUE
mailNickname: testdist10
name: testdist10
objectGUID:: hvlAd7yg7U+z2kapknhFAA==
objectSid:: AQUAAAAAAAUVAAAAbHrzN+wlLu10EFmDcwQAAA==
sAMAccountName: testdist10
sAMAccountType: 268435457
legacyExchangeDN:
/o=First Organization/ou=First Administrative Group/cn=Recipients/cn=testdist10
groupType: 8
objectCategory: CN=Group,CN=Schema,CN=Configuration,DC=source,DC=internal
Es ist also ganz leicht mit dem Attribut Editor oder mit ADSI Edit eine Verteilerliste für Email einzurichten.
Achtung:
Ab Exchange 2007/2010 funktioniert dieses Verfahren nicht mehr - weil es gar keinen RUS (Recipient Update Service) mehr gibt.
Grüsse
Andres Bohren

Hallo zusammen,
Eigentlich dachte ich, dass der Export and Import von AD Objekten mit LDIFDE ganz einfach ist. Nun, es gibt da schon ein paar Kniffe die man kennen muss.
Die Parameter von ldifde.exe sind hier beschrieben: http://technet.microsoft.com/en-us/library/cc758935(WS.10).aspx
Zur demonstration, habe ich eine OU "Contacts" mit zwei Kontakten drin.

Der Contact "Lucky Luke" ist Mitglied der Verteilerliste "TestDist"

Export
Nun mache ich den Export mit lidfde. Einmal mit der Option "-m" welches die Systemattribute nicht exportiert.
ldifde.exe -f C:\ldifde\contacts1.txt -d "OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch" -s icesrv02.corp.icewolf.ch -p SubTree
ldifde.exe -f C:\ldifde\contacts2.txt -d "OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch" -s icesrv02.corp.icewolf.ch -p SubTree -m

Contacts1.txt
dn: OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: add
objectClass: top
objectClass: organizationalUnit
ou: Contacts
distinguishedName: OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
instanceType: 4
whenCreated: 20120128152759.0Z
whenChanged: 20120128152814.0Z
uSNCreated: 4309132
uSNChanged: 4309132
name: Contacts
objectGUID:: KjETVYzouEu58R1zq4zqqA==
objectCategory:
CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=corp,DC=icewolf,DC=ch
dSCorePropagationData: 16010101000000.0Z
dn: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: contact
cn: Joe Black
sn: Black
l: GW
title: Vice
postalCode: 3818
physicalDeliveryOfficeName: 011
telephoneNumber: +41
facsimileTelephoneNumber: +41
givenName: Joe
distinguishedName: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
instanceType: 4
whenCreated: 20120128152759.0Z
whenChanged: 20120128152814.0Z
displayName: Joe Black
uSNCreated: 4309133
info: sd
uSNChanged: 4309136
department: SC
company: Comp
proxyAddresses: SMTP:joe.black@internet.com
proxyAddresses: smtp:Joe.Black@icewolf.ch
proxyAddresses: smtp:joeblack@corp.icewolf.ch
streetAddress: street
targetAddress: SMTP:joe.black@internet.com
extensionAttribute1: 1
extensionAttribute2: 2
extensionAttribute3: 3
extensionAttribute4: 4
extensionAttribute5: 5
extensionAttribute6: 6
extensionAttribute7: 7
extensionAttribute8: 8
extensionAttribute9: 9
extensionAttribute10: 10
mailNickname: joeblack
wWWHomePage: www
internetEncoding: 1310720
extensionAttribute11: 11
extensionAttribute12: 12
extensionAttribute13: 13
extensionAttribute14: 14
extensionAttribute15: 15
name: Joe Black
objectGUID:: 1ZnvCizZPk+8jh7RoEuBoQ==
showInAddressBook:
CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Co
ntainer,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configurati
on,DC=corp,DC=icewolf,DC=ch
showInAddressBook:
CN=All Contacts,CN=All Address Lists,CN=Address Lists Container,CN=First Organ
ization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=corp,DC=icewolf,
DC=ch
legacyExchangeDN:
/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Re
cipients/cn=Joe Blackd1e
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=corp,DC=icewolf,DC=ch
dSCorePropagationData: 16010101000000.0Z
mail: joe.black@internet.com
manager: CN=boa,OU=Icewolf Users,DC=corp,DC=icewolf,DC=ch
homePhone: +41
mobile: +41
pager: +41
msExchPoliciesIncluded: {26491cfc-9e50-4857-861b-0cb8df22b5d7}
msExchPoliciesIncluded: f79e9dae-1068-4f9a-825a-8e0093b0f0b3
msExchUMDtmfMap: firstNameLastName:56325225
msExchUMDtmfMap: lastNameFirstName:25225563
msExchUMDtmfMap: emailAddress:56325225
msExchUMDtmfMap: reversedPhone:14+
msExchRecipientDisplayType: 6
msExchVersion: 44220983382016
dn: CN=Luke Lucky,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: contact
cn: Luke Lucky
sn: Lucky
givenName: Luke
distinguishedName:
CN=Luke Lucky,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
instanceType: 4
whenCreated: 20120128152800.0Z
whenChanged: 20120128152814.0Z
displayName: Lucky, Luke
uSNCreated: 4309134
memberOf: CN=TestDist,OU=TestOU,DC=corp,DC=icewolf,DC=ch
uSNChanged: 4309134
proxyAddresses: SMTP:lucky@internet.com
proxyAddresses: smtp:Luke.Lucky@icewolf.ch
proxyAddresses: smtp:lukelucky@corp.icewolf.ch
targetAddress: SMTP:lucky@internet.com
mailNickname: lukelucky
internetEncoding: 1310720
name: Luke Lucky
objectGUID:: PqwQqsQdy0GTzQCxBXum5A==
showInAddressBook:
CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Co
ntainer,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configurati
on,DC=corp,DC=icewolf,DC=ch
showInAddressBook:
CN=All Contacts,CN=All Address Lists,CN=Address Lists Container,CN=First Organ
ization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=corp,DC=icewolf,
DC=ch
legacyExchangeDN:
/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Re
cipients/cn=Luke Lucky876
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=corp,DC=icewolf,DC=ch
dSCorePropagationData: 16010101000000.0Z
mail: lucky@internet.com
msExchPoliciesIncluded: {26491cfc-9e50-4857-861b-0cb8df22b5d7}
msExchPoliciesIncluded: f79e9dae-1068-4f9a-825a-8e0093b0f0b3
msExchUMDtmfMap: firstNameLastName:585358259
msExchUMDtmfMap: lastNameFirstName:582595853
msExchUMDtmfMap: emailAddress:58259
msExchRecipientDisplayType: 6
msExchVersion: 44220983382016
Contacts2.txt
dn: OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: add
distinguishedName: OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
dSCorePropagationData: 16010101000000.0Z
instanceType: 4
name: Contacts
objectCategory:
CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=corp,DC=icewolf,DC=ch
objectClass: top
objectClass: organizationalUnit
ou: Contacts
uSNChanged: 4309132
uSNCreated: 4309132
whenChanged: 20120128152814.0Z
whenCreated: 20120128152759.0Z
dn: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: add
cn: Joe Black
company: Comp
department: SC
displayName: Joe Black
distinguishedName: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
dSCorePropagationData: 16010101000000.0Z
extensionAttribute1: 1
extensionAttribute10: 10
extensionAttribute11: 11
extensionAttribute12: 12
extensionAttribute13: 13
extensionAttribute14: 14
extensionAttribute15: 15
extensionAttribute2: 2
extensionAttribute3: 3
extensionAttribute4: 4
extensionAttribute5: 5
extensionAttribute6: 6
extensionAttribute7: 7
extensionAttribute8: 8
extensionAttribute9: 9
facsimileTelephoneNumber: +41
givenName: Joe
homePhone: +41
info: sd
instanceType: 4
internetEncoding: 1310720
l: GW
legacyExchangeDN:
/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Re
cipients/cn=Joe Blackd1e
mail: joe.black@internet.com
mailNickname: joeblack
mobile: +41
msExchPoliciesIncluded: {26491cfc-9e50-4857-861b-0cb8df22b5d7}
msExchPoliciesIncluded: f79e9dae-1068-4f9a-825a-8e0093b0f0b3
msExchRecipientDisplayType: 6
msExchUMDtmfMap: firstNameLastName:56325225
msExchUMDtmfMap: lastNameFirstName:25225563
msExchUMDtmfMap: emailAddress:56325225
msExchUMDtmfMap: reversedPhone:14+
msExchVersion: 44220983382016
name: Joe Black
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=corp,DC=icewolf,DC=ch
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: contact
pager: +41
physicalDeliveryOfficeName: 011
postalCode: 3818
proxyAddresses: SMTP:joe.black@internet.com
proxyAddresses: smtp:Joe.Black@icewolf.ch
proxyAddresses: smtp:joeblack@corp.icewolf.ch
sn: Black
streetAddress: street
targetAddress: SMTP:joe.black@internet.com
telephoneNumber: +41
title: Vice
uSNChanged: 4309136
uSNCreated: 4309133
whenChanged: 20120128152814.0Z
whenCreated: 20120128152759.0Z
wWWHomePage: www
dn: CN=Luke Lucky,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: add
cn: Luke Lucky
displayName: Lucky, Luke
distinguishedName:
CN=Luke Lucky,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
dSCorePropagationData: 16010101000000.0Z
givenName: Luke
instanceType: 4
internetEncoding: 1310720
legacyExchangeDN:
/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Re
cipients/cn=Luke Lucky876
mail: lucky@internet.com
mailNickname: lukelucky
msExchPoliciesIncluded: {26491cfc-9e50-4857-861b-0cb8df22b5d7}
msExchPoliciesIncluded: f79e9dae-1068-4f9a-825a-8e0093b0f0b3
msExchRecipientDisplayType: 6
msExchUMDtmfMap: firstNameLastName:585358259
msExchUMDtmfMap: lastNameFirstName:582595853
msExchUMDtmfMap: emailAddress:58259
msExchVersion: 44220983382016
name: Luke Lucky
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=corp,DC=icewolf,DC=ch
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: contact
proxyAddresses: SMTP:lucky@internet.com
proxyAddresses: smtp:Luke.Lucky@icewolf.ch
proxyAddresses: smtp:lukelucky@corp.icewolf.ch
sn: Lucky
targetAddress: SMTP:lucky@internet.com
uSNChanged: 4309134
uSNCreated: 4309134
whenChanged: 20120128152814.0Z
whenCreated: 20120128152800.0Z
dn: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: modify
add: showInAddressBook
showInAddressBook:
CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Co
ntainer,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configurati
on,DC=corp,DC=icewolf,DC=ch
-
dn: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: modify
add: showInAddressBook
showInAddressBook:
CN=All Contacts,CN=All Address Lists,CN=Address Lists Container,CN=First Organ
ization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=corp,DC=icewolf,
DC=ch
-
dn: CN=Joe Black,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: modify
add: manager
manager: CN=boa,OU=Icewolf Users,DC=corp,DC=icewolf,DC=ch
-
dn: CN=Luke Lucky,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: modify
add: showInAddressBook
showInAddressBook:
CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Co
ntainer,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configurati
on,DC=corp,DC=icewolf,DC=ch
-
dn: CN=Luke Lucky,OU=Contacts,OU=TestOU,DC=corp,DC=icewolf,DC=ch
changetype: modify
add: showInAddressBook
showInAddressBook:
CN=All Contacts,CN=All Address Lists,CN=Address Lists Container,CN=First Organ
ization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=corp,DC=icewolf,
DC=ch
-
Import
Nach dem Löschen der Contacs und der OU versuchen wir nun die Objekte wieder zu importieren.
ldifde.exe -i -f C:\ldifde\contacts1.txt -s icesrv01.corp.icewolf.ch -j C:\ldifde

Tja, das war dann wohl nichts...

Nun versuchen wir es mal mit dem Export ohne die Systemattribute
ldifde.exe -i -f C:\ldifde\contacts1.txt -s icesrv02.corp.icewolf.ch -j C:\ldifde

Der Import hat zwar geklappt, aber die Mitgliedschaft in der Verteilerliste wurde nicht wiederhergestellt, weil das MemberOf nur in der contacts1.txt datei steht.
memberOf: CN=TestDist,OU=TestOU,DC=corp,DC=icewolf,DC=ch

Weitere Informationen:
Grüsse
Andres Bohren

Hallo zusammen,
Es gibt immer wieder Fragen zum Buchen von Ressourcen in Outlook und auch einige Tücken - wie der folgende Blog Artikel beweist.
Also wir machen eine neue Besprechungsanfrage

Und laden den Benutzer "boa" dazu ein und wählen aus der DropDown Liste den Raum aus (dahinter stecken ganz normale Room Mailboxen). Nun könnte man meinen, dass so auch der Raum für das Meeting reserviert wird. Wenn man aber auf "Terminplanungsassistent" klickt...

So sieht man, dass der Raum "SitzungszimmerEiger" nicht in der Liste ist. Also klick auf "Räume hinzufügen"...

den Raum auswählen

Äh ja, genau den Raum wollte ich ja buchen - ziemlich lustige Fehlermeldung :o)

Nun erhält der Raum auch eine Terminanfrage. Man beachte auch die unterschiedlichen Symbole bei den Teilnehmern.

Et voila, der Raum wurde gebucht (Sofern der "Resource Booking Attendand" der Room Resouce auf "AutoAccept" gesetzt ist)

Der Termin ist nun im SitzungszimmerEiger ersichtlich.

Grüsse
Andres Bohren

Thursday, January 19, 2012
Hallo zusammen,
Es gibt immer wieder Fragen zu den Berechtigungen von Mailboxen, beziehungsweise wie denn einzelne Ordner für andere Mitarbeiter freigegeben werden können.
Als Beispiel mal folgendes: Der User25 möchte seinen Ordner "ScharedFolder" im Posteingang freigegeben.

Die Berechtigung für den Ordner "SharedFolder" wird auf die Stufe2 für den User "Bohren, Andres" gesetzt. Man kann nur Benutzer auswählen, welche im Globalen Adressbuch sichtbar sind.

Wird einer der Standardfolder freigegeben, so kann mit "Ordner eines anderen Benutzers" öffnen

Die Standardfolder sind:
- Posteingang
- Aufgaben
- Journal
- Kalender
- Kontakte
- Notizen
- Posteingang

Wird die Mailbox als zusätzliches Postfach hinzugefügt...

...so gibt es eine Fehlermeldung - man kann nicht auf das Postfach, bzw. den "SharedFolder" zugreifen.


Damit das funktioniert, muss auf jeder Stufe mindestens die Leseberechtigung gegeben werden.

| Outlook Name |
Exchange |
Berechtigung |
| Postfach |
Top of Information Store |
Stufe 2 |
| Posteingang |
Posteingang |
Stufe 2 |
| SharedFolder |
SharedFolder |
Stufe 2 |
Durch diese Berechtigungen kann aber der User auch auf den Posteingang zugreifen.

Ändert man die Berechtigung auf den Ordner "Posteingang" auf die Berechtigungsstufe "Keine", so kann der andere Benutzer nur noch auf den Unterordner "SharedFolder" zugreifen...
| Outlook Name |
Exchange |
Berechtigung |
| Postfach |
Top of Information Store |
Stufe 2 |
| Posteingang |
Posteingang |
Keine |
| SharedFolder |
SharedFolder |
Stufe 2 |
...aber das erzeugt ziemlich viele Fehlermeldungen - ist also nicht empfohlen.

Mit den Exchange Management Tools kann man die Berechtigungen ebenfalls prüfen, jedoch nur mit der Exchange Management Shell (EMS)
Um die MAPI Berechtigungen vom "Top of Information Store" anzuzeigen kann folgender Befehl verwendet werden
Get-MailboxFolderPermission -Identity user25:\
Um die MAPI Berechtigungen vom Posteingang anzuzeigen kann folgender Befehl verwendet werden
Get-MailboxFolderPermission -Identity user25:\posteingang

Für Exchange Administratoren empfehle ich ExFolders.

Grüsse
Andres Bohren
