Exchange 2019 -> Exchange Online : Migration der kompletten Maildaten

Wir migrieren gerade mal wieder ein paar Server in Office 365, wir benutzen hierfür ein Tool von CodeTwo. Ich kann das nur jedem empfehlen der eine Schmerzfrei Migration haben möchte. Nachdem wir GSuite (IMAP) migiriert haben ist heute der Exchange dran. Hier hat die Software diesen Fehler geworfen.
The account does not have permission to impersonate the requested user
hmm ... klar wir hatten die Rolle nicht zugewiesen. Das kann man so erledigen. Ausführen in der Exchange Managment Shell
New-ManagementRoleAssignment -name:impersonationAssignmentName -Role:ApplicationImpersonation -User:UserForMigration
dann ist die Migration angelaufen.

Quelle:
https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-configure-impersonation

Ansible : i3-wm Installation auf einem neuen Client

Ich hab hier ein bisschen gebastelt um meine ansible skills nicht zu verlieren.

Das Ansible installiert i3-wm mit meinen default configs ;-) wer möchte könnte auch zusätzlich polybar installieren, default ist i3-blocks. Mehr ist im Repo erklärt

https://github.com/Mokkujin/i3-config-ansible

HAPROXY neuer Check für check_mk in ps1 / py / bash / go

Ich hatte mal wieder mit haproxy zu tun, leider hatte diese niemand in das Monitoring eingepflegt.
Ist natürlich doof wenn immer die Sessions voll laufen und keiner was merkt.
Lange Rede kurzer Sinn ;-)
Python & Powershell reagieren gleich wenn
$WIPass = '' bzw WIPass = ''
wird der check ohne auth ausgeführt. Sollte eure Statusseite nicht über ssl erreichbar sein, sollte man noch die ssl checks rauswerfen ! Unter Powershell einfach diese Zeilen auskommentieren
SkipCertificateCheck
unter Python bitte das aus den Zeilen entfernen
, verify=False
Hier ist der Check in Powershell / Python und Bash.
Ich empfehle die Python Version ;-)
checkmk-haproxy-localcheck in powershell / python und bash

Office 365 : Benutzer kann in einer shared Mailbox keinen Ordner verschieben

Hatte heute das Problem das ein Benutzer in einem shared Postfach keinen Ordner verschieben konnte. Er hat immer diese Meldung erhalten.

o365-mailboxfolderpermission
Mit diesem Snippet hab ich das gefixt
$ParaFolderPermission = @{
    Identity = 'SHARED_MAILBOX@DOMAIN:\Calendar'
    AccessRights = 'Editor'
    SharingPermissionFlags = 'Delegate,CanViewPrivateItems'
    # set to $false if test work 
    WhatIf = $true
    User = 'USERNAME@DOMAIN'
}
Add-MailboxFolderPermission @ParaFolderPermission
Wenn WhatIf auf $true gesetzt ist, wird der Vorgang nur getestet aber nicht ausgeführt !
Auszug von Microsoft Docs
Die Option WhatIf weist den Befehl an, auf den Sie angewendet wird, aber nur, um die Objekte anzuzeigen, die von der Ausführung des Befehls betroffen wären, und welche Änderungen an diesen Objekten vorgenommen würden. Der Parameter ändert diese Objekte nicht wirklich. Wenn Sie die Option WhatIf verwenden, können Sie erkennen, ob die Änderungen, die an diesen Objekten vorgenommen werden, Ihren Erwartungen entsprechen, ohne dass diese Objekte geändert werden müssen.

Microsoft DOCS
https://docs.microsoft.com/de-de/exchange/troubleshoot/user-and-shared-mailboxes/private-items-not-display
https://docs.microsoft.com/de-de/exchange/whatif-confirm-and-validateonly-switches-exchange-2013-help

Office VBA: Inputbox Button "Abbrechen" korrekt auswerten

Problem:
Ich habe ein Makro in Excel geschrieben und hier muss der Benutzer etwas eingeben bzw. hat mit dem ABBRECHEN-Button die Möglichkeit das Makro zu beenden. Jetzt habe ich bemerkt, dass das Abbrechen nicht funktioniert - der Code wird nicht korrekt ausgewertet und das Makro läuft weiter.

Lösung:
Eine Inputbox ist keine Msgbox und muss anders ausgewertet werden. Es gibt hier zwei Möglichkeiten:

1.) Beim Abbrechen wird der Wert "" übergeben (leer) und man kann dies auswerten.

Beispiel:
Wert = Inputbox("Bitte Namen eingeben")
If Wert = "" then 
    Msgbox "Es wurde kein Wert eingegeben oder Abbrechen geklickt"
Else
    ........
End If


Nachteil hier ist, dass man nicht zwischen Abbrechen oder leerer Eingabe unterscheiden kann.


2.) Man wertet wirklich aus, ob der Wert leer ist oder null mittels StrPtr-Funktion. Null würde ABBRECHEN entsprechen

Beispiel:
Wert = Inputbox("Bitte Namen eingeben")
If StrPtr(Wert) = 0 then 
    Msgbox "Es wurde sicher Abbrechen geklickt"
Else
    ........
End If


Vorteil hier ist, dass man klar zwischen ABBRECHEN und leerer Eingabe unterscheiden kann.

Quelle:
Bettersolutions.com: STRPTR

Teams / Office 365 : Aufzeichnen von Meetings nicht möglich

Problem : Die Recording Funktionalität von Microsoft Teams ist ausgegraut.
Leider hab ich nur einen Screenshot wo das nicht mehr der Fall ist ;-)

Teams Recording
Lösung : Erstmal muss die Verbindung zu MS Teams aufgebaut werden.
# connect to MS Teams
Import-Module MicrosoftTeams
$sfbSession = New-CsOnlineSession
Import-PSSession $sfbSession
Anzeigen kann man die Einstellungen der Policy mit dem Befehl :
# get teams policy
Get-CsTeamsMeetingPolicy -Identity Global
Powershell Teams Policy
Dann kann man das mit dem Powershell Schnipsel fixen :
# set AllowRecordingStorageOutsideRegion 
Set-CsTeamsMeetingPolicy -Identity Global -AllowRecordingStorageOutsideRegion $True

Erklärung :
Bei uns liegt es daran das Teams bereits in der Germany Location ist der Service Stream aber selbst dort noch nicht verfügbar ist. Dieser ist im Moment nur in der Europe Region verfügbar. Die Einstellung sorgt dafür das Teams auch außerhalb Germanys die aufgezeichneten Daten ablegen darf. Was hier bedeutet unsere Recordings liegen auf Servern in der Europa Region
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)