Powershell KungFu – Office 365 Konten / Ressourcen anlegen
Als erstes müssen wir eine Session zu Exchange Online herstellen, danach können wir diese Session importieren, und wenn wir unsere Arbeit getan haben, wieder entfernen. Als Credential Daten, muss ein Account (Exchange Online / Office 365) verwendet werden, welcher die entsprechenden Rechte besitzt, die gewünschten Arbeiten durchzuführen.
$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
Remove-PSSession $Session
Es wird bei den Ressourcenkonten zwischen Raum und Gerät unterschieden. Mit den folgenden Abfragen, können die bestehenden Ressourcenkonten entsprechend ihrem Ressourcentyp aufgelistet werden. Ressourcenkonten in Office 365 sind kostenlos.
Get-Mailbox | Where{$_.ResourceType -eq "Room"}

Get-Mailbox | Where{$_.ResourceType -eq "Equipment"}

Get-Mailbox | Where{($_.ResourceType -eq "Room") -or ($_.ResourceType -eq "Equipment")}
Beginnen wir mit dem simplen anlegen eines Raum und eines Geräte Postfaches ohne weitergehende Einstellungen. Dies kann wie in folgendem Beispiel erfolgen.
New-Mailbox -Name "Testraum1" -Room

New-Mailbox -Name "Geraet1" -Equipment

Da für die Erstellung eines einzelnen Postfaches der Weg über die Powershell gegenüber der WebGUI keinen immensen Vorteil bietet, interessiert uns vor allen Dingen, die Massenerstellung von Postfächern.

Wir bleiben bei unserem Beispiel der Ressourcenpostfächer und gehen davon aus, dass wir 1-n Postfächer nach folgendem Muster erstellen müssen.

Name DisplayName EmailAddresses Type
Projektraum1 Projektraum1 Projektraum1@m-co.ch Room
Projektraum2 Projektraum2 Projektraum2@m-co.ch Room
Projektraum3 Projektraum3 Projektraum3@m-co.ch Room


In ein CSV File verpackt sieht unsere CSV Datenquelle wie folgt aus.
Wir empfehlen euch die CSV Datei im Unicode Format abzuspeichern.

Name; DisplayName; EmailAddresses; Type
Projektraum1; Projektraum1; Projektraum1@m-co.ch; Room
Projektraum2; Projektraum2; Projektraum2@m-co.ch; Room
Projektraum3; Projektraum3; Projektraum3@m-co.ch; Room


Benennung der Beispiel CSV Datei für die weitere Verwendung: room.csv
Um die eben erstellte CSV Datei in Powershell zu importieren kann folgender Code verwendet werden.
$Data = import-csv -Delimeter ";" -Path .\room.csv
<# Beginn Kommentarblock Ausgabebeschreibung

Der Aufruf von $Data wirft dann folgende Daten aus.
Name         DisplayName  EmailAddresses       Type
----         -----------  --------------       ----
Projektraum1 Projektraum1 Projektraum1@m-co.ch Room
Projektraum2 Projektraum2 Projektraum2@m-co.ch Room
Projektraum3 Projektraum3 Projektraum3@m-co.ch Room

Mögliche Abfragen wären nun

$Data[1]

Name         DisplayName  EmailAddresses      
----         -----------  --------------      
Projektraum2 Projektraum2 Projektraum2@m-co.ch


$Data.Name

Projektraum1
Projektraum2
Projektraum3


$Data.DisplayName[1]

Projektraum2

Ende Kommentarblock Ausgabebeschreibung #>
Im folgenden werden die in $Data gespeicherten Daten zur Abarbeitung der Postfacherstellung verwendet. Über den "foreach" Befehl wird jeder Datensatz einzeln abgearbeitet. Über die Abfrage des Postfach Type, erfolgt die Unterscheidung ob es ein Raum oder ein Equipment Postfach werden soll. Der folgende Code enthält keinerlei Errorhandling, oder Abfrage ob ein Postfach schon vorhanden ist.
foreach($Box in $Data){

    If($Box.Type -eq "Room"){

        New-Mailbox -Name $Box.Name -DisplayName $Box.DisplayName -Room
    
    }ElseIf($Box.Type -eq "Equipment"){

        New-Mailbox -Name $Box.Name -DisplayName $Box.DisplayName -Equipment

    }

}
Bei der Erstellung des Ressourcen Kontos wird anhand des gewählten Namens, automatisch eine e-Mail Adresse vergeben.

Diese Adresse kann der gewünschten entsprechen, muss es aber nicht. Genauso kann es gewünscht sein, dass mehrere e-Mail Adressen einem Konto hinterlegt werden.

Im nächsten Codeblock schauen wir also mal, wie wir auf die Werte für e-Mail Adresse(n) und die Primäre Adresse zugreifen können.
$Mailbox = Get-Mailbox Projektraum6 -ResultSize Unlimited

$Mailbox

# Die Abfrage der Variable $Mailbox ergibt
# Name                      Alias                ServerName       ProhibitSendQuota                                                                                                                                                    
# ----                      -----                ----------       -----------------                                                                                                                                                    
# Projektraum6              Projektraum6         vi1pr0301mb1951  99 GB (106,300,440,576 bytes) 

$Mailbox.PrimarySmtpAddress

# Der Zugriff auf den Wert PrimarySmtpAddress der Variable $Mailbox ergibt
# Projektraum6@M-Co.ch


# Nun kann einfach der PrimarySmtpAddress Wert mit dem gewünschten Wert des CSV Importes verglichen werden.
$Mailbox.PrimarySmtpAddress -like $Box.EmailAddresses

# In unserem Beispiel hier wäre das Ergebnis
# True

# Sollte eine andere Email Adresse, oder gar mehrere gewünscht sein, so lässt sich dies bewerkstelligen.
# Die erste Email Adresse wird zur Primary.
# Set-Mailbox -Identity Projektraum6 -EmailAddresses SMTP:erlen@m-co.ch,Projektraum6@m-co.ch

# Das Beispiel ergäbe beim Abrufen mit Get-Mailbox Projektraum6 | select EmailAddresses, PrimarySmtpAddress
# EmailAddresses                         : {smtp:Projektraum6@m-co.ch, SMTP:erlen@m-co.ch}
# PrimarySmtpAddress                     : erlen@m-co.ch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Buy now
WP2Social Auto Publish Powered By : XYZScripts.com