Versionen im Vergleich

Schlüssel

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

Inhalt

1.

...

Setting up PowerShell is only necessary for environments if:

  • the archive system is connected to Exchange

  • the Outlook add-in is to be used

  • Migrations from/to Exchange are to be carried out

  • SharePoint is to be controlled via Shift

2. installation stanoc PowerShell script

...

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

Der PowerHelper muss in <Domino Programmverzeichnis> in das Unterverzeichnis stanoc kopiert werden:
https://stanoc.atlassian.net/l/c/vBF13fut

PrerequisiteVoraussetzung: PowerShell 5.x (version can be changed via commandVersion lässt sich per Befehl

Codeblock
$psversiontable 

in PowerShell herausfinden) or neweroder neuer. (From Ab Windows Server 2016).

Older servers require an update Ältere Server benötigen ein Update ( https://www.microsoft.com/en-us/download/details.aspx?id=54616 - Attention - a reboot is probably due)
The file Achtung - es wird wahrscheinlich ein Reboot fällig)
Die Datei stanocPowerHelper.zip contains a PowerShell script for accessing Exchange Online or enthält ein PowerShell-Skript für den Zugriff auf Exchange Online bzw. on Premises.

The following work must be carried out in preparation (please continue with either Zur Vorbereitung müssen folgende Arbeiten ausgeführt werden (bitte entweder bei 3. Exchange Online or oder 4. Exchange on Premises weitermachen)

Für das Exchange Online Management Modul wird auch noch Microsoft .NET Framework 4.7.1 or higher is also required for the Exchange Online Management module 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 or newer is required for SharePoint (see also oder neuer (siehe auch https://pnp.github.io/powershell/articles/installation.html ) is requirederforderlich.

We recommend the current LTS version, e.g. from 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 to be used zu verwenden.

2.1.

...

TLS 1.2

...

aktivieren/erzwingen

Damit sichere TLS 1.2 connections, please issue the following command in an administrator PowerShellVerbindungen genutzt werden, bitte folgenden Befehl in einer Administrator-PowerShell absetzen

Codeblock
cd <Domino Programmverzeichnis>\stanoc
.\stanocPowerHelper -ConfigureTLS

...

If the output looks like in the screenshot (options not set), please answer the query with "Y" and restart the serverFalls 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

Bitte einmalig folgendes in der Administrator-PowerShell ausführen, um die Module für Exchange Online, Microsoft Online and und Azure AD zu 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

ATTENTIONACHTUNG: Microsoft no longer allows erlaubt die Basic Auth since seit September/October Oktober 2022 . Therefore, please also carry out the following for existing installationsSign in to the Azure AD portalnicht mehr. Daher bitte auch bei vorhandenen Installation folgendes durchführen

Im Azure AD Portal anmelden

https://aad.portal.azure.com/

App registrations → New registration-Registrierungen → Neue Registrierung

...

Name: "stanocPowerHelper"“stanocPowerHelper”

...

RegisterRegistrieren

Copy and save the application Anwendungs-ID (clientClient) (required later)Call up the manifest and in the editor (from approx. line kopieren und sichern (wird später benötigt)

Manifest aufrufen und im Editor (ab ca. Zeile 42) resourceAppId,id and type customize and save und type anpassen und speichern

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

...

API authorizations-BerechtigungenThe

following API authorizations must also be selected for Entra IDFolgende API-Berechtigungen müssen für Entra ID zusätzlich ausgewählt werden:

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

Grant administrator approval for the tenantAdministratorzustimmung für den Tenant erteilen

...

On the computer on which the PowerShell script is to be executed, create and save the certificate using stanocPowerHelper.ps1

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"

...

Attention: The certificate creation under Achtung: Die Zertifikatserstellung unter Windows Server 2012 R2 does not work correctly. The certificate creation must therefore be executed on a different server operating system funktioniert nicht korrekt. Die Zertifikatserstellung muss daher auf einem anderen Server Betriebssystem (Windows Server 2019 / Windows Server 2022) or on a local client installation of the 'stanoc PowerHelper script' oder auf einer lokalen Clientinstallation des ‘stanoc PowerHelper Skript’ (min . Windows 10) . Otherwise, the following error will occur during the connectionausgeführt werden. Ansonsten kommt es bei der Verbindung zu folgendem Fehler:

...

Assign certificate to the appZertifikat der App zuweisen

Select and upload cert.pem auswählen und hochladen

...

Assign Entra ID roles Rollen (Global Reader Globaler Leser / Exchange Administrator) zuweisen

...

You can also define and assign a role group yourself.

Move up one level and switch to "Roles and administrators"

...

Search for "Exchange Administrator" roleMan kann auch selbst eine Rollengruppe definieren und diese zuweisen.

Eine Ebene höher wechseln und auf “Rollen und Administratoren” wechseln

...

“Exchange-Administrator” Rolle suchen

...

3.3.

...

Testen der Verbindung

Codeblock
.\stanocPowerHelper.ps1 -ReadAllMailBoxproperties -domain Ihre-Domäne -outputfile D:\stanoc\TEMP\test.txt

4.

...

Exchange on

...

Premises /

...

Active Directory

4.1.

...

Wichtiger Hinweis zu Exchange on Premises

During the migration phase, a large number of transactions are executed on the Exchange database files. It is therefore important to provide sufficient disk space for storing the transaction logs of the database files. Ideally, these should be stored on a separate volume that can be enlarged if necessary. The size of the transaction logs can exceed the size of the database files.

Alternatively, you can also activate circulation logging for the mailbox databases during the migrationWährend der Migrationsphase werden sehr viele Transaktionen auf die Exchange Datenbankdateien ausgeführt. Daher ist es wichtig, ausreichend viel Speicherplatz für die Speicherung der Transaktionsprokotolle der Datenbankdateien vorzuhalten. Idealerweise sollten diese auf einem separaten Volume liegen, das bei Bedarf vergrößert werden kann. Die Größe der Transaktionsprotokolle kann die Größe der Datenbankdateien überschreiten.

Alternativ kann man auch die Umlaufprotokollierung für die Mailboxdatenbanken während der Migration aktivieren.

4.2.

...

Exchange Management PowerShell / Active Directory Management Tools

...

installieren (Migrationsserver ist Member der AD-Domäne mit Exchange)

Dazu in der PowerShell des Domino-Servers folgendes ausführen:

Codeblock
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementScriptingTools,IIS-ManagementScriptingTools,IIS-IIS6ManagementCompatibility,IIS-LegacySnapIn,IIS-ManagementConsole,IIS-Metabase,IIS-WebServerManagementTools,IIS-WebServerRole
Add-WindowsFeature -name RSAT-AD-AdminCenter,RSAT-ADDS,RSAT-ADDS-Tools,RSAT-AD-PowerShell,RSAT-ADLDS,RSAT-AD-Tools

If you only need the Falls man nur die Active Directory Management Tools , you are finished at this pointbenötigt, ist man an dieser Stelle fertig.

Install Visual Studio C++ 2012 Redistributable installieren (source Quelle https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe )
If Falls .Net 4.8 is not yet installed, please install it (Sourcenoch nicht installiert ist, bitte installieren (Quelle: https://go.microsoft.com/fwlink/?linkid=2088631 )

Mount the Die Exchange ISO file and then install the management tools-ISO Datei mounten und dann die ManagementTools installieren

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

(from ab Exchange 2019 CU 11 (or possibly already oder evtl. bereits CU 10):

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

Please check and if not availablecopy the Bitte kontrollieren und falls nicht vorhanden, die Microsoft.Exchange.ManagedLexRuntime.MPPGRuntime.dll from the Exchange server to the current computer (target and source folder vom Exchange-Server auf den aktuellen Rechner kopieren (Ziel- und Quellordner C:\Program Files\Microsoft\Exchange Server\V15\Bin ) Otherwise the following error will occur during executionAnsonsten kommt es bei der Ausführung zu folgendem Fehler:

...

View file
name2019-CU11 Microsoft.Exchange.ManagedLexRuntime.MPPGRuntime.dll

4.3

...

.

...

Remote PowerShell

...

mit Basic-Auth

...

einrichten (Migrationsserver ist kein Memberserver der Domäne mit Exchange)

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

4.3.1

...

.

...

Client

Check current settingKontrolle aktuelle Einstellung

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

If there is an "*" there, this is already OK

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

Ansonsten,

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

Set basic auth on the clientBasic 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

4.4.

...

Exchange on Premises ApplicationImpersonation

...

einrichten

Dazu in der Exchange Management PowerShell folgenden Befehl ausführen:

Codeblock
New-ManagementRoleAssignment -name:impersonationAssignmentName -Role:ApplicationImpersonation -User:adminstanoc@ad.kunde.de

adminstanoc@ad.kunde.de with the corresponding AD user who is to perform the migration durch den entsprechenden AD-User ersetzen, der die Migration durchführen soll

4.5.

...

Exchange on Premises

...

Limits anpassen

Codeblock
Get-Mailbox | Set-Mailbox -MaxSendSize 150MB -MaxReceiveSize 150MB
Get-MailboxPlan | Set-MailboxPlan -MaxSendSize 150MB -MaxReceiveSize 150MB

New-ThrottlingPolicy Migrationpolicy
Set-ThrottlingPolicy Migrationpolicy -RCAMaxConcurrency Unlimited -EWSMaxConcurrency Unlimited -EWSMaxSubscriptions Unlimited -CPAMaxConcurrency Unlimited -EwsCutoffBalance Unlimited -EwsMaxBurst Unlimited -EwsRechargeRate Unlimited
Get-Mailbox | Set-Mailbox -ThrottlingPolicy Migrationpolicy

4.6.

...

Exchange on Premises

...

Zugangsdaten hinterlegen

Anschließend einmalig die stanocPowerHelper.ps1 once with the parameter -prepareCredentials to store the credentials for accessing Exchange PowerShellmit dem Parameter -prepareCredentials ausführen um die Zugangsdaten für den Zugriff auf Exchange PowerShell zu hinterlegen:

Codeblock
.\stanocPowerHelper.ps1 -preprareCredentials

...

These are then stored in AES encrypted form and used for the connection to Exchange from the Domino serverDiese 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 must be installed in PowerShell 7.2+ : To do this, start an installiert werden: Dazu eine administrative PowerShell 7.2+ (pwsh.exe) starten

Codeblock
Install-Module PnP.PowerShell -Scope AllUsers

For SharePoint, the app must be registered in the same way as Exchange Online and also authenticated using a certificate.

The following API authorizations must also be set (application with administrator approvalFü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.png

The application ID and a secret are also required for use via API (not PowerShell).

6. troubleshooting for the execution

...

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" error occurs during execution, please execute this commandFehler kommt, bitte diesen Befehl ausführen:

Codeblock
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy bypass

...