Posts mit dem Label Exchange 2010 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Exchange 2010 werden angezeigt. Alle Posts anzeigen

Donnerstag, 23. November 2017

Exchange Postfach Export bei ungleichem UPN zu Email Adresse

Hallo zusammen,

es kommt immer wieder vor, dass ein PST Postfach Export durchgeführt werden muss, bei dem der UPN nicht der Email Adresse entspricht. Gerade in einer cloudlastigen Zeit wird erwartet, dass der UPN der email Adresse entspricht um Benutzer beispielsweise ein single sign on für diverse Dienste anbieten zu können.

Warum nun dieses Script, es gab die Anforderung dass für eine Exchange Cross Forest Migration die Postfächer in PST Dateien exportiert wurden und diese dann automatisiert über ein Import Script in der Ziel Seite wieder importiert wurden. In der Zielseite wurde allerdings der UPN der Email Adresse gleichgesetzt. Das unten stehenden Script zieht sich nun anhand das AD Benutzer die Email Adresse und schreibt die Email Adresse in den Dateinamen rein um eine eindeutige Identifikation des Postfachs zu erhalten. Das Script funktioniert ab der Version Exchange 2010.

### PST Export für O365 Import bei unterschiedlichem UPN zu Email Adresse
#import-module activedirectory
#Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

$Workload = "Exchange"
$Archiv = "FALSE"
$TargetRootFolder = "/"
$Date = (Get-Date).ToString('MM-dd-yyyy-HH-mm-ss')
$BasePath = "\\servername\g$\archive"
$ExportPath = $BasePath +"PSTs-" +$Date + "\"
$OutputFile = $BasePath +"Mailbox-O365" +"-" +$Date +".csv"
$ResultSize = 1000 #"unlimited"
$FilesCSV = @()
$CSVImportPath = "c:\temp\Migrationsliste.csv"
$UPN = @()
$Mbxsrollout = @()

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
New-Item -ItemType directory -Path $ExportPath -ErrorAction SilentlyContinue

#get-mailbox -OrganizationalUnit $OU

#CSV (Es muss "Kein CSV" oder "CSV" aktiv sein! Nie Beide!)
$FilesCSV += Import-Csv $CSVImportPath
#$Mbxsrollout = $FilesCSV

$FilesCSV
#$FilesCSV.count

foreach ($object in $FilesCSV) {
#$WEA = $object.WindowsEmailAddress
write-host "$object.WindowsEmailAddress in Bearbeitung"
#$Mbxsset = Get-ADUser -Filter "UserPrincipalName -Eq '$WEA'" -Properties *
$Mbxsrollout += get-mailbox -Identity $object.WindowsEmailAddress
#$Mbxsrollout

}
#$Mbxsrollout | select *name*
#$Mbxsrollout.count
#$FilesCSV.count
#$Mbxsrollout.count
#$Mbxsrollout

$Files = $Mbxsrollout | Select-Object @{label="Workload";expression={$Workload}}, @{label="FilePath";expression={$FilePath}}, @{label="Name";expression={($_.WindowsEmailAddress.ToString() + ".pst")}}, @{label="Mailbox";expression={($_.PrimarySmtpAddress)}}, @{label="IsArchive";expression={($Archiv)}},@{label="TargetRootFolder";expression={($TargetRootFolder)}},@{label="SPFileContainer";expression={("")}},@{label="SPManifestContainer";expression={("")}},@{label="SPSiteUrl";expression={("")}}
$Files | Export-Csv $OutputFile -NoTypeInformation -Delimiter ","
#$Files

#Kein CSV (Es muss "Kein CSV" oder "CSV" aktiv sein! Nie Beide!)

#$Files = get-mailbox -ResultSize $ResultSize -OrganizationalUnit $OU | Select-Object @{label="Workload";expression={$Workload}}, @{label="FilePath";expression={$FilePath}}, @{label="Name";expression={($_.Name + ".pst")}}, @{label="Mailbox";expression={($_.PrimarySmtpAddress)}}, @{label="IsArchive";expression={($Archiv)}},@{label="TargetRootFolder";expression={($TargetRootFolder)}},@{label="SPFileContainer";expression={("")}},@{label="SPManifestContainer";expression={("")}},@{label="SPSiteUrl";expression={("")}}
#$Files | Export-Csv $OutputFile -NoTypeInformation -Delimiter ","
#$Files


foreach ($MB in $Files){
#[String]$MBName = $MB.Mailbox.local + "@" +$MB.Mailbox.Domain
#[String]$MBName = $MB.Mailbox.local + "@" +$MB.Mailbox.Domain
#[String]$MBName
#$MB.Mailbox
New-MailboxExportRequest -BadItemLimit 1000 -AcceptLargeDataLoss -mailbox $MB.Mailbox.ToString() -Domaincontroller %DomainController% -FilePath $ExportPath\$($MB.Name)
}

