Quantcast
Channel: Exchange Server Forum
Viewing all 6649 articles
Browse latest View live

2016 Detailvorlagen Custom Fields

$
0
0

Hallo liebe Community,

ich versuche gerade Krampfhaft, für meine Kontakte in den öffentlichen Ordnern ein Custom Attribut hinzuzufügen. Ich bestreite nicht, dass ich da etwas komplett missverstanden habe...

Und zwar gibt es ja den "Details Templates Editor", in welchem ich ein neues Listenfeld + Label hinzugefügt habe:

Dieses Feld XXX soll nun 4 ausgewählte Attribute bekommen (am besten Vordefiniert).

Nun speichere ich erstmal das Template, warte kurz und starte Outlook neu und im Adressbuch taucht das auch tatsächlich auf. Allerdings ausgegraut... Speichere ich nun diesen Kontakt in meinen lokalen Kontakten, finde ich das Feld nicht mehr. Auch in den öffentlichen Ordnern kann ich das Attribut dann nicht finden.

Auch wäre es klasse, wenn ich dann in der Übersicht die Spalte anzeigen lassen und danach sortieren / Filtern kann.

Könnte mich jemand erleuchten?
LG

<style></style>

Shared Mailbox - BBC nicht sichtbar in Gesendete Elemente

$
0
0

Hallo liebes Forum,

kurz und knapp bitte ich euch um Hilfe

Exchange 2016 on-prem

Fehler bei Client

Outlook 2016

Wenn der Benutzer im Shared Mailbox (FullAccess und SendAs Berechtigung) etwas versendet und Personen im BCC hat, dann erscheint unter Gesendete Elemente (im Shared Mailbox) die E-Mail ohne, dass BCC sichtbar ist.

Allerdings ist die gleiche E-Mail im Postausgang des persönlichen Postfachs und dort ist BCC sichtbar.

Exchange Server 2016 CU20 - Postfacherstellung führt zu Fehler "500 Unerwarteter Fehler"

$
0
0

Hallo zusammen,

wir haben bei uns Exchange Server 2016 im Einsatz und auch zeitnah die Security Patche beim CU19 installiert. Auch nach mehreren Prüfungen mit den bekannten Skripten und manueller Kontrolle sind keine Befunde sichtbar geworden.

Am Sonntagabend habe ich angefangen auf unseren Servern das CU20 zu installieren und war gestern fertig.

Nun habe ich aus unserem First Level Meldungen erhalten, das beim Versuch des Erstellens eines Postfaches (EAC > Empfänger > Postfächer > + Symbol > Benutzerpostfach) ein 500 Fehler kommt. Der Fehler tritt bei der globalen Adresse auf (welche auf unseren Loadbalancer zeigt exchange.domain.de) und auch wenn die URL direkt von den Exchange Servern aufgerufen wird.

In den Logs konnte ich erstmal nichts finden und es betrifft nur unser First Level alle Exchange Admins haben diese Meldung nicht.


MfG Paul


Hier die Rollen der First Level Kollegen bzw. welche in der entsprechenden AD-Gruppe enthalten ist.


Update:

Über die Exchange Management Shell können die Benutzer die Postfächer erstellen also liegt es nicht an den Rechten.

Enable-Mailbox -DomainController DC01 -Identity 'Test' -Alias 'Test -Database 'DB-01' -AddressBookPolicy 'Adressbuchrichtlinie'
Set-CASMailbox -DomainController DC01 -Identity 'Test' -ActiveSyncEnabled $false -PopEnabled $false -ImapEnabled $false


Disable Organisation Tab -> Work withs in Webaccess

$
0
0
Hallo,
leider konnte ich bisher keinen Weg finden um die Ansicht von "Works with" im Webaccess (Exchange Online) zu deaktivieren. Gibt es eine Möglichkeit über eine Policy?

Suche funktioniert auch in Exchange 2019 CU5 nicht vernünftig

$
0
0

Suche in Outlook 2019 funktioniert auch in Exchange 2019 CU5 (Vor CU5 konnte man ja nach Teilstrings nicht suchen) nicht vernünftig.

Wenn man nach Zahlen in Mail sucht wird nicht immer das richtige gefunden. Teilzahlen gehen gar nicht. Oder es werden Mails angezeigt die das nicht enthalten. Ich hoffe Microsoft behebt das in CU6.

offene Verteilergruppe

$
0
0

Hallo, wir haben Exchange 2016 und Outlook 2016 im Einsatz.

Ich habe nun eine Verteilergruppe (Distribution/Security) erstellt die 'Membership approval' zwei Mal offen hat.

Leider kann nun niemand in seinem Outlook Client Mitglieder zur Gruppe hinzufügen bzw. entfernen. Außer der Besitzer der Gruppe selbst. Aber das ist ja nicht der Sinn daran.
Wir erhalten folgende Fehlermeldung:

Changes to the public group membership cannot be saved. You do not have sufficient permission to perform this operation on this object.

Wie kann man das beheben?

Gruß

Helmut


Problem bei der Installation Exchange 2013

$
0
0

