
Ich habe versucht, dies von einer einfachen, neu installierten Powershell aus zu tun, auf der nichts anderes installiert war, aber die offizielle Methode scheint einfach zu Fehlern über fehlende Paketmanager, nicht vorhandene Paketanbieter, fehlende Befehle und verschiedene andere ähnliche Meldungen zu führen. (Auf der Microsoft-Site heißt es einfach, Install-Module ExchangeOnlineManagement
dass dies alles ist, was benötigt wird.)
Einfach ausgedrückt besteht die eigentliche Möglichkeit darin, eine ganze Reihe voneinander abhängiger Programme in Powershell zu installieren, um den Install-Module ExchangeOnlineManagement
Befehl schließlich ausführen zu können. Die Anweisungen dazu sind über die gesamte Microsoft-Site verstreut, und der Versuch, dies zu tun, erfordert die Fehlerbehebung von etwa einem Dutzend verschiedener Fehler, was ein zeitaufwändiger Prozess ist.
Was ist einvollständigWie viele Schritte muss ich unternehmen, um von einer einfachen Powershell zu einer zu gelangen, die auf einem Windows-Rechner eine Verbindung zu Office-365 Exchange Online herstellen kann?
Antwort1
Verfügbare Module und Cmdlets sind PowerShell-versionsspezifisch. Sie sagen weder, welches WinOS Sie verwenden, noch welche PowerShell-Version Sie verwenden.
Es gibt keinen Grund, PowerShell unter Windows zu installieren.Es ist standardmäßig vorhanden, da es Teil des Betriebssystems ist. Verwenden Sie einfach das Startmenü, um entweder den Konsolenhost oder die ISE (Integrated Scripting Environment) zu starten. Wenn Sie jedoch ein älteres Windows verwenden, verwenden Sie auch die ältere PowerShell, sofern Sie die Windows PowerShell-Version nicht auf die neueste Version aktualisiert haben.
Unterschiede zwischen PowerShell-Versionen
Die ausführbaren Dateien sind also powershell.exe oder powershell_ise.exe.
Die einzige andere Möglichkeit zur Installation ist die Installation eines plattformübergreifenden PowerShell-Cores.(ist allerdings für Ihr Vorhaben nicht erforderlich, Sie haben jedoch die Wahl und können beides verwenden, auch gleichzeitig.)
Durch die Installation von PSCore wird Windows PowerShell weder aktualisiert noch ersetzt, das Teil des Betriebssystems ist. Es ist ein Side-by-Side-Modell und ...
pwsh.exe
... ist die ausführbare Datei für PSCore.
Anschließend aktualisieren Sie die PowerShell-Hilfedateien …
Update-Help -Force -ErrorAction SilentlyContinue
..., und verwenden Sie dann die ...
Find-Module
... alleiniger Befehl zum Aktualisieren der Paketverwaltung oder eines bestimmten Moduls,
Find-Module -Name 'ExchangeOnlineManagement' |
Install-Module -Force
... oder führen Sie einfach dies aus ...
Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber
... manuell, um den Paketmanager zu aktualisieren.
Installieren Sie abschließend die Module, die Sie benötigen/möchten, und lassen Sie sie mithilfe Ihres PowerShell-Profils automatisch laden. In Ihrem Profil sieht dies so aus:
# Required for use with web SSL sites
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::
SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
... sollte dort sowie in allen Ihren verteilten Skripten enthalten sein.
Um etwas auf O365/M365 zu verwenden, müssen Sie sich zuerst beim Dienst anmelden.
Herstellen einer Verbindung zu allen Microsoft 365-Diensten in einem einzigen PowerShell-Fenster
$orgName="<for example, litwareinc for litwareinc.onmicrosoft.com>"
$acctName="<UPN of the account, such as [email protected]>"
$credential = Get-Credential -UserName $acctName -Message "Type the account's password."
#Azure Active Directory
Connect-AzureAD -Credential $credential
#SharePoint Online
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -credential $credential
#Skype for Business Online
Import-Module MicrosoftTeams
Connect-MicrosoftTeams -Credential $credential
#Exchange Online
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -ShowProgress $true
#Security & Compliance Center
Connect-IPPSSession -UserPrincipalName $acctName
#Teams
Import-Module MicrosoftTeams
Connect-MicrosoftTeams -Credential $credential
Antwort2
Durch einiges Ausprobieren habe ich es folgendermaßen geschafft (obwohl ich nicht ganz sicher bin, wie sicher und richtig das ist oder ob einige Schritte redundant sind, da das entsprechende Wissen fragmentiert ist):
Anfangen:
Überprüfen Sie zunächst die Powershell-Version mit Get-Host
, die mindestens sein muss 5.0
. Wenn nicht, installieren Sie das neueste .msu
Paket dafür, indem Sie das Installationsprogramm herunterladen und ausführen. Führen Sie dann Folgendes aus:
# Powershell defaults to TLS1.1, which was deprecated.
# Thus by default its package management functions ship broken. Force it to use TLS1.2 by setting:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Find-PackageProvider -Name "NuGet" -AllVersions
# Select the latest version
Install-PackageProvider -Name "NuGet" -RequiredVersion "2.8.5.208" -Force
# Check with
Get-PackageProvider
# Register the repo
Register-PSRepository -Default -Verbose
# Check with
Get-PSRepository
# Check which version pops up in the error when running
Install-Module PowerShellGet
# Then run the command to update PowerShellGet (replace the version number with the latest from the previous command):
Install-Module PowerShellGet -RequiredVersion 2.2.5
# Finally:
Install-Module ExchangeOnlineManagement
# Next, enable running scripts with:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
# Import
Import-Module ExchangeOnlineManagement
Antwort3
Stellen Sie sicher, dass Ihre Windows Server/Client-Version dieUnterstützte Betriebssystemeund Ihr Server/Client erfüllt dieVoraussetzungen für das EXO V2 Modul(Unterstützte Betriebssysteme für das EXO V2-Modul):
Installieren Sie dann das EXO V2-Modul:
Installieren oder aktualisieren Sie diePowerShellGet-Modul(Stellen Sie sicher, dass Sie TLS 1.2 verwenden)
Installieren Sie das EXO V2-Modul mit dem Befehl
Install-Module -Name ExchangeOnlineManagement
Außer der Verwendung des EXO V2-Moduls in PowerShell zur Verwaltung von Office 365-Objekten können Sie auch dasGrundlegende Authentifizierung zum Herstellen einer Verbindung mit Exchange Online PowerShell(Davor war dieVoraussetzungensollte beachtet werden.)