Office 365 administrieren per Power Shell

33
Einfach, effektiv aber auch am Anfang ein wenig ungewöhnlich Office 365 administrieren per PowerShell Peter Monadjemi/ActiveTraining [email protected]

description

Eine Einführung in die Administration von Office 355 mit der PowerShell

Transcript of Office 365 administrieren per Power Shell

Page 1: Office 365 administrieren per Power Shell

Einfach, effektiv aber auch am Anfang ein wenig ungewöhnlich

Office 365 administrieren per PowerShell

Peter Monadjemi/[email protected]

Page 2: Office 365 administrieren per Power Shell

Die Themen

• Die PowerShell in 10 Minuten

• Die Office 365-Architektur aus der Vogelperspektive

• Wo bietet sich Administration per Befehlszeile an?

• Voraussetzungen

• Die Server-Befehle in einer Remote-Session benutzen

• Beispiele aus der Praxis

• PowerShell ist kein Rückschritt zur Befehlszeile

Page 3: Office 365 administrieren per Power Shell

Die PowerShell in 10 Minuten

• PowerShell = Automatisierungstechnik für Windows-Computer

• Ab Windows XP SP3 aufwärts verfügbar

• Bei Windows 7/Windows Server 2008 R2 von Anfang an dabei

• Modernes Konzept – sowohl für IT-Pros als auch für Gelegenheitsnutzer attraktiv

• Man muss nicht zum Experten/Insider/Entwickler werden, um die PowerShell einsetzen zu können

• Die PowerShell-Funktionalität wird über einen Host angeboten

Page 4: Office 365 administrieren per Power Shell

Die Rolle des Hosts

• Host = Anwendung, in die PowerShell integriert wird

• Reichhaltige Auswahl an Hosts

ExchangeServer

Power-Shell.exe

Power-ShellISE

PowerGUI

EigenerHost

SharePointWebPart

Page 5: Office 365 administrieren per Power Shell

Befehl = Cmdlet

• Die PowerShell-Befehle heißen Cmdlets (Commandlet)

• Einheitliche Schreibweise: Verb-Hauptwort

• Eine Liste aller verfügbaren Cmdlets liefert ein

• Es gibt insgesamt 236 fest eingebaute Cmdlets – es können über Module jederzeit weitere hinzugefügt werden

Get-Command –Commandtype Cmdlet

Page 6: Office 365 administrieren per Power Shell

PowerShell-Remoting

• Jeder Befehl/Skript kann auch remote ausgeführt werden

• Grundlage ist das Ws-Management-Protokoll (WsMan), das auf HTTP aufsetzt

• Befehle und deren Ergebnisse werden im XML-Format transportiert

• Auf dem Server muss PowerShell 2.0 installiert sein