Write-Output "Der Pfad für den Folgeschritt Import lautet: " $ExportPath

Write-Output "`nDie zugehörige PST-Importzuordnungsdatei wurde hier abgelegt: " $OutputFile

#Skript erwartet bei CSV-Datei als Header: ("# " am Anfang beim Kopieren entfernen)
# #TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
# "WindowsEmailAddress"


viele Grüße, Jens

Freitag, 6. November 2015

BES5 / BES 10 Migration nach Exchange 2010 / Exchange 2013

Hallo zusammen,

im letzten Projekt hatten wir die Herausforderung Blackberry 5 und Blackberry 10 Benutzer von Exchange 2010 nach Exchange 2013 zu migrieren. Da dies alles in allem sehr zeitaufwendig und nervenaufreibend war möchte ich die gesammelten Erfahrungen gerne teilen...

Ausgangssituation:

X Benutzer auf BES5, die Postfächer liegen auf Exchange 2010 (Benutzerzugriff via Blackberry Technologie)
X Benutzer auf BES10, die Postfächer liegen auf Exchange 2010 (Benutzerzugriff via ActiveSync)
Der CAS Zugang ist bereits auf Exchange 2013 umgestellt, d.h. alle Benutzer egal ob das Postfach auf Exchange 2010 oder 2013 liegt greifen über die Exchange 2013er CAS Server auf die Mailboxen zu.

Ziel:

Alle Postfächer, egal ob BES5 oder BES10 nach Exchange 2013 migrieren ohne Auswirkungen auf die Endbenutzer (d.h. möglichst ohne Neu-Aktivierung der Geräte)
Im Anschluss Migration der BES5 und BES10 Benutzer nach BES 12

Vorgehensweise Blackberry 5:



Vorgehensweise Blackberry 10:
Blackberry 10 arbeitet direkt mit Active Sync so dass hier deutlich weniger Konfigurationsanpassungen durchgeführt werden müssen.

Auch der BES 10 hat ein konfiguriertes Profil welches im BAS unter „Blackberry Solution Management“ -> „Profiles“ -> „Manage Profiles“ -> Registerkarte „Email Profile Settings“ angepasst werden muss. Hier wird in aller Regel der Exchange 2010 CAS Server bzw. das CAS Server Array hinterlegt sein. Dies bedeutet, dass Postfächer welche bereits auf Exchange 2013 liegen den Service Blackberry problemlos weiter konsumieren können – dies gilt auch für Exchange 2010 Benutzer. Allerdings ist es nicht möglich das bereits migrierte Benutzer auf Exchange 2013 eine Enterprise Aktivierung durchführen können, da die URL auf Exchange 2010 zeigt. Die Umstellung auf das CAS2013 Array habe ich zum Abschluss der Postfachmigration von Exchange 2010 nach Exchange 2013 durchgeführt. Ab diesem Zeitpunkt funktioniert auch wieder Email Aktivierung für Blackberry 10 Geräte.


Viele Grüße, Jens

Montag, 10. August 2015

Kurz notiert: Export der Email Adressen einer bestimmten OU

Hallo zusammen,

mit diesem PowerShell Script ist es möglich alle Mailbox Benutzer einer bestimmten OU zu exportieren - genauer gesagt wird hier lediglich die primäre Email Adresse exportiert, was aber beliebig erweitert werden kann.

get-mailbox -OrganizationalUnit "OU-Name" -resultsize unlimited | select-object PrimarySmtpAddress | Export-Csv "C:\temp\User.csv" -NoTypeInformation -Delimiter ";"


Viele Grüße, Jens

Mittwoch, 3. September 2014

Blackberry Express 5.04 Migration nach Exchange 2013

Hallo zusammen,

in den vergangenen Wochen hatte ich leider ein paar graue Haar mehr bekommen, da doch einiges an Zeit und Nerven für die Blackberry Migration auf Exchange 2013 draufgegangen sind.

Erstmal zu Ausgangslage, eine bestehende Exchange 2010 Umgebung wird nach Exchange 2013 migriert, inkl. Blackberry Benutzer.

Eigentlich ganz einfach, jedoch stellt es sich so dar, dass Exchange 2013 mit seinen Clients nicht mehr MAPI spricht sondern direkt über EWS. Die Konfiguration so wie ich es bisher gekannt hatte hinsichtlich Blackberry funktioniert also so nicht mehr, Blackberry muss zwingend für die EWS Nutzung konfiguriert werden und das obwohl die MAPI Collaboration 1.2.1 Installation nach wie vor installiert werden muss.

