PowerShell Funktion um sich mit Office 365 mit MFA (Mehrfaktorauthentifizierung) zu verbinden

Der geneigte Administrator verbindet sich in der Regel fast täglich mit den Office 365 Diensten. Seit der umfassenden Einführung der MFA/2FA (Mehrfaktor-Authentifizierung) lässt sich dier Prozess nicht mehr ganz so einfach automatisieren.

Bisher reichte eine entsprechende Funktion im PowerShell Profil:

function Connect-o365 
{
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell/" -Credential $UserCredential -Authentication Basic -AllowRedirection -AllowClobber
Import-PSSession $Session
Connect-MsolService -Credential $UserCredential
}

In der schönen neuen Welt der sicheren Authentifizierung ist das nicht mehr so einfach; man benötigt überhaupt ersterinmal das entsprechende PowerShell Modul, das im Office 365 Tenant versteck ist.

Außerdem sind die ConnectionUri’s nun deutlich verteilter als früher, um eine Verbindungzu allen Services herzustellen sind nun deutlich mehr Schritte notwendig.

The Lazy Administrator“ hat sich bewundernswerter Weise diesem Problem umfassend gewidmet und eine traumhafte Funktion geschrieben, die folgende Verbidnungen unterstützt:

  • SFA und MFA (Parameter „-MFA“)
  • Exchange Online
  • Skype for Business
  • SharePoint Online
  • Security and Compliance Center
  • Azure AD v2
  • Azure AD v1 (MSOnline)
  • Microsoft Teams
  • Services einzeln oder zusammen nutzbar (Parameter „-Service“, zum Beispiel „-Service Exchange, MSOnline“)

Auf der Projektseite dazu gibt es den vollständigen Download und die zugehörige Dokumentation.

https://www.thelazyadministrator.com/2019/02/05/powershell-function-to-connect-to-all-office-365-services-with-support-for-mfa/

Ich werde die Übersicht hier nicht noch einmal wiederholen, aber großen Respekt und ein echtes Admin-Dankeschön für echten neuen Lebenskomfort an TheLazyAdmin übersenden 🙂

Office 365 Powershell Zugänge unter Windows 10 (1809+)

Nachdem der letze Beitrag zum Thema Office 365 Powershell ja mittlerweile veraltet ist, hier die aktuelle Methode eine Verbindung zu Office 365 herzustellen.

„Heute“ nutzt man direkt die AzureAD Module die man via NuGet installiert und nicht mehr die MSOnline „Extra“ Shell.

Installation des AzureAD Module (Lizenzen, Office 365 Benutzer …)

  1. Öffnen der Powershell „Als Administrator“ und das Modul installieren:
PS C:\> Install-Module -Name AzureAD

Nicht vertrauenswürdiges Repository
Sie installieren die Module aus einem nicht vertrauenswürdigen Repository. Wenn Sie diesem Repository vertrauen, ändern
 Sie dessen InstallationPolicy-Wert, indem Sie das Set-PSRepository-Cmdlet ausführen. Möchten Sie die Module von
'PSGallery' wirklich installieren?
[J] Ja  [A] Ja, alle  [N] Nein  [K] Nein, keine  [H] Anhalten  [?] Hilfe (Standard ist "N"): j
PS C:\>

2. Herstellen der Verbindung zum AzureAD (Office 365)

PS C:\> Connect-AzureAD

Account                     Environment TenantId                             TenantDomain    AccountType
-------                     ----------- --------                             ------------    -----------
<UPN>> AzureCloud  affeaffe-b00b54e0e-a0c4-a5b16ca62f5b <DOMAIN> User
PS C:\>

… fertig. Und schon kann man mit den AzureAD-CMDlets wie Get-AzureADUser, Get-AzureADUserLicenseDetail und allen anderen loslegen.

Eine Liste aller CMDlets gibt es mit:

Get-Command -Module AzureAD

PHP Manager 1.2 for IIS 7 Installation failed (1603)

Unter Windows Server 2016 möchte der PHP Manager für den IIS via Plattform-Installer nicht so recht installiert werden. Das Logfile dazu sagt:

...
MSI (s) (2C:10) [ZEIT]: Product: PHP Manager 1.2 for IIS 7 -- Installation failed.
MSI (s) (2C:10) [ZEIT]: Windows Installer installed the product. Product Name: PHP Manager 1.2 for IIS 7. Product Version: 1.2.0. Product Language: 1033. Manufacturer: . Installation success or error status: 1603.
...

Ähnlich wie die scheinbar von Selbstzweifeln geprägte Aussage „Installation success or error“ ist auch der Rest des Logfiles nicht wirklich hilfreich.

Lösung

Die Lösung ist einfach, wenn auch (bis heute zumindest) nicht dokumentiert. Es geht nicht – der IIS PHP Manager ist nur für Windows 8.1 oder kleiner (IIS 8) gedacht, nicht für den IIS 10.0 (Windows 10 / Server 2016). Glücklicherweise lässt sich die IIS-Versionserkennung recht einfach patchen:

  1. Ändere diesen REG_DWORD auf 8 (dezimal): HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\MajorVersion
  2. Instaliere den PHP Manager
  3. Ändere den Schlüssel wieder zurück auf 10

Uns sind bisher keine negativen Folgen der Änderungen bekannt.

„Outlook kann Ihre Suche nicht ausführen“ Outlook 2013/2016/2019/365 unter Server 2016

Problem

Man sucht mit Outlook in der Schnellsuche (oben), aber man erhält keine Ergebnisse. Genauer gesagt, die Anzeige verändert sich überhaupt nicht. Der Indizierungsstatus meldet aber noch „0 Elemente“ und die erweiterte Suche funktioniert einwandfrei. Ganz unten, unterhalb der E-Mails sieht man in Kursiv die Meldung

"Outlook kann Ihre Suche nicht ausführen"
oder auf Englisch:
"Outlook cannot perform the search."

Das passiert auf Windows Server 2016 RDS („Terminal Server“).

Lösung

Das passiert mehr oder weniger automatisch, wenn man das Windows-Update KB4467684 installiert (27. November 2018, Build 14393.2639). Das ist ein bekannter Bug in diesem Patch. Das Problem kann (temporär) gelöst werden durch (kein Scherz):

sfc /scannow

DSL-Zugang mit Kennwort aus Fritz!Box auslesen

Problem

„Jemand“ hat „damals“ mal eine Fritz!Box für den Internetzugang konfiguriert und man benötigt heute das aktuelle Zugangskennwort. Fritzboxen rücken die Zugangsdaten aber nicht freiwillig raus.

Lösung

  1. Auf der Weboberfläche (z.B. http://fritz.box) anmelden
  2. „FRITZ!Box Paketmitschnitt“ starten: http://fritz.box/cgi-bin/webcm?getpage=../html/capture.html
  3. Eine Paketaufnahme für den DSL-Port starten (oberer Knopf) und die Datei speichern. die Datei wächst solange es Traffic auf dem POrt gibt.
  4. DSL-Kabel rausziehen, 2 Sekunden warten (bis die grüne Lampe ausgeht) und wieder in die Box stecken
  5. Wenn die Internetverbindung wider besteht, die Paketaufnahme beenden und die Datei öffnen
  6. Datei nach dem Benutzernamen durchsuchen; direkt dahinter steht das Kennwort.