Inhalt |
---|
1.
...
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
...
introduction
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
The PowerHelper must be installed in <Domino program directory> in the subdirectory stanoc be copied:
https://stanoc.atlassian.net/l/c/vBF13fut
VoraussetzungPrerequisite: PowerShell 5.x (Version lässt sich per Befehlversion can be changed via command
Codeblock |
---|
$psversiontable |
in PowerShell herausfinden) oder neueror newer. (Ab From Windows Server 2016).
Ältere Server benötigen ein Update Older servers require an update ( https://www.microsoft.com/en-us/download/details.aspx?id=54616 - Achtung - es wird wahrscheinlich ein Reboot fällig)
Die Datei Attention - a reboot is probably due)
The file stanocPowerHelper.zip enthält ein PowerShell-Skript für den Zugriff auf Exchange Online bzw. contains a PowerShell script for accessing Exchange Online or on Premises.
Zur Vorbereitung müssen folgende Arbeiten ausgeführt werden (bitte entweder bei The following work must be carried out in preparation (please continue with either 3. Exchange Online oder or 4. Exchange on Premises weitermachen)
Für das Exchange Online Management Modul wird auch noch Microsoft .NET Framework 4.7.1 oder höher benötigt or higher is also required for the Exchange Online Management module ( 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 or newer is required for SharePoint (see also https://pnp.github.io/powershell/articles/installation.html ) erforderlichis required.
Es empfiehlt sich die aktuell LTS - Version z.B. von We recommend the current LTS version, e.g. from https://learn.microsoft.com/de-de/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.4 zu verwenden to be used.
2.1
...
Enable/enforce TLS 1.2
...
To use secure TLS 1.2 Verbindungen genutzt werden, bitte folgenden Befehl in einer Administrator-PowerShell absetzenconnections, please issue the following command in an administrator PowerShell
Codeblock |
---|
cd <Domino Programmverzeichnis>\stanoc .\stanocPowerHelper -ConfigureTLS |
...
Falls die Ausgabe wie im Screenshot aussieht (Optionen nicht gesetzt), bitte die Abfrage mit “Y” beantworten und den Server neu startenIf the output looks like in the screenshot (options not set), please answer the query with "Y" and restart the server.
3. Exchange Online
...
and Entra ID
3.1
...
Installing the required modules
Please run the following once in the Administrator PowerShell to install the modules for Exchange Online, Microsoft Online und and 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
...
Store Exchange Online
...
access data
ACHTUNGATTENTION: Microsoft erlaubt die no longer allows Basic Auth seit since September/Oktober October 2022 nicht mehr. Daher bitte auch bei vorhandenen Installation folgendes durchführenIm Azure AD Portal anmelden. Therefore, please also carry out the following for existing installations
Sign in to the Azure AD portal
App -Registrierungen → Neue Registrierungregistrations → New registration
...
Name: “stanocPowerHelper”"stanocPowerHelper"
...
→ RegistrierenRegister
Anwendungs-Copy and save the application ID (Clientclient) kopieren und sichern (wird später benötigt)Manifest aufrufen und im Editor (ab ca. Zeile (required later)
Call up the manifest and in the editor (from approx. line 42) resourceAppId
,id
und type
anpassen und speichern and type
customize and save
Codeblock |
---|
"requiredResourceAccess": [ { "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", "resourceAccess": [ { "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", "type": "Role" } ] } ], |
...
API -BerechtigungenauthorizationsFolgende API-Berechtigungen müssen für Entra ID
zusätzlich ausgewählt werdenThe following API authorizations must also be selected for Entra ID:
Codeblock |
---|
Contacts.ReadWrite Directory.ReadWriteAll Group.ReadWriteAll User.ReadWriteAll |
Administratorzustimmung für den Tenant erteilenGrant administrator approval for the tenant
...
Auf dem Rechner, auf dem das PowerShell-Skript ausgeführt werden soll, per stanocPowerHelper.ps1 das Zertifikat erzeugen und sichern
On the computer on which the PowerShell script is to be executed, create and save the certificate using stanocPowerHelper.ps1
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 Attention: The certificate creation under Windows Server 2012 R2 funktioniert nicht korrekt. Die Zertifikatserstellung muss daher auf einem anderen Server Betriebssystem does not work correctly. The certificate creation must therefore be executed on a different server operating system (Windows Server 2019 / Windows Server 2022) oder auf einer lokalen Clientinstallation des ‘stanoc PowerHelper Skript’ or on a local client installation of the 'stanoc PowerHelper script' (min . Windows 10) ausgeführt werden. Ansonsten kommt es bei der Verbindung zu folgendem Fehler. Otherwise, the following error will occur during the connection:
...
→ Zertifikat der App zuweisenAssign certificate to the app
Select and upload cert.pem auswählen und hochladen
...
Assign Entra ID Rollen roles (Globaler Leser Global Reader / Exchange Administrator) zuweisen
...
→ Man kann auch selbst eine Rollengruppe definieren und diese zuweisen.
Eine Ebene höher wechseln und auf “Rollen und Administratoren” wechseln
...
“Exchange-Administrator” Rolle suchenYou can also define and assign a role group yourself.
Go up one level and switch to "Roles and administrators"
...
Search for "Exchange Administrator" role
...
3.3
...
Testing the connection
Codeblock |
---|
.\stanocPowerHelper.ps1 -ReadAllMailBoxproperties -domain Ihre-Domäne -outputfile D:\stanoc\TEMP\test.txt |
4.
...
exchange on
...
premises /
...
active directory
4.1
...
Important note on Exchange on Premises
Wä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.
...
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 migration.
4.2 Install Exchange Management PowerShell / Active Directory Management Tools
...
(migration server is a member of the AD domain with Exchange)
To do this, execute the following in the PowerShell of the Domino server:
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 |
Falls man nur die If you only need the Active Directory Management Tools benötigt, ist man an dieser Stelle fertig, you are finished at this point.
Install Visual Studio C++ 2012 Redistributable installieren (Quelle source https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe )
Falls If .Net 4.8 noch nicht installiert ist, bitte installieren (Quelleis not yet installed, please install it (Source: https://go.microsoft.com/fwlink/?linkid=2088631 )
Die Mount the Exchange -ISO Datei mounten und dann die ManagementTools installierenISO file and then install the management tools
Codeblock |
---|
LAUFWERKSBUCHSTABE_EXCHANGE_ISO:\setup.exe /role:managementtools /IAcceptExchangeServerLicenseTerms |
(ab from Exchange 2019 CU 11 (oder evtl. bereits or possibly already CU 10):
Codeblock |
---|
LAUFWERKSBUCHSTABE_EXCHANGE_ISO:\setup.exe /role:managementtools /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF |
Bitte kontrollieren und falls nicht vorhanden, die Please check and if not availablecopy the Microsoft.Exchange.ManagedLexRuntime.MPPGRuntime.dll vom Exchange-Server auf den aktuellen Rechner kopieren (Ziel- und Quellordner from the Exchange server to the current computer (target and source folder C:\Program Files\Microsoft\Exchange Server\V15\Bin ) Ansonsten kommt es bei der Ausführung zu folgendem FehlerOtherwise the following error will occur during execution:
...
View file | ||
---|---|---|
|
4.3
...
Set up Remote PowerShell
...
with Basic-Auth
...
(migration server is not a member server of the domain with Exchange)
Zusätzliche AnforderungAdditional requirement: Ports TCP 80,443 (5985/5986)
4.3.1
...
Client
Kontrolle aktuelle EinstellungCheck current setting
Codeblock |
---|
Get-Item wsman:\localhost\client\trustedhosts |
Wenn dort ein “*” steht, ist das bereits in Ordnung
AnsonstenIf there is an "*" there, this is already OK
Otherwise,
Codeblock |
---|
Set-Item wsman:\localhost\client\trustedhosts -Value "Zielserver-IP" |
Basic Auth auf dem Client setzenSet basic auth on the client
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
...
Set up Exchange on Premises ApplicationImpersonation
...
To do this, execute the following command in the Exchange Management PowerShell folgenden Befehl ausführen:
Codeblock |
---|
New-ManagementRoleAssignment -name:impersonationAssignmentName -Role:ApplicationImpersonation -User:adminstanoc@ad.kunde.de |
adminstanoc@ad.kunde.de durch den entsprechenden AD-User ersetzen, der die Migration durchführen soll with the corresponding AD user who is to perform the migration
4.5
...
Adjust Exchange on Premises
...
limits
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
...
Store Exchange on Premises
...
access data
Then execute the stanocPowerHelper.ps1 mit dem Parameter -prepareCredentials ausführen um die Zugangsdaten für den Zugriff auf Exchange PowerShell zu hinterlegenonce with the parameter -prepareCredentials to store the credentials for accessing Exchange PowerShell:
Codeblock |
---|
.\stanocPowerHelper.ps1 -preprareCredentials |
...
Diese werden dann AES verschlüsselt abgelegt und für die Verbindung zu Exchange vom Domino-Server aus verwendetThese are then stored in AES encrypted form and used for the connection to Exchange from the Domino server.
5
...
SharePoint Online
Es muss PnP PowerShell must be installed in PowerShell 7.2+ installiert werden: Dazu eine : To do this, start an 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 werdenFor SharePoint, the app must be registered in the same way as Exchange Online and also authenticated using a certificate.
If a different registered app is to be used for Shift than for SWAP, the credentials for this case must be saved separately and the path must be specified absolutely (without \ at the end!) in the Shift target configuration.
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
The following API authorizations must also be set (application with administrator approval)
SharePoint → Sites.FullControl.All
SharePoint → TermStore.ReadWrite.All
SharePoint → User.ReadWrite.All
Zum Testen kannFor testing
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 can be used.
The application ID and a secret are also required for use via API (not PowerShell).
6. troubleshooting for the execution
If an "is not digitally signed" Fehler kommt, bitte diesen Befehl ausführenerror occurs during execution, please execute this command:
Codeblock |
---|
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy bypass |
...