Eine gute Installationsanleitung ist hier zu finden, http://ukblog.im-mobility.com/installing-blackberry-enterprise-server-504-mr2-microsoft-exchange-2013
Wir hatten MR04 installliert, dennoch fehlen noch wichtige Updates die so nicht mehr zur Verfügung stehen, die im Anschluss der Installation jedoch noch hinzugefügt und registriert werden muss. Die Dateien sind hier zu finden, https://www.dropbox.com/s/3kwksere6jy262w/BESUPDATE.zip  

Nun ja, wir hatten uns aufgrund der Masse der Postfächer auf Exchange 2010 darauf geeinigt, dass wir scheibchenweise migrieren. Vorab sei festgehalten, dass der BESADMIN entweder Exchange 2010 Benutzer oder Exchange 2013 Benutzer bedienen kann, Benutzer aus beiden Technologien kann der BES 5.04 Express Server nicht bedienen. Wir mussten somit einen zweiten BESADMIN namens BESADMIN2013 auf Exchange 2013 anlegen und sämtliche entsprechenden Berechtigungen vergeben. Anbei die Auflistung der Tasks, die hier durchgeführt werden mussten:

http://btsc.webapps.blackberry.com/btsc/viewdocument.do?externalId=KB33406&sliceId=2&cmd=displayKC&docType=kc&noCount=true&ViewedDocsListHelper=com.kanisa.apps.common.BaseViewedDocsListHelperImpl

http://btsc.webapps.blackberry.com/btsc/viewdocument.do?noCount=true&externalId=de-de-KB20157&cmd=displayKC&docType=kc

In der Registry unter HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem muss ein neuer String Value namens "RPCHTTPProxyMap_BES" erstellt werden, der Inhalt variiet natürlich von Installation zu Installation, wichtig ist jedoch die Schreibweise  *=https://[FrontEndPoolFQDN]

der DWORD LDAPSearch muss zwingend auf "0" stehen, [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Research In Motion\BlackBerry Enterprise Server\Agents] - sonst funktioniert das Device ganz genau 15min bis Blackberry im AD via LDAP Informationen abruft, die Blackberry nicht abrufen kann. 

Nachdem der ganze Aufwand betrieben worden war, funktionierte der Blackberry Dienst teilweise, d.h. der Mailfluss hatte einwandfrei funktioniert, jedoch Kalendereinträge vom Gerät aus und von Outlook aus brachten leider im Eventlog die folgenden Fehlermeldungen:

{test10@contoso.com} MAPIMailbox::MAPIMailbox - OpenMsgStore (0x8004011d) failed, MailboxDN=/o=Exchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=4344a0fe985348b7b5cd99c0abfa53c9-test1, ServerDN=/o=Exchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=44212887-eaa5-4500-b823-026e215e66b5@contoso.com/cn=Microsoft Private MDB

/o=Exchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=test@contoso.com} Synchronize() failed: ERR_FAIL, Tag=7642

Leider konnte mir der Blackberry Support auch nicht wirklich helfen, so dass ich so lange dran gesessen bin, bis ich endlich die Lösung hatte.

Wenn ein Benutzer unter Exchange 2010 angelegt wird, wir im AD parallel auch das Attribute legacyExchangeDN befüllt, dass dann ungefähr so aussieht, 
/o=Exchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=test@contoso.comfcc

Wenn ein Benutzer unter Exchange 2013 angelegt wird, wir im AD parallel auch das Attribute legacyExchangeDN befüllt, dass dann ungefähr so aussieht, 
/o=Exchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=8b24c44ab9804d2ea68e24c7be6d7895-test@

der Blackberry hatte ja auch immer genau das bemängelt, dass die Attribute nicht passen würden, allerdings ändert Exchange bei der Postfachmigration von Exchange 2010 nach Exchange 2010 nicht das Attribut legacyExchangeDN und genau das habe ich dann von Hand gemacht, anbei die Anleitung:


  • Migration der Postfächer von Exchange 2010 nach Exchange 2013
  • Migration der BES Benutzer via Blackberry Transporter
  • Zwischensicherung des legacyExchangeDN für den jeweiligen Benutzer und Inhalt von diesem Attribut löschen
  • In Exchange 2013 eine weitere Adresse, X500, dem Benutzer hinzufügen und die legacyExchangeDN Information hinzufügen (Hintergrund: wird dies nicht gemacht, können Benutzer auf Emails vor der Migration nicht mehr antworten und das wäre blöd)
  • Kontrolle des Felds legacyExchangeDN in ADSIEDIT, hier müsste nun die Exchange 2013 Schreibweise hinterlegt sind
  • Wechsel auf den Blackberry Server und unter C:\Program Files (x86)\Research In Motion\BlackBerry Enterprise Server\Utility in DOS "HandheldCleanup -u" ausführen
  • Im Anschluss ca. 15min warten und den Blackberry auf Herz und Nieren testen, wer schneller testen möchte startet den Blackberry Controller Dienst neu