In meiner Organisation gibt es einen Exchange 2010 Server auf einem zweiten Server möchte ich Exchange 2013 installieren und dann die Postfächer vershieben. Leider kommt bei der Installation von Exchange beim Punkt Postfachrolle: Postfachdienst folgende Fehlermeldung:

                            

Fehler:
Der folgende Fehler wurde generiert, als "$error.Clear(); 
          if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated)
          {
            $createNewOab = $false;
            $oabName = $null;
            $oabAddressList = $null;
            $oabVdirs = $null;
            $oabGlobalWebDistribution = $false;
            $oabConfiguredAttributes = $null;

            Write-ExchangeSetupLog -Info ("Looking for an existing default OAB");
            $defaultOab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.IsDefault};
            if ($defaultOab -ne $null)
            {
              Write-ExchangeSetupLog -Info ("Found a default OAB: " + $defaultOab.Name + "; checking its version");
              if ($defaultOab.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -lt 0)
              {
                $e15Oab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -eq 0};
                if ($e15Oab -eq $null)
                {
                  Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2010 or older; will create a new OAB");
                  $createNewOab = $true;
                  $oabName = $defaultOab.Name + " (Ex2013)";
                  $oabAddressList = $defaultOab.AddressLists;
                  $oabGlobalWebDistribution = $defaultOab.GlobalWebDistributionEnabled;
                  $oabConfiguredAttributes = $defaultOab.ConfiguredAttributes;
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Already has an existing Exchange 2013 OAB:" + $e15Oab.Name + "; will not create a new OAB");
                }
              }
              else
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2013 or newer; will not create a new OAB");
              }
            }
            else
            {
              Write-ExchangeSetupLog -Info ("Did not find a default OAB; will create one");
              $createNewOab = $true;

              $oabName = [Microsoft.Exchange.Data.Directory.SystemConfiguration.OfflineAddressBook]::DefaultName;
              $nonDefaultOabWithDefaultName = Get-OfflineAddressBook $oabName -DomainController:$RoleDomainController -ErrorAction SilentlyContinue | where {$_.IsDefault -eq $false};
              if ($nonDefaultOabWithDefaultName -ne $null)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Offline address book " + `
                  $nonDefaultOabWithDefaultName.Name + `
                  " already exists: " + `
                  $nonDefaultOabWithDefaultName.DistinguishedName + `
                  ". Use administrative tools to change it to default OAB.");
              }

              $allGals = @(Get-GlobalAddressList -DomainController:$RoleDomainController | where {$_.IsDefaultGlobalAddressList});
              if ($allGals -eq $null -or $allGals.Count -eq 0)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Couldn't find the default global address list. The default offline address book can't be created.");
              }
              elseif ($allGals.Count -gt 1)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Found " + $allGals.Count + " default global address lists. You can have only one default global address list in your organization. The default offline address book will not be created.");
              }
              else
              {
                $oabAddressList = $allGals[0];
                Write-ExchangeSetupLog -Info ("OAB will be based on default GAL: " + $oabAddressList.Name);
              }
            }

            if ($createNewOab)
            {
              if ($oabGlobalWebDistribution -eq $false)
              {
                $currentAdSiteDn = (Get-ExchangeServer $RoleFqdnOrName -DomainController:$RoleDomainController).Site.DistinguishedName;
                $allOabVdirs = @(Get-OabVirtualDirectory -ADPropertiesOnly -DomainController:$RoleDomainController);
                $e15MinimumServerVersion = New-Object Microsoft.Exchange.Data.ServerVersion([Microsoft.Exchange.Data.Directory.SystemConfiguration.Server]::E15MinVersion);
                if ($allOabVdirs -ne $null -and $allOabVdirs.Count -gt 0)
                {
                  foreach ($oabVdir in $allOabVdirs)
                  {
                    if ([Microsoft.Exchange.Data.ServerVersion]::Compare($oabVdir.AdminDisplayVersion, $e15MinimumServerVersion) -gt 0)
                    {
                      $oabVdirSiteDn = (Get-ExchangeServer $oabVdir.Server -DomainController:$RoleDomainController).Site.DistinguishedName;
                      if ($oabVdirSiteDn -eq $currentAdSiteDn)
                      {
                        $oabVdirs = $oabVdir;
                        break;
                      }
                      elseif ($oabVdirs -eq $null)
                      {
                        $oabVdirs = $oabVdir;
                      }
                    }
                  }
                }

                if ($oabVdirs -ne $null)
                {
                  Write-ExchangeSetupLog -Info ("OAB will be distributed to OAB virtual directory " + $oabVdirs.Name);
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Could not find any OAB virtual directories; OAB will be configured without distribution.");
                }
              }

              try
              {
                Write-ExchangeSetupLog -Info ("Creating new default OAB.");
                $newOab = New-OfflineAddressBook `
                  -Name $oabName `
                  -AddressLists $oabAddressList `
                  -VirtualDirectories $oabVdirs `
                  -GlobalWebDistributionEnabled $oabGlobalWebDistribution `
                  -IsDefault $true `
                  -DomainController:$RoleDomainController;
              }
              catch [Microsoft.Exchange.Data.Directory.ADObjectAlreadyExistsException]
              {
                Write-ExchangeSetupLog -Warning ("Tried to create new default OAB but the object already exists; it may have been created by another instance of setup.");
              }

              if ($oabConfiguredAttributes -ne $null)
              {
                Write-ExchangeSetupLog -Info ("Setting OAB ConfiguredAttributes to: " + $oabConfiguredAttributes);
                Set-OfflineAddressBook $newOab -ConfiguredAttributes $oabConfiguredAttributes -DomainController:$RoleDomainController;
              }
            }
          }
        " ausgeführt wurde: "Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException: Die Adressliste oder globale Adressliste "SBG.LOCAL/Configuration/Deleted Objects/Test
DEL:d1428327-d21e-47ed-a270-799eac705dd1" wurde nicht gefunden. Vergewissern Sie sich, dass Sie die richtige ID eingegeben haben.
   bei Microsoft.Exchange.Configuration.Tasks.DataAccessTask`1.GetDataObject[TObject](IIdentityParameter id, IConfigDataProvider session, ObjectId rootID, OptionalIdentityData optionalData, Nullable`1 notFoundError, Nullable`1 multipleFoundError, ExchangeErrorCategory errorCategory)
   bei Microsoft.Exchange.Configuration.Tasks.DataAccessTask`1.GetDataObject[TObject](IIdentityParameter id, IConfigDataProvider session, ObjectId rootID, Nullable`1 notFoundError, Nullable`1 multipleFoundError)
   bei Microsoft.Exchange.Management.SystemConfigurationTasks.OfflineAddressBookTaskUtility.ValidateAddressBook(IConfigDataProvider session, AddressBookBaseIdParameter[] addressBooks, GetUniqueObject getAddressBook, OfflineAddressBook target, TaskErrorLoggingDelegate writeError)
   bei Microsoft.Exchange.Management.SystemConfigurationTasks.NewOfflineAddressBookInternal.PrepareDataObject()
   bei Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalValidate()
   bei Microsoft.Exchange.Configuration.Tasks.NewMultitenancySystemConfigurationObjectTask`1.InternalValidate()
   bei Microsoft.Exchange.Management.SystemConfigurationTasks.NewOfflineAddressBookInternal.InternalValidate()
   bei Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
   bei Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

Fehler:
Der folgende Fehler wurde generiert, als "$error.Clear(); 
          if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated)
          {
            $createNewOab = $false;
            $oabName = $null;
            $oabAddressList = $null;
            $oabVdirs = $null;
            $oabGlobalWebDistribution = $false;
            $oabConfiguredAttributes = $null;

            Write-ExchangeSetupLog -Info ("Looking for an existing default OAB");
            $defaultOab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.IsDefault};
            if ($defaultOab -ne $null)
            {
              Write-ExchangeSetupLog -Info ("Found a default OAB: " + $defaultOab.Name + "; checking its version");
              if ($defaultOab.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -lt 0)
              {
                $e15Oab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -eq 0};
                if ($e15Oab -eq $null)
                {
                  Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2010 or older; will create a new OAB");
                  $createNewOab = $true;
                  $oabName = $defaultOab.Name + " (Ex2013)";
                  $oabAddressList = $defaultOab.AddressLists;
                  $oabGlobalWebDistribution = $defaultOab.GlobalWebDistributionEnabled;
                  $oabConfiguredAttributes = $defaultOab.ConfiguredAttributes;
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Already has an existing Exchange 2013 OAB:" + $e15Oab.Name + "; will not create a new OAB");
                }
              }
              else
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2013 or newer; will not create a new OAB");
              }
            }
            else
            {
              Write-ExchangeSetupLog -Info ("Did not find a default OAB; will create one");
              $createNewOab = $true;

              $oabName = [Microsoft.Exchange.Data.Directory.SystemConfiguration.OfflineAddressBook]::DefaultName;
              $nonDefaultOabWithDefaultName = Get-OfflineAddressBook $oabName -DomainController:$RoleDomainController -ErrorAction SilentlyContinue | where {$_.IsDefault -eq $false};
              if ($nonDefaultOabWithDefaultName -ne $null)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Offline address book " + `
                  $nonDefaultOabWithDefaultName.Name + `
                  " already exists: " + `
                  $nonDefaultOabWithDefaultName.DistinguishedName + `
                  ". Use administrative tools to change it to default OAB.");
              }

              $allGals = @(Get-GlobalAddressList -DomainController:$RoleDomainController | where {$_.IsDefaultGlobalAddressList});
              if ($allGals -eq $null -or $allGals.Count -eq 0)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Couldn't find the default global address list. The default offline address book can't be created.");
              }
              elseif ($allGals.Count -gt 1)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Found " + $allGals.Count + " default global address lists. You can have only one default global address list in your organization. The default offline address book will not be created.");
              }
              else
              {
                $oabAddressList = $allGals[0];
                Write-ExchangeSetupLog -Info ("OAB will be based on default GAL: " + $oabAddressList.Name);
              }
            }

            if ($createNewOab)
            {
              if ($oabGlobalWebDistribution -eq $false)
              {
                $currentAdSiteDn = (Get-ExchangeServer $RoleFqdnOrName -DomainController:$RoleDomainController).Site.DistinguishedName;
                $allOabVdirs = @(Get-OabVirtualDirectory -ADPropertiesOnly -DomainController:$RoleDomainController);
                $e15MinimumServerVersion = New-Object Microsoft.Exchange.Data.ServerVersion([Microsoft.Exchange.Data.Directory.SystemConfiguration.Server]::E15MinVersion);
                if ($allOabVdirs -ne $null -and $allOabVdirs.Count -gt 0)
                {
                  foreach ($oabVdir in $allOabVdirs)
                  {
                    if ([Microsoft.Exchange.Data.ServerVersion]::Compare($oabVdir.AdminDisplayVersion, $e15MinimumServerVersion) -gt 0)
                    {
                      $oabVdirSiteDn = (Get-ExchangeServer $oabVdir.Server -DomainController:$RoleDomainController).Site.DistinguishedName;
                      if ($oabVdirSiteDn -eq $currentAdSiteDn)
                      {
                        $oabVdirs = $oabVdir;
                        break;
                      }
                      elseif ($oabVdirs -eq $null)
                      {
                        $oabVdirs = $oabVdir;
                      }
                    }
                  }
                }

                if ($oabVdirs -ne $null)
                {
                  Write-ExchangeSetupLog -Info ("OAB will be distributed to OAB virtual directory " + $oabVdirs.Name);
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Could not find any OAB virtual directories; OAB will be configured without distribution.");
                }
              }

              try
              {
                Write-ExchangeSetupLog -Info ("Creating new default OAB.");
                $newOab = New-OfflineAddressBook `
                  -Name $oabName `
                  -AddressLists $oabAddressList `
                  -VirtualDirectories $oabVdirs `
                  -GlobalWebDistributionEnabled $oabGlobalWebDistribution `
                  -IsDefault $true `
                  -DomainController:$RoleDomainController;
              }
              catch [Microsoft.Exchange.Data.Directory.ADObjectAlreadyExistsException]
              {
                Write-ExchangeSetupLog -Warning ("Tried to create new default OAB but the object already exists; it may have been created by another instance of setup.");
              }

              if ($oabConfiguredAttributes -ne $null)
              {
                Write-ExchangeSetupLog -Info ("Setting OAB ConfiguredAttributes to: " + $oabConfiguredAttributes);
                Set-OfflineAddressBook $newOab -ConfiguredAttributes $oabConfiguredAttributes -DomainController:$RoleDomainController;
              }
            }
          }
        " ausgeführt wurde: "System.Management.Automation.ParameterBindingValidationException: Das Argument kann nicht an den Parameter "Identity" gebunden werden, da es NULL ist.
   bei System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate)
   bei System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
   bei System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
   bei System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)".

Kann mir jemand Helfen

Hilfe - Automatische Empfängeradressänderung (an:) bei Outlook/Exchange in AD

$
0
0

Hallo zusammen,

ich weis nicht ob ich hier im Bereich Exchange richtig bin.

ich habe folgendes Problem:

Umgebung: 2016er AD mit 2016er Exchange und Outlook 2016

Ein Postfach:

Anzeigename:TestPostfach

Hauptadresse: aaa@test.de 

Alias: bbb@test.de, ccc@test.de

Wenn ich jetzt von Outlook (absender@test.de) eine EMail an bbb@test.de versende ( versenden möchte ) ändert Outlook automatisch die eingegebene E-Maladresse in den Anzeigenamen TestPostfach und ändert die an-Adresse in aaa@test.de

Frage: Wie kann man dem System dies abgewöhnen ? Wir benötigen die eingegebene E-Mailadresse in der empfangenen EMail und darf nicht geändert werden, da darauf Auswertungen laufen.

Ich bin für jeden Tipp dankbar.

Gruß, Carsten


Email Adressrichtlinie für Gruppen

$
0
0

Hallo,

ich möchte meinen bestehenden und neuen M365 Gruppen gerne eine Subdomain als SMTP Domain zuweisen. Dafür habe ich eine E-Mail-Adressrichtlinie erstellt.

New-EmailAddressPolicy -Name "Groups_AP" -IncludeUnifiedGroupRecipients -EnabledEmailAddressTemplate "SMTP:@groups.domain.com"

Für neu erstellte Gruppen scheint das zu greifen, ich habe gar keine Domain mehr zur Auswahl, da automatisch meine gewünschte Subdomain verwendet wird. Für bestehende Gruppen sehe ich keine Änderung. Diese muss ich mittels

Set-UnifiedGroup -PrimarySMTPAddress "alias@groups.domain.com" 

zuweisen. Über Update-Recipient hat es leider nichts geändert. Ist das so by Design?

E2k10 O365 Frei Gebucht Zeiten

$
0
0

E2k10 (ich weiß)
Outlook365 16.0.12527.20612
Win 10

Hallo,

wir haben einen User, der sich die Frei/Gebuchtzeiten der andren User nicht ansehen kann. Außerdem sieht er auch die email Infos nicht. Er bekommt folgende Meldung:

"Es konnten keine Frei/Gebucht-Daten abgerufen werden. Ihr Serverstandort konnte nicht ermittelt werden"

- Autodiscover funktioniert bei ihm.
- Über OWA sieht er die Frei / Gebuchtzeiten der andren User 
- Neues Profil erstellen ändert nichts
- Parameter /CleansFreebusy gibt es ab O2k16 nicht mehr
- WinhttpProxy gibt es unter E2k10 noch nicht

Was ich zusätzlich im Web gefunden habe, konnte das Problem auch nicht lösen.
Hat jemand noch eine Idee?

Danke!

Zertifikat Exchange 2016 läuft aus

$
0
0
Hallo,
demnächst läuft unser Exchange 2016 Zertifikat aus. Das Zertifikat ist ein gekauftes Wildcard von einer öffentlichen Zertifizierungsstelle.
Das neue Zertifikat haben wir bereits vorliegen, aber auf dem Exchange 2016 noch nicht getauscht.
Muss ich dafür einfach im IIS das Zertifikat einspielen und anschl. binden und IIS Dienste durchstarten?

Danke und Gruß
Dennis

Mail Anhänge Filtern und löschen

$
0
0
 Hallo liebe Community,


ersteinmal schön jetzt auch mal ein Problem zu habem welches nicht durch bestehende Foreneinträge lösen konnte. :D


Vorweg ein paar Infos zur Exchange Umgebung:

Physische Server

Server 2012 R2

Exchange 2013 Cluster mit diversen Datenbanken

Updates alle auf dem aktuellsten Stand


Ich habe die Aufgabe bekommen diverse Mail Anhänge aus Datenschutzgründen zu löschen. Einen Weg um die Mail beizubehalten und nur den Anhang selbst aus der Mail zu enfernen habe ich leider keinen gefunden.


Daher folgendes Vorgehen:


Get-MessageTrackingLog  -Start "04/21/2021 00:00:00" -MessageSubject "Name_Anhang 100.pdf" | select eventid,timestamp,source,messageid,sender,recipients,messagesubject,totalbytes |sort timestamp |Out-GridView


(Result

=80 Einträge)


um erstmal alle betroffenen Mails zu finden und für Dokumentationszwecke. So weit so gut! Danach wollte ich die Mails mit dem "Name_Anhang 100.pdf" löschen mit:

Get-Mailbox -OrganizationalUnit Domain.local/OU -ResultSize unlimited | Search-Mailbox -SearchQuery 'attachment:"Name_Anhang 100.pdf"' -DeleteContent | Out-File D:\Löschen_der_Mails\Name_Anhang 100.html


Result:

RunspaceId       : 473c1df3-6d2a-47ee-b7c2-e4e74e5beba0
Identity         : Domain.local/OU/Office/Users/"xyz"/Username
TargetMailbox    :
Success          : True
TargetFolder     :
ResultItemsCount : 120
ResultItemsSize  : 3.623 GB (3,889,737,469 bytes)


Da kann ja nun irgendetwas nicht stimmen...

Auf einem Extra angelegten Postfach habe ich den Fehler leider nicht feststellen können mangels Mailbox Inhalt, aber der Befehl löscht jegliche Mails mit dem Inhalt "Name oder Anhang oder 100".

Erstmal dank Backup nicht dramatisch ABER ich müsste mehrere Anhänge damit löschen.


Ziel

Perfekt wäre es wenn ich einen exakten String Namen, als Namen des Anhangs, nehmen könnte und weder Mail Inhalt oder Betreff einbeziehen würde. Mich interessiert ausschließlich der Name des Anhangs (der zusammenhängende). Und eigentlich nur Mails vom 04/21/2021 bis gegenwart.


Ich wäre furchbar dankbar für Rat und/oder Links zur Hilfe.

Implicit TLS

$
0
0

Hi,

im Februar hörte der Formmailer unseres Webspace auf zu funktionieren (Connection Time Out). Er benutzte Port 465, Zertifikate waren zugewiesen und bis zu dem Zeitpunkt funktionierte er auch. Ich habe damals um das Problem rundrumgearbeitet (Port 578) und mich jetzt auf Fehlersuche gemacht.

Port 465 ist Implicit TLS, heißt, daß die TLS-Verbindung nicht erst mit STARTTLS aus einer unverschlüsselten Verbindung initiiert werden muss. Siehe Wikipedia. Merkwürdigerweise weist Port 465 bei mir jetzt dasselbe Verhalten wie 578 auf - der Port arbeitet mit Explicit TLS, wird also aus der unverschlüsselten SMTP-Verbindung mit STARTTLS in die verschlüsselte Verbindung gehoben.

Jetzt die Frage: Was ist passiert? Und noch wichtiger: Wie bekomme ich den Connector (der Default-Connector "Client Proxy SERVER") wieder zum alten, korrekten Verhalten, damit die entsprechenden Clients (und nebenbei auch die davorliegende Infrasturuktur zum Connection Management) wieder funktionieren? Nebenbei ist Implicit TLS inzwischen Empfehlung der IETF für Client SMTP.

CU

Custom Header bei ausgehenden Mails entfernen

$
0
0

Hallo Zusammen,

wenn ich über einen Custom Receive Connector (FrontendTransport) bei meiner Exchange 2013 On-Premise Umgebung E-Mails von einem Programm heraus versende, dann werden Custom Header gesetzt. Diese Header verursachen bei externen Empfängern, dass die Mail als SPAM eingestuft wird.

Kann man diese Custom Header entfernen?

Konkret geht es um folgende Header:

  • X-Mailer: "Name des Programms"
  • X-ClientProxiedBy: "Exchange Server-FQDN (XXX.XXX.XXX.11) To Exchange Server-FQDN (XXX.XXX.XXX.11)"
  • X-Originating-IP: "[XXX.XXX.XXX.33]"

Ich habe schon versucht die Header via Mail Flow Rules zu entfernen, ohne Erfolg...

Das Programm authentifiziert sich beim Custom Receive Connector und besitzt Send-As Rechte auf die verwendete E-Mail Adresse.

Jemand eine Idee?

Kontakte in Postfach übertagen

$
0
0

Hallo,
ich bin dabei ein Script zu erstelle, welches Kontakte aus einer  DB nach Exchange-Online überträgt.

Prinzipiell funktioniert es, aber ich denke, dass es etwas eleganter in Bezug auf die Zugriffe funktionieren sollte.
In der jetztigen Funktion prüfe ich jeden einzelnen Kontakt und lösche diesen.

Danach lese ich die verfügbaren Kontakte ein und übertrage jeden einzelnen Kontakt ins Postfach.

Da das schon ziemlich dauert nun die Frage, ob es nicht besser wäre
1. die Kontakte im Postfach zu filtern und diese auf "einen Rutsch" zu löschen (als Filterfeld habe ich das Feld "SpouseName" hergenommen und
2. ebenso eine neue Liste (z.b.: List (Of Contacts) o.ä. zu erzeugen und diese dann komplett abzuspeichern.

Leider weiß ich da nicht so recht weiter. Vielleicht hat jemend einen Tip?

Anbei die aktuelle Funktion:

    Public Function fnSyncDBToExchange() As String
        Dim datStart As Date = Now
        Try
            Dim userEditCounter As Integer = 0
            Dim userCounter As Integer = 0
            Dim userFailCount As Integer = 0
            Dim contactCount As Integer = 0
            Dim sumCounter As Integer = 0
            Dim EWS As ExchangeService = New ExchangeService With {
                    .Credentials = New WebCredentials("admin@firma.onmicrosoft.com", "*****"),
                    .Url = New Uri("https://outlook.office365.com/EWS/Exchange.asmx")
            }

            Using db As New dbExchangeEntities
                Dim USERS = From u In db.tbl_KONTAKTE
                            Where Not u.EXTERN = True And Not u.EMAIL Is Nothing
                            Select u


                userCounter = USERS.Count
                For Each USER In USERS
                    sumCounter += 1
                    Dim delCounter As Integer = 0
                    Dim addCounter As Integer = 0
                    Try
                        EWS.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, USER.EMAIL)
                        Dim contactFolder As ContactsFolder = ContactsFolder.Bind(EWS, WellKnownFolderName.Contacts)
                        contactCount = contactFolder.TotalCount
                        If contactCount > 0 Then
                            userEditCounter += 1
                            Dim view As ItemView = New ItemView(contactCount)
                            view.PropertySet = New PropertySet(BasePropertySet.IdOnly, ContactSchema.Profession, ContactSchema.DisplayName, ContactSchema.SpouseName)
                            Dim contactItems As FindItemsResults(Of Item) = EWS.FindItems(WellKnownFolderName.Contacts, view)
                            For Each item As Item In contactItems
                                If TypeOf item Is Contact Then
                                    Dim contact As Contact = TryCast(item, Contact)
                                    If contact.SpouseName = "CRIT" Then
                                        delCounter += 1
                                        item.Delete(DeleteMode.HardDelete)
                                    End If
                                End If
                            Next
                        End If

                        Dim KONTAKTE = From k In db.tbl_KONTAKTE
                                       Where Not k.EXTERN = True And Not k.EMAIL Is Nothing
                                       Select k


                        For Each KONTAKT In KONTAKTE
                            Dim nKontakt As Contact = New Contact(EWS) With {
                                .DisplayName = KONTAKT.VORNAME & " " & KONTAKT.NACHNAME,
                                .CompanyName = KONTAKT.FIRMA,
                                .Surname = KONTAKT.NACHNAME,
                                .GivenName = KONTAKT.VORNAME,
                                .JobTitle = KONTAKT.POSITION,
                                .Manager = KONTAKT.VORGESETZTER,
                                .NickName = KONTAKT.KURZ,
                                .OfficeLocation = KONTAKT.STANDORT,
                                .SpouseName = "CRIT"
                                }

                            Dim adress As PhysicalAddressEntry = New PhysicalAddressEntry With {
                                .City = KONTAKT.ORT,
                                .CountryOrRegion = "Bayern",
                                .PostalCode = KONTAKT.PLZ,
                                .State = "DE",
                                .Street = KONTAKT.STRASSE
                            }

                            With nKontakt
                                .EmailAddresses.Item(EmailAddressKey.EmailAddress1) = KONTAKT.EMAIL
                                .Body = "imported by script"
                                .FileAs = KONTAKT.VORNAME & "_" & KONTAKT.NACHNAME & "_" & KONTAKT.KONTAKT_ID
                                .Initials = KONTAKT.KURZ
                                .Department = KONTAKT.ABTEILUNG
                                With .PhoneNumbers
                                    .Item(PhoneNumberKey.BusinessFax) = KONTAKT.FAX
                                    .Item(PhoneNumberKey.BusinessPhone) = KONTAKT.FESTNETZ
                                    .Item(PhoneNumberKey.MobilePhone) = KONTAKT.MOBIL
                                    .Item(PhoneNumberKey.OtherTelephone) = KONTAKT.TELEFON1
                                    .Item(PhoneNumberKey.BusinessPhone2) = KONTAKT.TELEFON2
                                    .Item(PhoneNumberKey.PrimaryPhone) = KONTAKT.TELEFON3
                                End With
                                .BusinessHomePage = KONTAKT.WEBSITE
                                .PhysicalAddresses.Item(PhysicalAddressKey.Business) = adress
                            End With

                            Dim Folder As FolderId = New FolderId(WellKnownFolderName.Contacts)
                            nKontakt.Save(Folder)

                            addCounter += 1
                        Next

                        SetText((userCounter + 1 - sumCounter) & ": " & USER.NACHNAME & ", " & USER.VORNAME & " (" & USER.EMAIL & "): Kontakte: " & contactCount & ", gelöscht: " & delCounter & ", hinzugefügt: " & addCounter)
                    Catch ex As Microsoft.Exchange.WebServices.Data.ServiceResponseException
                        If ex.ErrorCode = 304 Then
                            SetText("HINWEIS: " & USER.EMAIL & " - keine Mailbox")
                            userFailCount += 1
                        Else
                            SetText("FEHLER Zeile " & Err.Erl.ToString & ": " & USER.EMAIL & " - " & ex.Message)
                            userFailCount += 1
                        End If

                    Catch ex As Exception
                        SetText("FEHLER Zeile " & Err.Erl.ToString & ": " & USER.EMAIL & " - " & ex.Message)
                    End Try
                Next
                SetText("Postfächer gesamt: " & userCounter & ", bearbeitet: " & userEditCounter & " von " & sumCounter & " - Fehler: " & userFailCount)
            End Using
        Catch ex As Exception
            Dim strErr As String = "<mdlSyncDB_Exchange.fnSyncDBToExchange> Fehler Zeile " & Err.Erl.ToString & ": " & ex.Message
            If Not ex.InnerException Is Nothing Then strErr &= " - " & ex.InnerException.Message
            SetText(strErr)
        Finally
            Dim datEnde As Date = Now
            Dim dauer As TimeSpan = datEnde - datStart
            SetText("Dauer: " & dauer.Minutes & "min " & dauer.Seconds & "s.")
        End Try
   End Function

Warum ich nicht einfach vorhandene Kontakte aktualisiere?
Ich dachte, damit wäre ich um einiges schneller als immer erst zu prüfen, ob es den Kontakt noch oder noch nicht gibt. Deshalb alle durch das Script erstellten löschen und aus der DB neu aufbauen. Auch da bin ich für bessere Wege offen.

Vielen Dank.


Viele Grüße, Volker


Falsche GAL an Mandanten-Exchange

$
0
0

Moin!

Ich wollte doch nur helfen...

Wir haben einen Exchange 2016, auf dem zwei Tennants laufen, A und B.

Ich selbst als User gehöre zum Mandanten A, so wie der gesamte Rest der Firma auch. Der zweite Mandant ist nur für vier Mitarbeiter gedacht. Als ich den vierten Mitarbeiter entsprechend eingerichtet habe, habe ich zum Testen mich selbst ebenfalls "mal kurz" dem Mandanten B zugeordnet.

Nun wieder alles zurückgestellt und - denkste! Ich bekomme die GAL B angezeigt und muss die nicht im Cache befindlichen Adressen vom Mandanten A, dem ich jetzt ja wieder zugeordnet bin, vollständig ausschreiben und kann die Kalender nicht öffnen, wenn ich sie nicht vorher schon eingetragen hatte. Offiziell und laut Einstellungen sollte ich den Mandanten B gar nicht sehen, so ist es gedacht und so funktioniert es bei allen anderen auch.

Der Rest der Umgebung: Outlook 2019 an on-premise-Exchange 2016, AD ist mit Azure-AD verbunden, Exchange 365 gibt es nicht, Autodiscover ist rund, DNS und Routing (wg. interner Exchange-Adresse), Zertifikate usw. alles grün. Azure-AD gibt es, weil wir im Laufe des Jahres auf M365 umsteigen, aktuell für Teams genutzt wegen der einfacheren Outlook-Integration.

Bisher getan habe ich:

Kontrolle meines Users in AD mit Exchange-Erweiterung, Mailbox in EAC und über Powershell, Outlook Profil gelöscht inkl. Registry-Schlüssel und AppData-Ordner.

In OWA bekomme ich ebenfalls nur die GAL B, also fällt Outlook ja eigentlich aus. Und ja, natürlich bereits hunderte Neustarts, weil das schon seit Monaten so geht.

Wo kann sich das denn noch verknoten, welche Einstellung habe ich übersehen? Welchen Tipp habe ich noch nicht gefunden und was habe ich gekonnt ignoriert?

Grüße von zu Hause

Jörg


Ich will die Welt verbessern und bei mir fang' ich an. Deal? der Joerg

Plus Adressen anschalten

$
0
0

Hallo zusammen, 

wir haben in der Firma kürzlich von Gsuite auf Exchange umgestellt.
Dies hat auch alles super funktioniert. 

Nun ist uns aufgefallen, dass in Exchange die plus Adressen nicht standardmäßig eingeschaltet sind. 
Dies kann ich über PowerShell machen.

Habe mich also über Mac mit pwsh verbunden.

Habe dann folgenden command ausgeführt

connect-exchangeonline
Werde daraufhin auf die office login Seite geleitet und alles scheint ok zu sein.
Daraufhin bekomme ich folgende Fehlermeldung (WsMan):

connect-exchangeonline

----------------------------------------------------------------------------
The module allows access to all existing remote PowerShell (V1) cmdlets in addition to the 9 new, faster, and more reliable cmdlets.

|--------------------------------------------------------------------------|
|    Old Cmdlets                    |    New/Reliable/Faster Cmdlets       |
|--------------------------------------------------------------------------|
|    Get-CASMailbox                 |    Get-EXOCASMailbox                 |
|    Get-Mailbox                    |    Get-EXOMailbox                    |
|    Get-MailboxFolderPermission    |    Get-EXOMailboxFolderPermission    |
|    Get-MailboxFolderStatistics    |    Get-EXOMailboxFolderStatistics    |
|    Get-MailboxPermission          |    Get-EXOMailboxPermission          |
|    Get-MailboxStatistics          |    Get-EXOMailboxStatistics          |
|    Get-MobileDeviceStatistics     |    Get-EXOMobileDeviceStatistics     |
|    Get-Recipient                  |    Get-EXORecipient                  |
|    Get-RecipientPermission        |    Get-EXORecipientPermission        |
|--------------------------------------------------------------------------|

To get additional information, run: Get-Help Connect-ExchangeOnline or check https://aka.ms/exops-docs

Send your product improvement suggestions and feedback to exocmdletpreview@service.microsoft.com. For issues related to the module, contact Microsoft support. Don't use the feedback alias for problems or support issues.
----------------------------------------------------------------------------

Exception: /Users/johannesgerdes/.local/share/powershell/Modules/ExchangeOnlineManagement/2.0.4/netCore/ExchangeOnlineManagement.psm1:475
Line |
 475 |  …             $PSSession = New-ExoPSSession -ExchangeEnvironmentName $E …
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | This parameter set requires WSMan, and no supported WSMan
     | client library was found. WSMan is either not installed or
     | unavailable for this system.
Hierzu habe ich das gesamte Internet abgesucht aber finde leider keine Lösung. Ist wohl ein Mac Problem?

Ich hoffe ich finde hier hilfe.

New-ManagementScope

$
0
0

Hallo,
ich würde unter Exchange 2016 gerne eine neue Scope erstellen und an eine Rollengruppe binden.
Ziel soll sein das ein bestimmer User die Rolle 

ApplicationImpersonation

nur auf die Subdomain bekommt.
Als vordef. Scopes gibt es Standard und SubScope?
Wäre dann SubScope für die untergeordnete Subdomain?
Wenn nicht wie kann ich einen neuen Scope auschl. f. d. Subdomain erstellen?

Danke und Gruß
Dennis 

E2k10 Zertifikat

$
0
0

Noch E2k10 Umgebung mit 1x CAS/HUB, 1x MBX und der Dritte mit allen Rollen an einem anderen Standort

Hallo,

Im Juni läuft ein zehn Jahre altes Zertifikat ab, das wohl bei der Installation erstellt wurde:

Unter service steht none. Welche Aufgabe erfüllt es und was passiert wenn ich es nicht verlängere?
Kann ich da einfach ein Renew Certificate machen?

Danke!

Microsoft 365 - Exchange Lizensierung - Archivierung nach GoBD

$
0
0

Hallo zusammen!

Gibt es eine Möglichkeit / Lizensierung (E3-Pläne?) innerhalb Microsoft 365 - Exchange Online, welche eine revisionssichere, fortlaufende und abrufbare E-Mail-Archivierung nach GoBG vornimmt? Oder muss ich zwingend Dritt-Hersteller Programme wie z.B. MailStore etc. einsetzen?

Ich kenne zwar die normalen Archivierungs Möglichkeiten von Exchange Online oder auch die des Beweissicherungsverfahren, aber ist das wirklich für eine Archivierung nach GoBD zu gebrauchen? 

Die "normale" Archivierung definitiv nicht!

Vielen Danke und schöne Grüße.
Silvio

Viewing all 6649 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>