Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

...

...

...

Inhalt

1. Einleitung

Das Einrichten der PowerShell ist nur für Umgebungen notwendig wenn:

  • das Archivsystem an Exchange angebunden wird

  • das Outlook-Addin genutzt werden soll

  • Migrationen von/nach Exchange durchgeführt werden soll

  • SharePoint per Shift angesteuert werden soll

2. Installation stanoc PowerShell Skript

...

Ältere Server benötigen ein Update ( https://www.microsoft.com/en-us/download/details.aspx?id=54616 - Achtung - es wird wahrscheinlich ein Reboot fällig)
Die Datei stanocPowerHelper.zip enthält ein PowerShell-Skript für den Zugriff auf Exchange Online bzw. on Premises.

...

Für das Exchange Online Management Modul wird auch noch Microsoft .NET Framework 4.7.1 oder höher benötigt ( https://learn.microsoft.com/en-us/powershell/exchange/exchange-online-powershell-v2?view=exchange-ps#windows )

Für SharePoint ist PowerShell 7.2 oder neuer (siehe auch https://pnp.github.io/powershell/articles/installation.html ) erforderlich.

Es empfiehlt sich die aktuell LTS - Version z.B. von https://learn.microsoft.com/de-de/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.4 zu verwenden.

2.1. TLS 1.2 aktivieren/erzwingen

...

Falls die Ausgabe wie im Screenshot aussieht (Optionen nicht gesetzt), bitte die Abfrage mit “Y” beantworten und den Server neu starten.

3. Exchange Online und Entra ID

3.1. Benötigte Module installieren

...

Codeblock
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Install-Module ExchangeOnlineManagement,MSOnline,AzureAD
# Optional: Wenn Entra-ID verwendet werden soll:
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Install-Module -Name Microsoft.Graph.Entra -Repository PSGallery -allowprerelease

3.2. Exchange Online Zugangsdaten hinterlegen

ACHTUNG: Microsoft erlaubt die Basic Auth ab seit September/Oktober 2022 nicht mehr. Daher bitte auch bei vorhandenen Installation folgendes durchführen

Im Azure AD Portal anmelden

...

Codeblock
"requiredResourceAccess": [
   {
      "resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
      "resourceAccess": [
         {
            "id": "dc50a0fb-09a3-484d-be87-e023b12c6440",
            "type": "Role"
         }
      ]
   }
],

...

API-Berechtigungen

Folgende API-Berechtigungen

...

müssen für Entra ID zusätzlich ausgewählt werden:

Codeblock
Contacts.ReadWrite
Directory.ReadWriteAll
Group.ReadWriteAll
User.ReadWriteAll

Administratorzustimmung für den Tenant erteilen

...

Auf dem Rechner, auf dem das PowerShell-Skript ausgeführt werden soll, per stanocPowerHelper.ps1 das Zertifikat erzeugen und sichern

Codeblock
.\stanocPowerHelper.ps1 -createPFX -AppID "AppID aus der oben angelegten App einfügen" -passphrase "Passphrase zum Schützen des PFX-Files" -Organization "firma.onmicrosoft.com"

...

...

Achtung: Die Zertifikatserstellung unter Windows Server 2012 R2 funktioniert nicht korrekt. Die Zertifikatserstellung muss daher auf einem anderen Server Betriebssystem (Windows Server 2019 / Windows Server 2022) oder auf einer lokalen Clientinstallation des ‘stanoc PowerHelper Skript’ (min . Windows 10) ausgeführt werden. Ansonsten kommt es bei der Verbindung zu folgendem Fehler:

...

Zertifikat der App zuweisen

Image Modified

cert.pem auswählen und hochladen

...

Codeblock
LAUFWERKSBUCHSTABE_EXCHANGE_ISO:\setup.exe /role:managementtools /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF 

Bitte kontrollieren und falls nicht vorhanden, die Microsoft.Exchange.ManagedLexRuntime.MPPGRuntime.dll vom Exchange-Server auf den aktuellen Rechner kopieren (Ziel- und Quellordner C:\Program Files\Microsoft\Exchange Server\V15\Bin ) Ansonsten kommt es bei der Ausführung zu folgendem Fehler:

...

4.3. Remote PowerShell mit Basic-Auth einrichten (Migrationsserver ist kein Memberserver der Domäne mit Exchange)

Zusätzliche Anforderung: Ports TCP 80,443 (5985/5986)

4.3.1. Client

Kontrolle aktuelle Einstellung

Codeblock
Get-Item wsman:\localhost\client\trustedhosts

Wenn dort ein “*” steht, ist das bereits in Ordnung

Ansonsten,

Codeblock
Set-Item wsman:\localhost\client\trustedhosts -Value "Zielserver-IP"

Basic Auth auf dem Client setzen

Codeblock
winrm set winrm/config/client/auth @{Basic="true"}

4.3.2. Exchange-Server

...

Codeblock
Enable-PSRemoting -Force
Set-PowerShellVirtualDirectory -Identity "PowerShell (Default Web Site)" -BasicAuthentication $true
iisreset

...

Diese werden dann AES verschlüsselt abgelegt und für die Verbindung zu Exchange vom Domino-Server aus verwendet.

5. SharePoint Online

Es muss PnP PowerShell in PowerShell 7.2+ installiert werden: Dazu eine administrative PowerShell 7.2+ (pwsh.exe) starten

Codeblock
Install-Module PnP.PowerShell -Scope AllUsers

Für SharePoint muss die App analog zu Exchange Online registriert werden und auch per Zertifikat authentifiziert werden.

Falls für Shift eine andere registrierte App genutzt werden soll als für SWAP, müssen die Credentials für diesen Fall separat gespeichert werden und der Pfad muss in der Shift-Ziel-Konfiguration absolut (ohne \ am Ende!) angegeben werden.

Codeblock
.\stanocPowerHelper.ps1 -prepareCredentials -CredentialPath "C:\Program Files\HCL\Domino\stanoc\stanocPowerHelperShift"

...

Es müssen zusätzlich die folgenden API-Berechtigungen gesetzt sein (Anwendung mit Administratorzustimmung)

  • SharePoint → Sites.FullControl.All

  • SharePoint → TermStore.ReadWrite.All

  • SharePoint → User.ReadWrite.All

    image-20240913-144454.pngImage Added

Zum Testen kann

Codeblock
.\stanocPowerHelper.ps1 -ConnectPNP -PnpSiteURL "https://..""  -CredentialPath "C:\Program Files\HCL\Domino\stanoc\stanocPowerHelperShift"

verwendet werden.

Für die Nutzung per API (nicht PowerShell) wird auch die Applikation-ID und ein Secret benötigt.

6. Troubleshooting für die Ausführung

Falls es bei der Ausführung zu einem "is not digitally signed" Fehler kommt, bitte diesen Befehl ausführen:

...