Viele Grüße, Jens


Dienstag, 1. Juli 2014

massenhafte Änderung Alias, UPN und SAMAccountName via CSV (bulk change Alias)

Hallo zusammen,

mit diesem Script habe ich eine massenhafte Änderung an den AD Attributen ALIAS und UPN mittels csv Datei durchgeführt:

Import-Csv -Delimiter ‘;’ -Path C:\scripts\file.csv | ForEach-Object{Set-Mailbox $_.name -Alias $_.SAMAccountnameNEW}
Import-Csv -Delimiter ‘;’ -Path C:\scripts\file.csv | ForEach-Object{Set-Mailbox $_.name -SAMAccountName $_.SAMAccountnameNEW}
Import-Csv -Delimiter ‘;’ -Path C:\scripts\file.csv | ForEach-Object{Set-Mailbox $_.name -UserPrincipalName $_.UPN}


Im CSV Datei müssen die Spalten auch entsprechend = SAMAccountNameNEW benamst sein. Dieses Spalte ist meine Quelle für das Neusetzen des Alias.

Viele Grüße, Jens

Dienstag, 24. Juni 2014

Ausgabe aller aktivierten Active Sync User, die eine bestimmte Email Domäne als primäre SMTP Adresse hinterlegt haben

Hallo zusammen,

mit dem nachfolgenden Einzeiler werden alle Exchange Benutzer ausgegeben, die Active Sync aktiviert haben und eine spezielle Email Domäne in der PrimarySmtpAddress hinterlegt haben:

Get-CasMailbox -resultsize unlimited -Filter {ActiveSyncEnabled -eq $true} | where {$_.PrimarySmtpAddress -like "*@contoso.com"} | select-object name, PrimarySmtpAddress | Export-CSV c:\temp\output.csv -NoTypeInformation -encoding utf8


Viele Grüße, Jens

Mittwoch, 18. Juni 2014

Export aller Benutzer einer Email Adress Policy

Hallo zusammen,

mit diesem Zweizeiler habe ich mir alle Benutzer in eine CSV Datei exportiert, die einer bestimmten Exchange Email Address Policy zugewiesen sind, inkl. den LinkedMasterAccount noch mit dazu:

$filter = (Get-EmailAddressPolicy '%Name Email Address Policy%').RecipientFilter

Get-Recipient -RecipientPreviewFilter $filter | get-mailbox | Select-Object Name,PrimarySmtpAddress,samaccountname,linkedmasteraccount | Export-CSV c:\temp\output.csv -NoTypeInformation -encoding utf8


Viele Grüße, Jens

Mittwoch, 30. April 2014

Hello again - X500 Adressen

Hallo zusammen,

während Migrationen sind die X500 Adressen ein gern gesehener Gast. Gerade wenn Benutzer in einer andere Exchange Organisation,z.B. ins Hosting, umgezogen werden und manche andere User noch auf der on-premise Infrastruktur verweilen kann es dazu kommen dass interne Nachrichten nicht mehr zugestellt werden können. Dieser Benutzer verwenden hier, wie immer, ihren Outlook Cache um ihren Kollegen emails zuzustellen. Genau dann sind die X500 Adressen dann wieder doch wichtig. Die Email wird dann mit einem NDR quittiert. Anhand des NDR kann aber die X500 nachgebildet werden, um diese dem Benutzerobjekt wieder zu  hinterlegen:
Und so gehts:
Im NDR müsste folgende Zeile hinterlegt sein:
IMCEAEX-_O=EXCH_OU=EXCHANGE+20ADMINISTRATIVE+20GROUP+20+28FHSDHJF23GHYED+29_CN=RECIPIENTS_CN=RON+2EMayers@contoso.com

Nun gehts ran ans Umschreiben:
"_"  =  "/"
+20  = Leerzeichen
+28 und +29 sind ( und ) 
+2E ist ein " ."
Wenn alles geändert worden ist, sieht das Ergebnis wie folgt aus:
/O=EXCH/OU=EXCHANGE ADMINISTRATIVE GROUP (28FHSDHJF23GHYED)/CN=RECIPIENTS/CN=RON.Mayers@contoso.com

Viele Grüße, Jens

Mittwoch, 23. April 2014

Suchen eines speziellen Öffentlichen Ordners

Hallo zusammen, 

mit folgendem Befehl ist es möglich einen speziellen öffentlichen Ordner bzw. dessen Pfad zu lokalisieren: 

