POWERSHELL

Microsoft Graph API benutzt EWS Schnittstelle im Hintergrund

Andres Bohren
Hallo zusammen, Küzrlich habe ich einen Artikel veröffentlicht, bei dem ich übers GraphAPI Mails versendet habe https://blog.icewolf.ch/archive/2021/07/07/graph-api-send-mail-with-powershell.aspx Dabei habe ich komische Fehlermeldungen erhalten. Mit der PowerShell gabs einfach einen HTTP 401 Unauthorized Status. Erst im Graph Explorer sieht man etwas mehr { "error": { "code": "ErrorAccessDenied", "message": "Access to OData is disabled.", "innerError": { "date": "2021-07-16T16:06:01", "request-id": "30d5d686-af1a-4da2-b022-f554b985e8bf", "client-request-id": "87e12b56-d6fa-aa31-2e89-fd507125738a" } } } Die Permissions sind schon gegeben, daran kann es also nicht liegen.

Die Microsoft.Graph PowerShell Module ausprobiert

Andres Bohren
Hallo zusammen, Da das Azure AD PowerShell Modul wohl längerfristig nicht weiterentwickelt wird, habe ich mir mal die neue Alternative dazu angeschaut. Microsoft Lays Out Future for Azure AD PowerShell Module https://office365itpros.com/2021/06/03/microsoft-lays-out-future-azure-ad-powershell-module/ Get started with the Microsoft Graph PowerShell SDK https://docs.microsoft.com/en-us/graph/powershell/get-started Get-Module Microsoft.Graph -ListAvailable Find-Module Microsoft.Graph Install-Module Microsoft.Graph Get-Module Microsoft.Graph -ListAvailable Wie viel da zur Verfügung steht, sieht man anhand von folgendem command Get-Command -Module Microsoft.Graph.* | Measure Es gibt fast für alles ein PowerShell Modul

Graph API Send Mail with PowerShell

Andres Bohren
Hallo zusammen, Mit den Informationen kann man nun mit dem MSAL.PS Modul ein Token von Azure AD Import-Module MSAL.PS $TenantId = "icewolfch.onmicrosoft.com" $AppID = "c1a5903b-cd73-48fe-ac1f-e71bde968412" #DelegatedMail $Scope = "https://graph.microsoft.com/.default" $Token = Get-MsalToken -ClientId $AppID -TenantId $tenantID -Scope $Scope -Interactive Aus der Token Variable hole ich mir den AccessToken, lasse mir den AccessToken anzeigen und kopiere ihn mit dem "clip" Befehl in die Zwischenablage $AccessToken = $Token.AccessToken $AccessToken $AccessToken | clip

Show SMTP Certificate of Remote Server with PowerShell

Andres Bohren
Hallo zusammen, Vor einiger Zeit habe ich gebloggt, wie man ein Zertifikat von einem Server mit Openssl prüfen kann. Nun habe ich etwas ähnliches mit PowerShell realisiert. Dafür habe ich mir grosse Teile des Codes von Glen Scales geliehen https://github.com/gscales/Powershell-Scripts/blob/master/TLS-SMTPMod.ps1 ############################################################################### # Connect to SMTP Server, check for STARTTLS and then get the Certificate # 29.06.2021 V1.0 Andres Bohren - Initial Version ############################################################################### <# .SYNOPSIS .DESCRIPTION Connect to SMTP Server, check for STARTTLS and then get the Certificate

Fix PSRepository and PSGallery

Andres Bohren
Hallo zusammen, Kürzlich habe ich auf einem Windows Server 2012 R2 das Windows Management Framework 5.1 installiert https://blog.icewolf.ch/archive/2021/01/21/windows-management-framework-5-1-for-windows-server-2012r2.aspx Nicht zu vergessen sind die TLS 1.2 Einträge https://blog.icewolf.ch/archive/2020/12/03/admins-setzt-endlich-die-tls-1-2-eintrage-fur-dotnetpowershell.aspx Allerdings stimmt auf diesem Server etwas mit der PowerShell Gallery nicht. Wie man sieht ist kein Repository hinterlegt. Get-PackageProvider -ListAvailavle Get-PSRepository Es braucht also ein PowerShell Repository. Anscheinend geht das ab PowerShell 5.1 so [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Register-PSRepository -Default Nun wird das Repository angezeigt und ich mache die PSGallery gleich noch zu trusted Get-PSRepository Set-PSRepository -Name PSGallery -InstallationPolicy Trusted Schaut man sich das Modul PowerShellGet an, so ist das in der Version 1.

