o365 Groups, My Hatred of it

I hate PowerShell, I hate o365 (more specifically o365 Groups / Outlook Groups), and I hate SharePoint in the Office 365 Tenant. 

I know that is a strong way to start off a statement on managing o365 Groups but after banging my head against the wall for too long around o365 Groups I can’t think of a more appropriate statement regarding my feelings for Microsoft’s new product line.  So let me break down my frustration and give a few insights.

I am going to start with my hatred of SharePoint.  First off, the platform is a pig and it is a bloated pig, but I am not going to get into that right now.  With Microsoft’s new direction for SharePoint in building other products on top of it such as o365 Groups or Planner, Microsoft is stepping in the world of SharePoint and making a muck of the SharePoint environment with other products that trample over the storage and URL-space of the SharePoint tenant.  So when you create an o365 Group or a Planner plan, then you have created a SharePoint site collection in the tenant that you don’t see in the dashboard or have direct control over the quota (without PowerShell). 

Moving into my hatred of o365 Groups.  Here is a product that Microsoft is building as a collaborative communication tool (what about Yammer) and they are encouraging users to create their own groups, but they have little governance on how the groups are created (and that is just coming in now).  One exciting thing about groups is that the users can create whatever they want… and guess what, it shows up in the GAL.  A user could effectively create a group saying “Union Formation Group” and what could the company do to stop it, they could create a lot of legal problems in the company instantly and there is no way to really stop it short of turning off Groups.  Keep in mind that these Groups use quota from SharePoint too.  Here is just another though on Groups, the name.  We have AD Groups, Azure Groups, o365 Groups, just group Groups, and where will this end.  Let’s stop using generic names for products (Word?) which causes so much confusion when using the Google to try to return information (“the Google” was not a typo, it is a being now).

Lastly, I am going to complain about PowerShell or more specifically the implementation of PowerShell and the documentation for the o365 Groups.  Microsoft’s documentation is scattered and not clear on top of the fact that when you search for “Office 365 Group” or “o365 Group” you get everything from groups about o365 to permission groups in SharePoint (back to naming).  Even when you find the documentation that shows things like optional parameters for the PowerShell it is very incomplete.  For example, many of the options that are available on “Set-UnifiedGroup” (did you notice that one?  All of a sudden an o365 Group is called a “Unified Group”) are available too on “New-UnifiedGroup” even though it doesn’t show up there in the documentation.  Here is another fun one, if you want to set the quota for the file storage, it is a SharePoint PowerShell command and does not involve the “Unified Group.”  My favorite of all, I was trying to interact with the “Description” field for the o365 Group but that is the “Notes” field in PowerShell, what the hell?  Why do you even use named properties when you change the meaning of the names or the names in the UI. 

Well, there was my rant.  I doubt there will be anything helpful, but if you want the complete current list of PowerShell parameters I have it below.  Please look back in a few weeks for some examples on connecting to PowerShell through C# to create a new Unified Group or whatever the hell Microsoft changes the name to next.


  • New-UnifiedGroup
    • [-AccessType <Public | Private>]
    • [-Alias <String>]
    • [-AutoSubscribeNewMembers <SwitchParameter>]
    • [-Confirm [<SwitchParameter>]]
    • [-Database <DatabaseIdParameter>]
    • [-DisplayName <String>]
    • [-DomainController <Fqdn>]
    • [-EmailAddresses <ProxyAddressCollection>]
    • [-ExecutingUser <RecipientIdParameter>]
    • [-ExternalDirectoryObjectId <String>]
    • [-FromSyncClient <SwitchParameter>]
    • [-Language <CultureInfo>]
    • [-ManagedBy <RecipientIdParameter[]>]
    • [-Members <RecipientIdParameter[]>]
    • [-Name <String>]
    • [-Notes <String>]
    • [-Organization <OrganizationIdParameter>]
    • [-OrganizationalUnit <OrganizationalUnitIdParameter>]
    • [-OverrideRecipientQuotas <SwitchParameter>]
    • [-PrimarySmtpAddress <SmtpAddress>]
    • [-RecipientIdType <Unknown | ExternalId | Smtp | LegacyDn>]
    • [-RequireSenderAuthenticationEnabled <$true | $false>]
    • [-SharePointResources <MultiValuedProperty>]
    • [-SuppressWarmupMessage <SwitchParameter>]
    • [-ValidationOrganization <String>]
    • [-WhatIf [<SwitchParameter>]]
    • [<CommonParameters>]

Connections, Connections everywhere and not an IP to take

The Internet was once something that was only available on a phone line but has now become available seemingly everywhere. The ubiquitous nature of the Internet has tailored our approach to connectivity and what it means to be prepared for doldrums in our lives. So the question becomes should we expect Internet to be available wherever we go or should we be prepared by carrying a mobile hotspot?

I thought this might be an interesting discussion point when today I drew the short straw for Jury Duty. I took my laptop for the extensive waiting thinking I could get a bit of work done while waiting of course requiring the ability for me to connect and just anticipating that I would be able to do so, however was I really prepared if there was no Internet. Generally speaking I do have my smartphone that does allow me to tether but of course for data restrictions I do not use it for a lot of data traffic or only for a few minutes in a pinch, and I would definitely not use it for a full day of waiting to be called for a jury. Even if I was going to use my phone as a mobile hotspot, I would end up killing the battery because while I did bring my charger for my laptop I didn’t bring anything to plug my phone in to keep its battery charged.

So as many, I walked in just expecting the ability to use a public hotspot, which leads me to the thought what should a business or public entity do to ensure quality of service for their hotspot? When I arrived in the morning the connection was solid and quick but based on the occupancy (400) it was quickly apparent that their AP would not be able to handle the traffic of 300 + bored people with nothing to do but use the connection and as the hours clicked by the speed went to a crawl. Realistically, the connection was much faster than the dial-up connection I had back in the 1990s but it is extremely slow compared to the speeds we have today. Maybe we have just become spoiled or maybe as a courtesy people should stop streaming Netflix when on public connections.

I guess my expectations will not change only I will hope that businesses will being to install more APs and devices that can deliver better QoS when using public connections. Perhaps they will give less priority to streaming services since they are what causes the real problem. I will always carry my phone with its hotspot for emergencies but I think that the very nature of the Internet is to just expect for it to be there and available whenever and wherever we happen to be at the moment (I mean it is now on planes.)