Get-PublicFolder -recurse -resultsize unlimited | where {$_.name –like "Test*"} | fl 

 Viele Grüße, Jens

Montag, 24. März 2014

Hallo zusammen,

ich hatte neulich eine Anforderung, alle unterschiedlichen Namen der Kalender auszugeben. In der Exchange Organisation wurden unterschiedliche Sprachversionen von Outlook verwendet, so dass auch die Ordner "Kalender", in Abhängigkeit der Länderauswahl einen anderen Namen hatte.

Daraufhin ist das unten stehenden Script entstanden:


$mailboxes = @(Get-Mailbox -ResultSize Unlimited)
$report = @()

foreach ($mailbox in $mailboxes)
{
    $inboxstats = Get-MailboxFolderStatistics $mailbox -FolderScope Calendar 

    $mbObj = New-Object PSObject
    $mbObj | Add-Member -MemberType NoteProperty -Name "Display Name" -Value $mailbox.DisplayName
    $mbObj | Add-Member -MemberType NoteProperty -Name "Calendar Name" -Value $inboxstats.name
    $report += $mbObj
}

$report


Das Ergebnis kann auch direkt in eine CSV Datei umgeleitet werden:

FolderNames.ps1 | Export-CSV Foldernames.csv

Viele Grüße Jens

Montag, 3. März 2014

Troubleshooting Exchange Federation

Hallo zusammen,

ich hatte die Tage ein Problem mit einer bereits eingerichteten und eigentlich funktionalen Exchange Federation für die Free/Busy Abfrage. Die Federation hatte schlicht von einem Tag auf den anderen Tag nicht mehr funktioniert.

Im ersten Schritt habe ich die Federation kontrolliert.
Jeder Federate muss auf seiner Seite die Federation kontrollieren, 
Test-FederationTrust -UserIdentity %eigene Email Adresse%

In einem der Federation wurden für einige Tests Fehler angezeigt:

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : FederationTrustConfiguration
Type       : Success
Message    : FederationTrust object in ActiveDirectory is valid.

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : FederationMetadata
Type       : Error
Message    : The federation trust doesn't contain the same certificates published by the security token service in its federation metadata.

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : StsCertificate
Type       : Success
Message    : Valid certificate referenced by property TokenIssuerCertificate in the FederationTrust object.

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : StsPreviousCertificate
Type       : Success
Message    : Valid certificate referenced by property TokenIssuerPrevCertificate in the FederationTrust object.

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : OrganizationCertificate
Type       : Success
Message    : Valid certificate referenced by property OrgPrivCertificate in the FederationTrust object.

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : TokenRequest
Type       : Success
Message    : Request for delegation token succeeded.

RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxx
Id         : TokenValidation
Type       : Error

Message    : Failed to validate delegation token.

Mittels dem Befehl Get-FederationTrust | Set-Federationtrust –RefreshMetaData wurden die s.g. Federation Metadaten aktualisiert und die Federation hatte wieder problemlos funktioniert.

viele Grüße, Jens

Freitag, 28. Februar 2014

Ausgabe Mitglieder einer Exchange Active Sync Richtlinie

Hallo zusammen,

anbei ein kleiner PowerShell Befehl mit dem alle Benutzer einer spezifischen ActiveSync Richtline in eine CSV Datei ausgegeben werden:

Get-CASMailbox -resultsize unlimited | where {$_.ActiveSyncMailboxPolicy -eq "Default"} | Select-Object Name | Export-Csv "C:\temp\Default.csv"

Viele Grüße, Jens

Mittwoch, 26. Februar 2014

Popups beim Zugriff auf öffentliche Ordner

Hallo zusammen,

ich hatte heute den Fall, dass auf einem Exchange System immer mal wieder die Outlook Benutzer mit lästigen Popups gegängelt worden sind



Es handelt sich hier um eine Exchange 2010 SP2 Umgebung, als Outlook kommt ein 2010 SP2 zum Einsatz. Was auch wiederum alles up2date ist und es hier keinen Ansatzpunkt gab. Im Backend kommen zwei HUB/CAS Server und zwei MBX Server zum Einsatz, alle vier Server sind ebenfalls auf Exchange 2010 SP2.

Die Popups kamen bei unterschiedlichen Benutzern bei unterschiedlichen Zugriffen, ein Muster war auf den ersten Blick nicht erkennbar.

Nachdem ich mir die CAS Server im speziellen Autodiscover genauer angeschaut hatte, ist mir aufgefallen dass einem der beiden CAS Server eine Einstellung fehlt:

set-AutodiscoverVirtualDirectory "CASServer1\Autodiscover (Default Web Site)" -InternalUrl https//cas.domain.de/autodiscover/autodiscover.xml