PowerShell blank screen when logon to M365

Andres Bohren
Hallo zusammen, Ich hatte kürzlich auf einem Server bei der Anmeldung bei AzureAD einen weissen Bildschirm (blank screen). Zuerst dachte ich, es hätte einen Zusammenhang mit der Deinstallation vom Internet Explorer https://blog.icewolf.ch/archive/2021/04/02/how-to-uninstall-internet-explorer-via-powershell.aspx Aber nachdem ich die Internet Security Settings auf den Standard zurückgesetzt hatte ging es dann. Falls nicht vielleicht auch noch die Internet Explorer "Enhanced Security Configuration (IE ESC)" prüfen. Dann klappt es auch wieder beim Anmelden Grüsse Andres Bohren

MicrosoftTeams PowerShell Module 2.3.1 - still problems with Certificate Based Authentication (CBA)

Andres Bohren
Hallo zusammen, Es gibt schon wieder eine neue Version vom MicrosoftTeams PowerShell Module. Anzeigen des aktuell installierten PowerShell Moduls Get-Module MicrosoftTeams -ListAvailable Aktuelles Modul in der PSGallery suchen Find-Module MicrosoftTeams Modul aus der PowerShell Gallery aktualisieren Update-Module MicrosoftTeams Wie man sieht, wird mit dem Update-Module Befehl einfach die neue Version installiert, ohne die alte Version zu entfernen. Aus meiner Sicht ist ein Uninstall-Module / Install-Module besser. Get-Module MicrosoftTeams -ListAvailable Lade ich das Modul, dann wird jedoch die neuste Version geladen.

My first PowerShell Module: Icewolf.EXO.SpamAnalyze

Andres Bohren
Hallo zusammen, Es braucht einiges an Know-How um herauszufinden, weshalb ein Mail im Junk-E-Mail Folder landet oder gar in die Quarantäne verschoben wurde. Als erstes macht man ein MessageTrace $MT = Get-MessageTrace -StartDate (get-date).AddDays(-10) -EndDate (get-date) -SenderAddress andres.bohren@gmail.com $MT | Format-Table Received, SenderAddress, RecipientAddress, Subject, Status, MessageTraceID $MTD = Get-MessageTraceDetail -MessageTraceId 5b018c12-df4a-4300-df60-08d90bca587d -RecipientAddress a.bohren@icewolf.ch -StartDate (get-date).AddDays(-10) -EndDate (get-date) $MTD Schauen wir uns das "Spam" Event ein bisschen genauer an. Im Property "

Powershell v7.1.3 released

Andres Bohren
Hallo zusammen, Schon eine paar Wochen her, dass PowerShell 7.1.3 veröffentlicht wurde. Bin aber erst jetzt dazu gekommen, das zu bloggen. Hier habe ich zusätzlich zum default "Enable Powershell remoting" aktiviert Grüsse Andres Bohren

Send S/MIME Signed Mail with Powershell

Andres Bohren
Hallo zusammen, Vor etwa einem Monat habe ich mir ein neues Email Zertifikat gekauft um meine Emails Signiert versenden zu können. Das Zertifikat habe ich als PFX exportiert und mit einem Passwort versehen. Ich habe mich gefragt, ob man S/MIME Signierte Emails nicht auch über PowerShell versenden könnte. Bin dann auf eine Implementierung von Rob Kalmer gestossen https://www.powershellgallery.com/packages/smtp.smime.lib/1.0.4/Content/smtp.smime.lib.ps1 Ich habe das ganze ein bisschen gekürzt und eigentlich nur einen Wrapper darum herum geschrieben, welcher es ermöglicht die Mails über ein Script mit allen Parametern zu versenden.