Office 365 administrieren per Power Shell

Post on 24-Jun-2015

2,051 views 12 download

description

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

transcript

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

Office 365 administrieren per PowerShell

Peter Monadjemi/ActiveTrainingpm@activetraining.de

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

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

Die Rolle des Hosts

• Host = Anwendung, in die PowerShell integriert wird

• Reichhaltige Auswahl an Hosts

ExchangeServer

Power-Shell.exe

Power-ShellISE

PowerGUI

EigenerHost

SharePointWebPart

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

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

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

Office 365

• Was steckt dahinter?

• Was wird geboten?

• Wie passt die PowerShell in das Bild?

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

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

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

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)

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

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

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

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

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)

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

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

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

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

MsOnline - Office 365 -Abo-Verwaltung

• Cmdlets:

• Get-MsolSubscription

• Get-MsolAccountSku

• New-MsolLicenseOptions

• Set-MsolUserLicense

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

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

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

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)"

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

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 $UserName@monadjemi.onmicrosoft.com ` -Password $UserPW "$UserName wurde angelegt." }

Beispiel: Kalenderbenachrichtigung einrichtenInit-Office365Session

$ID = pemo@monadjemi.onmicrosoft.com

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

Beispiel: CSV-Kontakte importierenInit-Office365Session

Import-ContactList -CSV -CSVData ([System.IO.File]::ReadAllBytes($CSVPfad)) -Identity pemo@monadjemi.onmicrosoft.com

Datei entsteht meistens aus Outlook-Export

Beispiel: Neuen Exchange-Ordner anlegenInit-Office365Session

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

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

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

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