Dadurch dass die internalURL leer war und der NLB beim Zugriff immer wieder unterschiedliche Server den Benutzern zugewiesen hatte war das hier die Problemlösung.

Viele Grüße, Jens

Montag, 17. Februar 2014

Exchange Zertifikatsanzeige "The Certificate Status could ne be determinated because the Revocation check Failed"


Hallo zusammen,

ich bin heute über ein Zertifikat gestolpert welches auf den ersten Blick ungültig aussah.



Das Zertfikat ist aber mehr oder weniger in Ordnung und funktional - lediglich der Revocation Check konnte nicht durchgeführt werden. Der Zertifikat ist funktional, es können nur lediglich keine Dienste diesem Zertifikat zugewiesen werden.

Der Grund für dieses vermeintliche Problem liegt darin, dass der besagte Exchange Server keinen Zugriff auf das Internet hat und somit auch den Check nicht durchführen kann.

Weitere Infos gibt es hier:

Viele Grüße, Jens

Mittwoch, 7. August 2013

Erweiterte Ausgabe von Exchange Statistiken

Hallo zusammen,

wir hatten letzte Woche die Anforderung einige Statistiken aus dem Exchange herauszuholen, die ich im Folgenden gerne weitergeben möchte.

Export aller Mailboxen auf dem Exchange Server in die Datei C:\userstats.csv inkl. dem Vor- und Nachname und der Postfachgröße in MB

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select-Object @{Name="UserPrincipalName"; Expression={(Get-User $_.Identity.MailboxExchangeLegacyDn).UserPrincipalName}},@{Name="FirstName"; Expression={(Get-User $_.Identity.MailboxExchangeLegacyDn).FirstName}},@{Name="LastName"; Expression={(Get-User $_.Identity.MailboxExchangeLegacyDn).LastName}}, @{Name="TotalItemSize" ; Expression={$_.TotalItemSize.Value.ToMB()}} | Sort-Object -Property TotalItemSize -Descending | Export-CSV –Encoding ‘Unicode’ “c:\userstats.csv” –notype

Export aller Mailboxen inkl. ALLER Email Adressen die diesem Postfach zugeordnet sind. 

Get-Mailbox -ResultSize unlimited | select DisplayNAme, @{Name="EmailAddresses";Expression={$_.EmailAddresses}} |export-csv -path "C:\EmailAdresses.csv"


Export aller Verteilerlisten inkl. der Email Adresse der jeweiligen Verteilerliste und die Email Adressen / Namen der Mitglieder der Verteilerlisten

write-output “” > C:\outputDGmembers.txt
get-distributiongroup | Sort -Property DisplayName | foreach {
$name = $_.displayname
$Email = $_.WindowsEmailAddress
$output = ‘Group Name: ‘ + $Name + $Email
$output = ‘Email: ‘ + $Email
write-output $output >> C:\outputDGmembers.txt
Get-DistributionGroupMember $name | Sort -Property DisplayName | Select DisplayName, Alias, PrimarySmtpAddress >> C:\outputDGmembers.txt
write-output “” “” >> C:\outputDGmembers.txt
}


Mit diesem Befehl haben wir uns alle Postfachberechtigungen pro Postfach anzeigen lassen.


$a = get-mailbox 
$a |Get-Mailboxpermission | where { ($_.IsInherited -eq $false) -and -not ($_.User -like “ NT AUTHORITY\SELF”) -and -not ($_.User -like '*Discovery Management*') } | Select Identity, user, AccessRights | fl 

Donnerstag, 9. Dezember 2010

automatisches Setzen von Verzeichnisberechtigungen für öffentliche Ordner

Hallo zusammen,

wir hatten kürzlich die Anforderung Verzeichnisberechtigugnen für öffentliche Ordner zu setzten. Da der Endbenutzer seine öffentliche Ordnerstruktur gerade am Neuausrichten war, kam eine manuelle Änderung der Verzeichnisberechtigungen auf Zuruf somit nicht in Frage. Denn sonst hätten wir jedes Mal wenn er einen neuen öffentlichen Ordner anlegt mit den Verzeichnisberechtigungen bestücken müssen.

Also haben wir das per PowerShell gelöst und als geplante Aufgabe implementiert, guckst du hier:

$PFMailEnabled_Ordnername = Get-MailPublicFolder | Get-PublicFolder | where-object { $_.ParentPath -like "\Contoso\Finance*" } | Select-Object Identity

$PFMailEnabled_Ordnername | Get-MailPublicFolder | add-adpermission -User Contoso\PF_Admin -AccessRights GenericAll

Viele Grüße, Jens

Mittwoch, 10. November 2010

