blog.atwork.at

news and know-how about microsoft, technology, cloud and more.

Eine Verteilerliste in Office 365 erstellen, die automatisch alle Mitglieder einer Abteilung enthält

Viele Unternehmen, die von Small Business Server Umgebungen auf Office 365 umstellen, sind es gewohnt, einen Verteiler zu haben, der automatisch an alle Mitglieder des Unternehmens versendet. Aber auch große Unternehmen wollen Verteilerlisten mit bestimmten Kriterien automatisch befüllt haben. Um dies in Exchange Online abzubilden, benötigt man eine Dynamische Verteilerliste.   In der Exchange Administrationskonsole kann man dann bequem eintragen, welche Kriterien die Verteilerliste haben soll und natürlich auch, welche Empfänger ausgewählt werden sollen. Hier kann man dann gleich einschränken, ob nur Mitglieder mit Exchange Postfächern, oder mit externen Mailadressen und vieles mehr selektiert werden sollen. Über Regeln können bereits in der GUI Filter gesetzt werden. Sobald diese Verteilerliste erstellt ist, funktioniert sie auch. Um jedoch zu sehen, welche Mitglieder in der Verteilerliste enthalten sind, verwende ich PowerShell. Ich habe dazu eine ganz einfache Verteilerliste erstellt, die an alle Benutzer mit Exchange Postfächern versendet, ohne weitere Filterkriterien. Zunächst verbindet man sich mit der ExchangeShell: $LiveCred = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection Import-PSSession $Session Jetzt fragen wir unsere Verteilerliste ab: $all=Get-DynamicDistributionGroup "alle" Get-Recipient -RecipientPreviewFilter $all.recipientfilter Im Ergebnis sehen wir jetzt, dass wir alle UserMailboxen zurück bekommen, also auch Shared Mailboxen bzw. welche, die für Administratoren o.ä. eingesetzt werden. D.h. wir müssen die Dynamische Verteilerliste auf ein weiteres Kriterium einschränken. In meinem Fall habe ich den Firmenname im Feld Department gewählt. Set-DynamicDistributionGroup -identity alle@contoso.com -RecipientFilter {(RecipientType -eq 'UserMailbox') -and (Department -like 'Firma*')} Damit wird der Filter auf jene Personen eingeschränkt, die im Feld Department etwas eingetragen haben. Ein weiteres Beispiel wäre ein Filter auf alle Direktoren und/oder Manager: Set-DynamicDistributionGroup -Identitiy Manager@contoso.com -RecipientFilter {(RecipientType -eq 'UserMailbox') -and (Title -like 'Direktor*' -or Title -like 'Manager*')} Übrigens, Sie können dynamische Verteilerlisten auch gleich über die Shell erzeugen. In diesem Fall würden Sie diesen Befehl verwenden: New-DynamicDistributionGroup -Name "Manager" -RecipientFilter {(RecipientType -eq 'UserMailbox') -and (Title -like 'Direktor*' -or Title -like 'Manager*')} Viel Erfolg bei PowerShell!

Was Microsoft aus dem Cloudbusiness mit Azure gelernt hat #CloudFail #CloudAwesome

