1. Einfach, effektiv aber auch am Anfang ein wenig ungewöhnlich Office 365 administrieren per PowerShell Peter Monadjemi/ActiveTraining pm@activetraining.de
2. 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
3. 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 Hostangeboten
4. Die Rolle des Hosts Host = Anwendung, in die PowerShell integriert wird Reichhaltige Auswahl an Hosts Power-Shell ISE PowerGUI Power-Shell.exe Eigener Host SharePoint WebPart Exchange Server
5. 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 –CommandtypeCmdlet
6. 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-Befehls Invoke-Command –ScriptBlock { Get-Service –Name mssql`$SQL* } –Computer PMServer –Credential Administrator Kennwort wird abgefragt
7. 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 –CredentialAdministrator Invoke-Command –ScriptBlock { Get-Process } –Session $S Explizite Angabe einer Session
8. Office 365 Was steckt dahinter? Was wird geboten? Wie passt die PowerShell in das Bild? Beispiele für die Office 365-Administration per PowerShell
9. 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
10. Der Name kann etwas irreführend sein Office 365 ist keinOffice 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
11. 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)
12. Ein Schaubild gibt es auch… Microsoft Online Services im Überblick Reseller/ Partner Microsoft Direct Vermarktung Angebote Office 365 Small Business Office 365Enterprise Azure Microsoft Intune Office 365LiveEdu Online Services DeliveryPlatform (OSDP) Infrastruktur Marketing Common UX Marketplace Dienste Exchange Online Sharepoint Online Lync Online Office Pro Plus Forefront Online System Center Online CRM Online Windows Azure SQL Azure
13. 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
14. Office 365 Administration an einem Beispiel Anlegen eines neuen Benutzers Alternativ über einen PowerShell-Befehl New-MailUser–Name "Renate Roth" Verschiedene Vorteile Der Aufwand für 1, 10 oder 10.000 neue User ist exakt derselbe Es können weitere Parameter, z.B. E-Mail-Adresse, angegeben werden Es geht schneller
15. 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
16. 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)
17. 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
18. 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
19. 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
20. MsOnline - Beispiele für den Umgang mit Domänen Auflisten der vorhandenen Domänen Anlegen einer neuen Domäne Connect-MsolService Get-MsolDomainName Status Authentication ------ -------------- monadjemi.onmicrosoft.com Verified Managed Connect-MsolService New-MsolDomain –Name trainings.monadjemi.onmicrosoft.com
22. 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
23. 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
24. 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 –ConfigurationNameMicrosoft.Exchange Import-PsSSession –Session $S } Auswahl der vorbereiteten Session-Konfiguration Neue Session anlegen Befehle aus der Remote-Session importieren
25. Beispiel: Auflisten aller Commands der Remote-Session Init-Office365SessionGet-Command -Module tmp_* # Zählen der Cmdlets "AnzahlCmdlets: $(Get-Command -Module tmp_* | Measure-Object | Select-Object -Exp Count)"
26. Beispiel: Auflisten der Mailboxen Init-Office365SessionGet-Mailbox | Select-Object -Property Name
27. Beispiel: Neuen User anlegen Init-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." }
31. 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
32. 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
33. 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