blog.icewolf.ch

Let's talk about IT!
posts - 1837, comments - 295, trackbacks - 0

My Links

Archives

Post Categories

icewolf

PowerShell

Scripting - the new way
Zahlenrätsel mit PowerShell lösen

Hallo zusammen, Ich bin per Zufall auf folgendes Zahlenrätsel gestossen. Und habe Beschlossen, das mit PowerShell zu lösen. Abu Ali al-Hasan ibn al-Hasan ibn al-Haitham (965–1041) war ein Mathematiker, Astronom und Physiker ersten Ranges. In seiner Schrift "Über die Lösung einer Zahlenfrage+ findet man folgendes Rätsel: Als ein Schäfer nach der Grösse seiner Herde gefragt wird, antwortet er: "Es sind weniger als 500 Schafe. Teile ich die Anzahl meiner Schafe durch 2, 3, 4, 5 oder 6, so bleibt jedes Mal ein Schaf übrig. Teile ich meine Herde jedoch durch 7, so geht die Rechnung glatt auf." Wie gross ist die Herde? Nun lösen...

posted @ Saturday, July 17, 2021 10:56 AM | Filed Under [ PowerShell Fun ]

Microsoft Graph API benutzt EWS Schnittstelle im Hintergrund

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. Wie sich nun herausgestellt hat, benutzt die Graph API für den Zugriff auf Exchange (Mail / Kalender / Contacts) im Hintergrund die EWS Schnittstelle. Ich hatte vor einiger Zeit mit der EwsApplicationAccessPolicy rumgespielt und...

posted @ Friday, July 16, 2021 11:34 PM | Filed Under [ Exchange PowerShell ]

Die Microsoft.Graph PowerShell Module ausprobiert

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 Get-Module -Name Microsoft.Graph.* -ListAvailable Verbinden kann ich mich ganz einfach mit Connect-MgGraph Die Vorhandenen Endpoints kann ich mir mit folgendem Befehl anzeigen lassen Get-MgEnvironment Man kann sich auch über einen spezifischen Scope verbinden Connect-MgGraph -Scope Directory.Read.All Get-MgContext Und über ein Zertifikat kann man...

posted @ Tuesday, July 13, 2021 7:56 AM | Filed Under [ PowerShell ]

Graph API Send Mail with PowerShell

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 Nachdem die Untenstehende PowerShell Funktion geladen ist, analysiere ich den JWT AccessToken Parse-JWTtoken $AccessToken ############################################################################### # Parse JWT Token # https://www.michev.info/Blog/Post/2140/decode-jwt-access-and-id-tokens-via-powershell ############################################################################### function Parse-JWTtoken {       [cmdletbinding()]     param([Parameter(Mandatory=$true)][string]$token)       #Validate as per https://tools.ietf.org/html/rfc7519     #Access and ID tokens are fine, Refresh tokens will not work     if (!$token.Contains(".") -or !$token.StartsWith("eyJ")) {...

posted @ Wednesday, July 7, 2021 12:51 AM | Filed Under [ PowerShell Microsoft365 ]

Show SMTP Certificate of Remote Server with PowerShell

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 .PARAMETER ServerName     The Servername of the SMTP Server .PARAMETER Port     The Port of the SMTP Server (25 / 587) .PARAMETER Sendingdomain     The Sendingdomain used in the EHLO .PARAMETER CertificateFilePath     Optional a Path...

posted @ Tuesday, June 29, 2021 8:12 AM | Filed Under [ Exchange PowerShell ]

Fix PSRepository and PSGallery

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 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.0.0.1 installiert. Das muss noch aktualisiert werden, geht jedoch nur mit dem Force...

posted @ Thursday, May 20, 2021 9:49 PM | Filed Under [ PowerShell ]

PowerShell blank screen when logon to M365

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

posted @ Thursday, May 20, 2021 9:24 PM | Filed Under [ PowerShell ]

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

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. Import-Module MicrosoftTeams Get-Module Nun melde ich mich interaktiv mit einem Account an, welcher die Rollen "Teams Administrator" und "Skype for Business Administrator" hat. Connect-MicrosoftTeams Nun kann ich mit folgendem Befehl die Teams im Tenant abfragen Get-Team Oder...

posted @ Monday, May 10, 2021 9:57 PM | Filed Under [ PowerShell MicrosoftTeams ]

Powershell v7.1.3 released

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

posted @ Sunday, April 4, 2021 8:54 AM | Filed Under [ PowerShell ]

Send S/MIME Signed Mail with Powershell

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. Den Code dazu findet ihr auf meiner GitHub Seite https://github.com/BohrenAn/Send-SMIMESignedMail Uns so sieht das Mail dann...

posted @ Sunday, March 21, 2021 11:54 AM | Filed Under [ PowerShell ]

Full PowerShell Archive

Powered by:
Powered By Subtext Powered By ASP.NET