• Beispiel für die Ausführung eines Remote-BefehlsInvoke-Command –ScriptBlock { Get-Service –Name mssql`$SQL* } –Computer PMServer –Credential Administrator

Kennwort wird abgefragt

Page 7: Office 365 administrieren per Power Shell

Die Rolle der Session

• Jeder Remote-Befehl wird in einer Session ausgeführt

• Session = PowerShell-Prozess mit Einstellungen, die im Rahmen der Session-Konfiguration festgelegt werden

• Eine Session wird entweder implizit oder explizit angelegt

• Implizit:

• Explizit:

Invoke-Command –ScriptBlock { Get-Process } –Computer PMServer –Credential Administrator

Es wird keine Session angegeben

$S = New-PsSession –Computer PMServer –Credential AdministratorInvoke-Command –ScriptBlock { Get-Process } –Session $S

Explizite Angabe einer Session

Page 8: Office 365 administrieren per Power Shell

Office 365

• Was steckt dahinter?

• Was wird geboten?

• Wie passt die PowerShell in das Bild?

• Beispiele für die Office 365-Administration per PowerShell

Page 9: Office 365 administrieren per Power Shell

Office 365 in 5 Minuten• Vormals Business Productivity Online Services (BPOS)

• Teil der Microsoft Cloud Services

• Im Kern SharePoint Server und Exchange Server

• Wesentliche Unterschiede gegenüber den bisherigen Angeboten:

• Alles unter einem Dach

• Beliebig skalierbar

• Erweiterbar durch Partner-Lösungen

• Vertrieb auch über Partner• MindBusiness ist einer von knapp 30 "Top-Cloud-Partner" in Deutschland

Page 10: Office 365 administrieren per Power Shell

Der Name kann etwas irreführend sein

• Office 365 ist kein Office 2010, das im Browser genutzt werden

• Der Name soll lediglich suggerieren, dass die Services jeden Tag zur Verfügung stehen

• Die klassische Office-Funktionalität wird über die WebApps zur Verfügung gestellt

• Bieten nur ein Bruchteil der Möglichkeiten von Excel, Word, PowerPoint und OneNote

• Lediglich die Outlook WebApp ist funktional reichhaltiger

• Im Rahmen von Office Professional Plus erhält jeder User eine Office 2010 Professional-Lizenz

Page 11: Office 365 administrieren per Power Shell

Office 365-Architektur aus der Vogelperspektive

• Kernbestandteile:

• Exchange Online

• Sharepoint Online

• Lync (vormals Office Communication Server)

• WebApps (Word, Excel, PowerPoint und OneNote)

• Wird auf einer Abo-Basis sowohl direkt als auch über Partner verkauft

• Einstiegspaket: Plan 1 für 5,25 € pro Monat (was relativ günstig ist)

Page 12: Office 365 administrieren per Power Shell

Ein Schaubild gibt es auch…Microsoft Online Services im Überblick

Vermarktung Reseller/Partner

MicrosoftDirect

Angebote Office 365Small Business

Office 365Enterprise

Office 365LiveEdu

Azure MicrosoftIntune

Dienste

Exchange Online

Sharepoint O

nline

Lync Online

Office Pro Plus

Forefront Online

System Center

Online

CRM O

nline

Windows Azure

SQL Azure

Online Services Delivery Platform (OSDP)

Infrastruktur Marketing CommonUX Marketplace

Page 13: Office 365 administrieren per Power Shell

Office 365 Administration• Die primäre Schnittstelle ist eine Web-Schnittstelle

• Vorteile:

• Leicht zu benutzen

• Vertraute Symbolik

• Kein Spezial-Know-how erforderlich

• Nachteile:

• Abläufe lassen sich nicht automatisieren

• Was ist, wenn anstelle von 10 auf einmal 1.000 User angelegt werden sollen?

• Abläufe sind nicht reproduzierbar

• Wenn zwischendrin einmal "der falsche Button" geklickt wurde, lässt sich das im Allgemeinen nicht nachvollziehen

• Kein "Audit" möglich

Page 14: Office 365 administrieren per Power Shell

Office 365 Administration an einem Beispiel

• Anlegen eines neuen Benutzers

• Alternativ über einen PowerShell-Befehl

New-MailUser –Name "Renate Roth"

a) Der Aufwand für 1, 10 oder 10.000 neue User ist exakt derselbeb) Es können weitere Parameter, z.B. E-Mail-Adresse, angegeben werdenc) Es geht schneller

Verschiedene Vorteile

Page 15: Office 365 administrieren per Power Shell

PowerShell und Office 365 (Teil 1)

• Wie passt die PowerShell in das Gesamtbild?

• Einsatzbereich in erster Linie die Remote-Administrierung von Exchange Online und die Domänverwaltung

• ca. 90% der 229 Cmdlets haben mit Exchange Online zu tun

Page 16: Office 365 administrieren per Power Shell

PowerShell und Office 365 (Teil 2)

• Es gibt zwei Bereiche der PowerShell-Administration:

• Die MsOnline-Cmdlets (werden lokal installiert)

• Die Exchange Online-Cmdlets (stehen im Rahmen einer Remote-Session zur Verfügung)

Page 17: Office 365 administrieren per Power Shell

Wo bietet sich Administration per Befehlszeile an?

• Anlegen von Mailboxen und Benutzern

• Importieren von Kontakten

• Hinzufügen von Regeln (z.B. für den Posteingang)

• Einrichten von Berechtigungen

• Konfigurieren von Benachrichtigungen (z.B. Kalendar)

• Überwachen von Aktivitäten

• Es gibt generell vielfältige Einsatzmöglichkeiten, die alle ein Ziel besitzen:

• Das Einrichten von Konfigurieren von Exchange Online-Konten und SharePoint-Domänen zu automatisieren

Page 18: Office 365 administrieren per Power Shell

Das Client-Module für Microsoft Online• Separater Download für 32/64-Bit (Administrationconfig-de.msi)

• Der Microsoft Online Anmelde-Assistent 7.0 muss zuvor installiert werden

• Die Anforderungen stehen unter

• http://onlinehelp.microsoft.com/de-de/Office365-enterprises/ff652560.aspx#BKMK_Requirements

• Wird als Module mit dem Namen MsOnline zur Verfügung gestellt

• Umfasst 49 Cmdlets

Page 19: Office 365 administrieren per Power Shell

Die Aufgaben der MsOnline-Cmdlets

• Domän- und Federationsverwaltung

• Abo-Verwaltung

• Beispiele:

• Connect-MsolService

• New-MsolUser

• New-MsolDomain

• New-MsolFederatedDomain

• Einrichten eines "Single-Sign-On"

• Benutzer kann sich mit AD-Benutzerkonto bei Office 365 anmelden

Page 20: Office 365 administrieren per Power Shell

MsOnline - Beispiele für den Umgang mit Domänen• Auflisten der vorhandenen Domänen

• Anlegen einer neuen Domäne

Connect-MsolServiceGet-MsolDomain

Name Status Authentication ------ --------------monadjemi.onmicrosoft.com Verified Managed

Connect-MsolServiceNew-MsolDomain –Name trainings.monadjemi.onmicrosoft.com

Page 21: Office 365 administrieren per Power Shell

MsOnline - Office 365 -Abo-Verwaltung

• Cmdlets:

• Get-MsolSubscription

• Get-MsolAccountSku

• New-MsolLicenseOptions

• Set-MsolUserLicense

Page 22: Office 365 administrieren per Power Shell

Office 365-Administration in einer Remote-Session

• Keine Vorbereitung auf dem Client

• Anmelden mit Office 365-Benutzername/Kennwort

• Cmdlets werden auf dem Server ausgeführt

Page 23: Office 365 administrieren per Power Shell

Voraussetzungen

• Es muss eine Remote-Session zu ps.outlook.com/powershell eingerichtet werden

• Im Rahmen der Remote-Session werden alle Cmdlets lokal importiert und über ein Modul als Funktionen zur Verfügung gestellt

• Alle Funktionen, wie z.B. New-Mailbox, werden stets im Kontext der Remote-Session ausgeführt

• Der Umgang mit den Cmdlets ist insgesamt einfach und geradlinig

Page 24: Office 365 administrieren per Power Shell

Die Server-Cmdlets in einer Remote-Session benutzen

• Anlegen einer Remote-Session im Rahmen einer Funktion

function Init-Office365Session{ $Cred = Get-Credential –Credential Administrator $Uri = "http://ps.outlook.com/PowerShell-LiveID?PSVersion=2.0" $S = New-PsSession –ConnectionURI $Uri –Credential $Cred –AllowRedirection –Authentication Basic –ConfigurationName Microsoft.Exchange Import-PsSSession –Session $S}

Auswahl der vorbereiteten Session-Konfiguration

Neue Session anlegen

Befehle aus der Remote-Session importieren

Page 25: Office 365 administrieren per Power Shell

Beispiel: Auflisten aller Commands der Remote-SessionInit-Office365SessionGet-Command -Module tmp_*

# Zählen der Cmdlets"Anzahl Cmdlets: $(Get-Command -Module tmp_* | Measure-Object | Select-Object -Exp Count)"

Page 26: Office 365 administrieren per Power Shell

Beispiel: Auflisten der MailboxenInit-Office365SessionGet-Mailbox | Select-Object -Property Name

Page 27: Office 365 administrieren per Power Shell

Beispiel: Neuen User anlegenInit-Office365Session

$UserNamen = "Anton","Bert","Chris","Dieter"

foreach($UserName in $UserNamen) { $UserPw = ConvertTo-SecureString -String "pw" ` -AsPlainText –Force New-MailUser -Name $UserName ` -MicrosoftOnlineServicesID [email protected] ` -Password $UserPW "$UserName wurde angelegt." }