Postfachtypen einzeln zurücksetzen

Hallo zusammen,

vergangene Woche hatte ich einen Post hinsichtlich falschen Postfachtypen eingestellt, guckst du hier: http://backendfrontend.blogspot.com/2010/10/falsche-postfachtypen.html

Dieses Script ändert jedoch die Postfachtypen für ALLE "falschen" Postfächer. Wenn somit nur erstmal testweise ein einzelnes Postfach auf "Benutzerpostfach" vom Typ her geändert werden soll, so muss das Script entsprechend angepasst und in der PowerShell ausgeführt werden:


cls
#get a list of all linked mbx
$AdminSessionADSettings.ViewEntireForest = $true
$linkedmbx = Get-Mailbox Jens.Kleinhans

$AclContainingAEA.User

#Fix AEA in AD
Remove-MailboxPermission -Identity $linkedmbx.DistinguishedName -User $AclContainingAEA.User -AccessRights ExternalAccount

#Fix MsExchRecipientType in AD so that Box is displayed as User and no longer as linked (change from 2 to 1)
$LDAPPath = "LDAP://" + $linkedmbx.DistinguishedName
$ADUser = [ADSI]"$LDAPPath"
$ADUser.put("msExchRecipientTypeDetails",1)

#Fix msExchMasterAccountSID (clear in AD) so that "isLinked" and "linkeMasterAccount" gets cleared.
$ADUser.putex(1,"msExchMasterAccountSid",$null)

#Save information to AD
$ADUser.setinfo()

Viele Grüße, Jens

Dienstag, 13. Juli 2010

Hochverfügbarkeit von öffentlichen Ordnern unter EX2010

Hallo zusammen,

unter Exchange 2010 kann die Mailbox Rolle mit einer s.g. DAG hochvergügbar ausgestattet werden. In einer DAG sind neben die Mailboxen selbstverständlich auch die öffentlichen Ordner hinterlegt. Eine öffentliche Ordner Datenbank ist deshalb aber nicht "hochverfübar". Eine erhöhte Verfügbarkeit wird nur erreicht, wenn mehrere öffentliche Ordner Datenbank in der Exchange Organisation inkl. Replikation vorhanden sind.

Guckt du auch hier:
http://technet.microsoft.com/en-us/library/bb629523.aspx

Viele Grüße, Jens

Mittwoch, 12. Mai 2010

Betrachtung Archivierungsmöglichkeiten mit Exchange

Hallo zusammen,

Mit Exchange 2010 bietet sich die Möglichkeit ein s.g. Online Archiv zu nutzen, das s.g. Online Archiv ist der Ersatz für die ausgelagerten .pst Dateien die bisher irgendwo im Netzwerk oder auf den lokalen PCs herumschwirren. Microsoft Exchange verfolgt die Strategie diese Daten direkt in Exchange reinzuholen, da sie dort

a) gesichert sind
b) der Benutzer von jedem PC aus drauf zugreifen kann und
c) Vertreter könnten ebenfalls auf das Archiv zugreifen.

Anbei ein paar Nachteile zum Thema .pst Dateien:

  • Der „Überall-Zugriff“ ist nicht gewährleistet
  • Der Benutzer kann nur von dem PC auf die .pst Datei zugreifen wo diese gespeichert ist
  • Widerfährt der Hardware in defekt ist die .pst Datei ggf. nicht mehr nutzbar und somit geht Mailbox Inhalt verloren
  • Microsoft supported keine .pst Dateien in einem Netzwerkpfad, guckst du hier: http://support.microsoft.com/kb/297019
  • keine Unternehmensweite Suche möglich
  • nahezu keine Möglichkeit die .pst Dateien zu sichern, sofern sie nicht im Netzwerk liegen, welches ja gar nicht supported ist
  • Der Benutzer ist selbst für das Backup der .pst Datei verantwortlich, sofern diese lokal vorgehalten wird

Die Tendenz geht klar dahin dass wichtige Unternehmensdaten (s.g. Hot Data) auf wenigen, schnellen/performanten Festplatten zur Verfügung gestellt werden und weniger wichtige Daten, z.B. das Online Archiv auf großen, langsameren und vor allem billigeren Storage zur Verfügung gestellt wird.

Das Archiv ist als zweites Postfach innerhalb des bestehenden Postfachs anzusehen, für den Benutzer aber absolut transparent.

Das Online Archiv ist nicht mit einem echten Archivierungssystem wie Easy oder ähnliche Produkte zu vergleichen, es bietet „nur“ die Möglichkeit Exchange-Daten auszulagern. Auf der anderen Seite ist es somit möglich Quotas für die Benutzer Postfächer zu definieren, so dass die Postfächer kleine gehalten werden können. Natürlich können aber auch Quotas auf das Online-Achtiv integriert werden.

