Exchange Online / Office 365 : Erstellen eines Mailcontact im Exchange Hybrid

Erstmal eins Vorweg , und ja ich muss mir das auch merken ;-)
Im Hybrid Exchange Mode müssen alle Befehle gegen den lokalen Exchange ausgeführt werden !

Auch hier ist das WhatIf auf true gesetzt d.h. hier wird nur getestet aber nicht ausgeführt. Ist man sich sicher kann man das true auf false ändern.
<# Mailcontact #>
$NewMailContactParameter = @{
    Name                 = 'demo-contact' 
    Alias                = 'demo-contact' 
    DisplayName          = 'demo-contact' 
    OrganizationalUnit   = 'OU=dev_mailobjects,OU=dev,DC=example,DC=box'
    ExternalEmailAddress = 'demo-contact@service.example.box' 
    WhatIf               = $true
}
New-MailContact @NewMailContactParameter
testen ob alles funktioniert hat kann man das mit dem Befehl
Get-Recipient demo-contact@service.example.box

Name      RecipientType
----      -------------
demo-contact MailContact  

Powershell : Download großer Dateien

Größere ISO Dateien oder sonstige Files downloaden mit der Powershell. Als Beispiel zeige ich hier mal die Debain DVD.
# Download mit Bits
$BitsDownloadParamter = @{
        Source        = 'https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-10.4.0-amd64-DVD-2.iso' 
        Description   = 'Download-Debian10-DVD-2'
        DisplayName   = 'Download-Debian10-DVD-2' 
        Destination   = 'C:\Users\chris\Downloads\Test_Download\' 
        TransferType  = 'Download'
        Priority      = 'Low'
}
Start-BitsTransfer @BitsDownloadParamter
Den Status des Downloads kann man sich dann mit diesem Befehl anzeigen lassen.
# Anzeigen des Status

 Get-BitsTransfer | select DisplayName,FileList,BytesTotal,BytesTransferred | Where-Object -FilterScript { $_.DisplayName -eq 'Download-Debian10-DVD-2' }


Quelle :
https://docs.microsoft.com/en-us/powershell/module/bitstransfer/start-bitstransfer?view=win10-ps
https://docs.microsoft.com/en-us/powershell/module/bitstransfer/get-bitstransfer?view=win10-ps
Thx to Josh for the Hint ;-)

Office 365 : Anzeigen der Lizenzen

Zuerst muss die Verbindung zu MSOL stehen.
Dann kann man mit dem folgenden Befehl alle Lizenzen abfragen.
Connect-MsolService

Get-MsolAccountSku | select SkuPartNumber,ActiveUnits,ConsumedUnits
Eine Übersicht aller User und den verwendeten Lizenzen kann man hiermit abfragen.
$AllUsers = Get-MsolUser | select UserPrincipalName, FirstName, LastName, DisplayName, Office -ExpandProperty Licenses
$AllUsers = $AllUsers | Where-Object -FilterScript {  
# remove guests 
$_.UserPrincipalName -notlike '*#EXT*'   
}
$AllUsers | ft -Property UserPrincipalName,AccountSkuId -GroupBy UserPrincipalName

Exchange Online / Office 365 : Erstellen einer Shared Mailbox im Hybrid Mode

Erstmal eins Vorweg , und ja ich muss mir das auch merken ;-)
Im Hybrid Exchange Mode müssen alle Befehle gegen den lokalen Exchange ausgeführt werden !

Wenn man nun eine neue Shared Mailbox haben möchte kann man das mit diesem snippet in der Exchange Shell machen. Auch hier ist das WhatIf auf true gesetzt d.h. hier wird nur getestet aber nicht ausgeführt. Ist man sich sicher kann man das true auf false ändern.
$NewRemMailPara = @{
    Name                         = 'NAME_DER_SHARED_MAILBOX' 
    OnPremisesOrganizationalUnit = 'OU_IM_LOKALEN_AD' 
    DisplayName                  = 'DISPLAYNAME_DER_SHARED_MAILBOX'
    UserPrincipalName            = 'UPN_DER_MAILBOX'
    RemoteRoutingAddress         = 'REMOTE_ROUTING_ADDRESS (normalerweise NAME@TENANT.mail.onmicrosoft.com'
    Alias                        = 'ALIAS_DER_SHARED_MAILBOX'
    PrimarySmtpAddress           = 'PRIMÄRE_EMAIL_ADRESSE'
    WhatIf                       = $true
}
New-RemoteMailbox -Shared @NewRemMailPara
hier ein Beispiel
$NewRemMailPara = @{
    Name                         = 'TEST Team' 
    OnPremisesOrganizationalUnit = 'OU=dev_mailobjects,OU=dev,DC=example,DC=box' 
    DisplayName                  = 'TEST Team'
    UserPrincipalName            = 'test_team@DOMAIN'
    RemoteRoutingAddress         = 'test_team@TENANT.mail.onmicrosoft.com'
    Alias                        = 'TEST_Team'
    PrimarySmtpAddress           = 'test_team@DOMAIN'
    WhatIf                       = $true
}
New-RemoteMailbox -Shared @NewRemMailPara
Auf dem selben Weg kann man Räume und Resourcen anlegen hierzu muss nur der Parameter Shared getauscht werden. Mögliche Werte sind
-Room
-Equipment
oder ein User Postfach
Quelle : https://docs.microsoft.com/en-us/powershell/module/exchange/new-remotemailbox?view=exchange-ps

Office 365 : Verbinden eines lokalen AD Users mit einem MSOL User

Sollte man mal in die Verlegenheit kommen einen lokalen AD User mit einem MSOL User verbinden zu müssen ist dieser Schnipsel recht hilfreich. Er setzt im MSOL Kontext die ImmutableID was die Zuordnung lokal zu cloud User ermöglicht auch wird der online User umbenannt das der UPN gleich zu dem lokalem AD User ist. Die Vorraussetzungen sind natürlich ein voller Zugriff auf das lokale AD und eine vorherige Anmeldung an Microsoft 365.
$OldUPN = 'UPN_ON_OFFICE365'
$UPN = 'UPN_LOKALES_AD'
$ID = [convert]::ToBase64String((Get-ADUser -filter {UserPrincipalName -eq $UPN}).objectGUid.ToByteArray())
Set-MsolUserPrincipalName -NewUserPrincipalName $UPN -UserPrincipalName $OldUPN -ImmutableId $ID

Office 365 : Installieren des MSOL Modul für Powershell

Installieren des MSOL Modul für Powershell

Zuerst installieren wir das Packet für das Modul das kann bei Microsoft direkt heruntergeladen werden.
Download Microsoft Online Services-Anmelde-Assistent für IT-Experten RTW
dann starten wir eine Shell und installieren das Modul im Powershellkontext.
Install-Module -Name MSOnline
ab jetzt kann man mit Powershell mit dem cmdlet
Connect-MsolService
eine Verbindung zu Office 365 herstellen.
Quelle : https://docs.microsoft.com/de-de/office365/enterprise/powershell/connect-to-office-365-powershell
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)