Page 28: Office 365 administrieren per Power Shell

Beispiel: Kalenderbenachrichtigung einrichtenInit-Office365Session

$ID = [email protected]

Set-CalendarNotification –Identity $ID ` -CalendarUpdateNotification $true ` -MeetingReminderNotification $true ` -MeetingReminderSendDuringWorkHour $true

Page 29: Office 365 administrieren per Power Shell

Beispiel: CSV-Kontakte importierenInit-Office365Session

Import-ContactList -CSV -CSVData ([System.IO.File]::ReadAllBytes($CSVPfad)) -Identity [email protected]

Datei entsteht meistens aus Outlook-Export

Page 30: Office 365 administrieren per Power Shell

Beispiel: Neuen Exchange-Ordner anlegenInit-Office365Session

New-MailboxFolder -Parent :\Posteingang -Name $Ordnername

Page 31: Office 365 administrieren per Power Shell

PowerShell-Tools mit etwas mehr Komfort

• PowerGUI

• "Nachbau" der Computer Management-Konsole von Windows

• Jeder Knoten steht für ein PowerShell-Befehl/-Skript

• PowerShell Plus

• Editor mit viel Komfort

• Primal Forms 2011

• Grafische Benutzeroberflächen für PowerShell-Skripte

Page 32: Office 365 administrieren per Power Shell

Fazit: Die PowerShell ist kein (!) Rückschritt zur Befehlszeile

• Die Befehlszeile ist nur eine von vielen "Formen", in denen die PowerShell genutzt werden kann

• Die PowerShell ist eine polymorphe Automatisierungstechnik für Windows-Computer

• Es gibt zahlreiche GUI-Tools – auch die Eigenentwicklung ist keine allzu große Herausforderung

• In jeder "Erscheinungsform" bietet die PowerShell eine enorme Arbeits- und Zeitersparnis

Page 33: Office 365 administrieren per Power Shell

Wo kann man mehr erfahren?• Referenz aller Office 365-Cmdlets:

• http://onlinehelp.microsoft.com/de-de/office365-enterprises/hh125002.aspx

• Nur Kurzbeschreibung, eine ausführliche Beschreibung mit Beispielen gibt es nur über das Get-Help-Cmdlet

• Es gibt viele Webseiten rund um Exchange Server-Administration per PowerShell – vieles ist 1:1 übertragbar

• Buch: PowerShell Crashkurs (Microsoft Press)

• Bietet eine allgemeine Einführung (ohne Office 365-Bezug)

• Seminar:

• PowerShell – Grundlagen, 22. – 25. November 2011 in Esslingen

• Infos unter www.activetraining.de