Das „Problem“ bei der aktuellen Implementierung ist jedoch, dass eben dieses Archiv nur in der gleichen Datenbank abgelegt werden kann, wo sich das Postfach befindet. Mit dem Herauskommen von Exchange 2010 SP1 (Herbst 2010) gibt es folgende Neuerungen:

  • Die Archiv Datenbank kann auf einer dedizierten Datenbank ausgelagert werden (Stichwort: Cheap Storage)
  • Benutzer könnten Berechtigungen für Vertreter vergeben (nur möglich durch den Administrator – die Möglichkeit für die Benutzer selbst ist für SP2 geplant)
  • Die maximale empfohlene Größe eines Online Archivs auch in der Hinsicht Indizierung beträgt 120 GB
  • Such-Vorschau über spezielle Keywords, auch über das Outlook-Archiv
  • Die Benutzer können absolut integriert mit dem Archiv arbeiten, sie können Emails bearbeiten, Nachverfolgen, Kennzeichnen usw.
  • Benutzer können via Outlook Web App (ehemals OWA) auf das Archiv zugreifen
  • …und das wichtigste: es ist möglich das Archiv in der Cloud (BPOS) zu betreiben, vollkommen transparent für den Benutzer, d.h. der Outlook Nutzer sieht gar nicht, dass sein Archiv nicht auf dem lokalen Exchange Server liegt, sondern extern beim Hoster. Für die Unternehmen bietet sich somit die Möglichkeit sämtliche Archive an einen Hosting Anbieter auszulagern, welcher das preisgünstig auf „Cheap Storage“ anbietet. Die BPOS Postfächer kosten Stand heute in der Standard Version ab 4,26€ pro Monat, ob dieses Preismodell dann auch für das Online Archiv übernommen, ist abzuwarten
  • …und nicht zu vergessen: momentan würde das technisch nur mit Outlook 2010 funktionieren. Microsoft arbeitet aber derzeit an der Integration dieser Funktion in Outlook 2007 (!), so dass dort auch auf das Online Archiv zugegriffen werden kann.
  • De-Duplication (wenn eine email 10x gefunden wird, wird sie im Ergebnis dennoch nur 1x angezeigt)

Allerdings funktioniert das Online Archiv nur dann wenn der Outlook Client online mit dem Exchange Server verbunden ist, d.h. besteht keine Verbindung zum Exchange Server, so besteht auch kein Zugriff auf das Archiv.

Ein weiterer Ansatzpunkt hinsichtlich Online Archiv wäre die Möglichkeit einen Archiv Server mit lokalen Platten und/oder SAN Platten zur Verfügung zu stellen. Diese Möglichkeit hätten den Charme, dass Unternehmen nach wie vor ihre sensiblen Daten intern vorhalten und diese nicht in der Clound bei einem Hoster gespeichert haben. Das wäre sozusagen eine private Cloud!

Der Administrator hat weiterhin die Möglichkeit mit einer s.g. Retention Policy Daten vollautomatisch vom Postfach in das Archiv Postfach zu verschieben, beispielsweise alle Daten welche älter als 365 Tage sind.

Weiterhin bestünde die Möglichkeit dass Unternehmen eine ihre DAG Kopien bei einem Hoster betreiben zu lassen. Genauer gesagt, wäre es technisch denkbar, dass Unternehmen beliebig viele Exchange 2010 Server bei einem Hosten mieten/kaufen/aufstellen um an diesem externen Standort einen Exchange 2010 DAG Kopie zu erstellen. Somit hat das Unternehmen die 100%ige Sicherheit und Gewissheit unternehmensrelevante email Daten extern vorzuhalten und dennoch die Hoheit darüber zu behalten.

Marco Viets hat genau zu diesem Thema eine sehr interessante Dimplomarbeit zum Thema Archivierung erstellt, welche einen tollen Einblick in die aktuelle Marktsituation gibt, guckst du hier: http://sites.google.com/site/jenskleinhans/file-cabinet/AuswertungUmfrageDiplomarbeitMarcoViets.pdf?attredirects=0&d=1


Viele Grüße, Jens

Montag, 10. Mai 2010

untertützte Outlook Versionen für Exchang 2010

Hallo zusammen,

unter Exchange 2010 sind nur noch die Outlook Versionen ab Outlook 2003 unterstützt, ältere Outlook Versionen wie die Version XP oder 2000 sind offizielle nicht mehr unterstützt und somit auch nicht mehr supported, für weiter Infos guckst du hier:
http://technet.microsoft.com/en-us/library/bb125239.aspx

Viele Grüße, Jens