Wenn man in großen Unternehmen mit Office 365 arbeitet ist es meist unerlässlich, für Massenoperationen auf PowerShell zurück zu greifen. Office 365 bietet dazu unterschiedliche Commandlets an:

Gerade das Benutzermanagement, onboarding und aktivieren bzw. deaktivieren von Lizenzoptionen kann da bereits einiges an Hilfe leisten. In diesem Post möchte ich die wichtigsten Tätigkeiten eines Administrators rund um das Benutzermanagement zusammen fassen.

Zum Online Service verbinden

Connect-MsolService

Allen Benutzern eine Lokation (in diesem Beispiel Österreich - AT) zuweisen (DE, US, CH, IT, ES, NL, BE….)

Get-MsolUser –All | Set-MsolUser –UsageLocation AT

Einen Benutzer anlegen

Neue Benutzer lassen sich ebenfalls über PowerShell anlegen. In Office 365 gibt es 2 Mussfelder, die tatsächlich zwingend für die Benutzeranlage sind: Der UPN und der Displayname.

New-MsolUser -UserPrincipalName user@contoso.onmicrosoft.com ` -DisplayName 'User'

Möchten Sie gleich mehr Optionen hinzufügen und den User aktivieren, hilft dieses Beispiel weiter (bitte die Variablen dementsprechend ersetzen):

New-MsolUser -UserPrincipalName user@contoso.onmicrosoft.com ` -DisplayName 'User' –FirstName Martina –LastName Grom –UsageLocation AT

Damit der Benutzer auch gleich aktiviert wird (ihm eine Lizenz zugewiesen wird), verwenden Sie:

New-MsolUser -UserPrincipalName user@contoso.onmicrosoft.com ` -DisplayName 'User' –FirstName Martina –LastName Grom –UsageLocation AT –LicenseAssignment contoso:ENTERPRISEPACK

Einen Benutzer löschen

Um einen Benutzer zu löschen, verwenden Sie folgendes Kommando:

Remove-MsolUSER –UserPrincipalName user@contoso.com

Alle gelöschten Benutzer aus dem Papierkorb leeren

Get-MsolUser –ReturnDeletedUsers | Remove-MsolUser -RemoveFromRecycleBin –Force

Verfügbare Lizenzen eines Tenant abfragen

Get-MsolAccountSku

image

Benutzern eine bestimmte Lizenz zuweisen – Benutzer aktivieren

Wenn Sie nun Ihren Benutzern eine Lizenz zuweisen wollen, z.B. den E3 Plan, wie oben im Screenshot gezeigt:

Get-MsolUser -All | Set-MsolUserLicense -AddLicenses your-tenant-name:ENTERPRISEPACK

Falls Sie die Lizenzen jedoch nur einem bestimmten Benutzerkreis, z.B. allen Benutzern mit einem bestimmten UPN, der die Domain @contoso.com enthält, zuweisen wollen, lautet der Befehl so:

Get-MsolUser -All | where {$_.UserPrincipalName -match "@contoso.com"} | Set-MsolUserLicense -AddLicenses your-tenant-name:ENTERPRISEPACK

Benutzern bestimmte Lizenzoptionen deaktivieren

Häufig kommt es vor, dass Benutzer zwar den E3 plan lizenziert bekommen, jedoch innerhalb diese Lizenzplans nicht alle Lizenzoptionen aktiviert werden sollen. Beispielsweise sollen die Benutzer mit der Domain @contoso.com zwar E3 als Lizenz bekommen, jedoch dann hier nur Exchange Online und Lync Online. In diesem Fall müssen die anderen Optionen deaktiviert werden.

image

Zunächst benötigen wir die Namen der einzelnen Lizenzoptionen:

Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq 'ENTERPRISEPACK'} | ForEach-Object {$_.ServiceStatus}

image

Im nächsten Schritt merken wir uns in einer Variable $options, welche Lizenzoptionen wir deaktivieren möchten:

$options = New-MsolLicenseOptions -AccountSkuId contoso:ENTERPRISEPACK -DisabledPlans RMS_S_ENTERPRISE,OFFICESUBSCRIPTION,SHAREPOINTWAC,SHAREPOINTENTERPRISE

Nun wenden wir das auf alle User der Domain @contoso.com an

Get-MsolUser -All | where {$_.UserPrincipalName -match "@contoso.com"} | Set-MsolUserLicense -LicenseOptions $options

Lizenzoptionen und Servicepläne

Hier eine kurze Zusammenfassung aller Lizenzoptionen und Servicepläne.

Serviceplan Beschreibung
contoso:STANDARDPACK E1 (E2)
contoso:ENTERPRISEPACK E3
contoso:ENTERPRISEPACKWITHSCAL E4

 

Lizenzoption Beschreibung
YAMMER_ENTERPRISE Yammer Enterprise (werden nicht einzeln zugeordnet)
RMS_S_ENTERPRISE Active Directory-Rechte für Windows Azure
OFFICESUBSCRIPTION Office Professional Plus
MCOSTANDARD Lync Online (Plan 2)
MCOVOICECONF Lync Online (Plan 3)
SHAREPOINTWAC Office Web Apps
SHAREPOINTSTANDARD SharePoint Online (Plan 1)
SHAREPOINTENTERPRISE SharePoint Online (Plan 2)
EXCHANGE_S_STANDARD Exchange Online (Plan 1)
EXCHANGE_S_ENTERPRISE Exchange Online (Plan 2)

Lizenzen von Benutzern wechseln

Wenn Sie die Lizenzen von Benutzern wechseln wollen, z.B. von E1 auf E3, geht das ebenso mit einem Einzeiler:

Get-MsolUser -all | Where {$_.Licenses.AccountSkuId -contains "your-tenant-name:STANDARDPACK"} | Set-MsolUserLicense -AddLicenses "your-tenant-name:ENTERPRISEPACK" -RemoveLicenses "your-tenant-name:STANDARDPACK"

Kennwörter nicht mehr ablaufen lassen

Für Serviceaccounts ist es manchmal praktisch, wenn die Kennwortrichtlinie deaktiviert wird.

Für einen einzelnen User:

Get-MsolUser –UserPrincipalName user@contoso.com | Set-MsolUser -PasswordNeverExpires $True

Für alle User

Get-MsolUser | Set-MsolUser -PasswordNeverExpires $True

Abfrage der Eigenschaften eines Users

Get-MsolUser –UserPrincipalName user@contoso.com | fl

Ein paar Hinweise zum Abschluss:

Bitte testen Sie solche Massenoperationen immer zuerst mit einem Benutzer. Über –UserPrincipalName user@contoso.com können Sie Ihre Auswahl sehr leicht auf einen Benutzer einschränken.

Führen Sie einen Lizenzwechsel immer in einem Schritt durch, da es ansonsten zu ungewünschten Nebeneffekten kommen kann!

Bei sehr vielen Benutzern dauert die Ausführung solcher Befehle eine ganze Weile, nur Geduld, wenn es etwas länger dauern sollte.

Für die Programmierer unter Ihnen: mit der Windows Azure Graph API lassen sich Benutzeroperationen bequem codieren. Diese Tätigkeiten sind dann zumeist performanter als mittels PowerShell. Aber dazu an anderer Stelle mehr.