Mit der Build in San Francisco gibt es wieder jede Menge Neuigkeiten rund um Azure zu berichten. Einen sehr interessanten Beitrag gab es von Mark Russinovich. Als Technical Fellow im Azure Team hat er dieses Mal eine ganz neue Session gehalten, die abseits von seinen Sysinternals, Malwarehunting und Case of... Vorträgen sehr authentisch gezeigt hat, welche Erfahrungen Microsoft im Dauerbetrieb einer Business Cloud Lösung gesammelt hat und worauf man als Rechenzentrumsbetreiber achten sollte. Bereits letztes Jahr hatte ich einmal die Gelegenheit einer Q&A Session von Mark zu hören, wo er über Clouderfahrungen und zukünftige Entwicklungen berichtet hat. Eine der wichtigsten Botschaften lautet: Automatisiere soviel als möglich und setze Dich nicht über diese Automatisierungen hinweg. Das klingt natürlich ein bisschen nach SkyNet, auch die Tatsache, dass alle diese Fehler, die Mark erzählt hat, vermeidbar gewesen wären. Manche davon sind evident, eines haben alle Fehler gemeinsam, die in einem Public Cloud Umfeld geschehen: sie sind schmerzhaft, fallen auf und sind zum Teil natürlich vermeidbar. Wichtige Themen rund um einen Rechenzentrumsbetrieb: Automatisiere Skaliere Teste in Produktion (!!!) Frühe Deployments, häufige Deployments In Azure werden Incidents nach Schweregrad gemessen: Severity 3: nicht dringend, keine Kundenbeeinflussung, kann später einen Einfluss haben. Severity 2: beeinträchtigt manche Kunden und manche Services. Dringend, aber noch keine Katastrophe. Severity 1: globaler Ausfall, der mehrere Services betrifft und mehrere Kunden. Severity 0: sehr großes Problem, Kunden laufen Gefahr, ihre Daten zu verlieren. In Azure gab es einmal einen Severity 0 Fall. Beispiele von aufgetretenen Fehlern: 1. Case-Sensitive Check beim Ressourcenprovider. D.h. "mobileservice" <> "MobileService", RDFE erwartet Case-sensitive. 2. Sauberes Logging Jeder Developer sollte eine saubere Fehlerprotokollierung implementieren. Fehlermeldungen wie: "Das Abonnement ist nicht für dieses Feature vorgesehen" oder "Der Servicename ist unbekannt" ist schwierig zu finden. Build with /warnaserror. Don't supress compiler warnings. 3. Exceptional Coding Catch-all oder fail fast? Bekommt jemand einen Fehler ist es ganz normal, dass derjenige es noch einmal probiert. Mit catch-all fängt man alle Fehler ab, es kann jedoch trotzdem instabil sein. Ein fail-fast führt aufgrund der wiederholten Versuche eventuell zu einer Denial of Service Attacke. Ein Tipp ist: crash wenn es sich nicht um einen Userfehler handelt, andernfalls logge einen Fehler. Log einmal pro Stunde, damit eine Fehlerlog nicht von ein und derselben Fehlermeldung angefüllt wird. 4. VM werden nicht provisioniert In diesem Fall wurden neu erzeugte VM's in Azure nicht provisioniert. Das passierte nur bei 2 aktualisierten, brandneuen Images. Der Vorgang der Provisionierung in Azure ist dabei folgender: monatlich werden OS VHD Images neu erzeugt, die Images werden in ein repository geladen und die Funktionalität wird manuell getestet. Danach werden diese VHD's vom staging Bereich in den Produktivbereich geladen. Während dieses Vorganges wurden die Images kaputt. Das Learning daraus ist: nicht nur im Staging Bereich testen, sondern auch in der Produktivumgebung, da Daten kaputt gehen können. 5. VIP swap Ein VIP Swap ist die Umstellung einer Staging Umgebung in den Produktivbetrieb. Man deployt 2 Versionen seiner Cloud Services - Produktion und Stage. RDFE verwendet dazu Storage Tables um sich die beiden Versionen zu merken. Durch einen Bug in RDFE kam es dazu, dass diese Zeilen falsch überschrieben wurden - beide Zeilen zeigten an, die Stage Version zu sein. Updates erfolgen daher immer nur scheibchenweise. 6. Löschen von Subscriptions Interne Azure subscriptions werden von Zeit zu Zeit aufgeräumt. Bei diesen Subscriptions gab es auch welche, die für Kunden in einem Preview Stage erzeugt wurden. Dazu gibt es einen Prozess, mit dem diese aufgeräumt werden. Die damals dafür verantwortliche Personen erzeugten einen Batch und haben mit diesem den dafür vorgesehenen Prozess übersteuert. Folge war, dass viele Subscriptions, auch von Kunden, gelöscht wurden. Alle Daten konnten glücklicherweise wieder hergestellt werden, da Azure Data Retention verwendet und Daten für 90 Tage weiterhin verfügbar sind. Zudem verwendet Azure, wo immer möglich Soft Delete. 7. Zertifikat Ablauf Dies ist einer der Fälle, die weitläufig bekannt wurden. Am 22. Februar 2013 kam es zu einem Zertifikatausfall, der nahezu 11,5 Stunden dauerte, bis die volle Verfügbarkeit wieder hergestellt war. SSL Verbindungen waren plötzlich nicht mehr möglich. In diesem Fall lag es nicht daran, dass Microsoft vergessen hatte, die Zertifikate zu erneuern, bereits 180 Tage vorher werden Warnungen ausgegeben, dass diese zu erneuern sind. Diese werden aktualisiert, in diesem Fall waren es drei Zertifikate, die bereits im Jänner 2013 erneuert wurden. Der Fehler hierbei war, dass vergessen wurde, diese Zertifikate mit einem Update Datum zu versehen. Dadurch passierte, dass andere Updates vorgezogen, bzw. dieses eine Update nach hinten, nach den 22. Februar verschoben wurde. Microsoft scannt nun wöchentlich alle Service Endpoints. Microsoft arbeitet hier auch an einer Vollautomatisierung. 8. Schaltjahr in Azure Zeit ist ein single point of failure. Das große Learning hieraus ist, dass Menschen Fehler machen, durch Automatisierung können diese vermieden werden. Ein Übersteuern der definierten Prozesse kann einfach schlimme Folgen haben. Tolle Session von Mark, es war eine Premiere auf der Build, hoffe, viele ergreifen die Gelegenheit und sehen sich diese Session an. Eine offene Kommunikation über gemachte Fehler und was daraus gelernt wurde, hilft uns, diese selbst in Zukunft zu vermeiden und auch mehr Vertrauen in Cloudservices zu bekommen.

I Am MEC-Session about Remote Control Office 365 with Microsoft Azure

This week, from March 31th to April 2nd, the Microsoft Exchange Conference 2014 takes place in Austin, Texas. Austin is a great city and it´s fun to be here an to be part of the conference! Find our slides and our code sample here.