Part 2: Useful Office 365 cmdlets to generate SharePoint Online reports and also for SharePoint Online site administration:

Followed to my previous article about useful office 365 cmdlets in SharePoint Online, in this article I’ll be showing you some more useful PowerShell cmdlets to generate SharePoint Online reports /SharePoint Online site administration. I see a lot of misconception with my fellow SharePoint workers on understanding the difference between SharePoint on-premises cmdlets and Office 365(SharePoint Online) cmdlets, please note that they all don’t have the same functionality even though they almost look similar. There is a lot of difference in what they exactly do, so please pay close attention while utilizing them.

1

So let’s get into the real meats and potatoes now…

  1. To create a new SPO Site collection:

SyntaxNew-SPOSite -Url https://vigx.sharepoint.com/sites/Vignesh -Title “Vignesh” -Owner “vigganesan89@vigx.onmicrosoft.com” -Template “STS#0” -TimeZoneId 10 -StorageQuota 200

2

Note: In the above mentioned command you need to specify the URL of your new site collection, Title Name, Template ID, Time Zone and Storage quota size. Please check my previous article on SharePoint Online command to get to know about SharePoint Online Template ID’s

Running this command will create a new site collection in SPO and you can verify this in your SPO admin center as shown below.

3

2.To list the groups, and all the group memberships, for all of your SharePoint Online sites.

Syntax:

$x = Get-SPOSite

 

foreach ($y in $x)

    {

        Write-Host $y.Url -ForegroundColor “Yellow”

        $z = Get-SPOSiteGroup -Site $y.Url

        foreach ($a in $z)

            {

                 $b = Get-SPOSiteGroup -Site $y.Url -Group $a.Title

                 Write-Host $b.Title -ForegroundColor “Cyan”

                 $b | Select-Object -ExpandProperty Users

                 Write-Host

            }

    }

Running the above mentioned command will display the results as shown below,

4.png

3.To list the groups, and all the group memberships, for a single site collection:

Syntax:

First let me assign the $siteURL variable to the site collection in question.

$siteURL = “https://vigx.sharepoint.com/teams/test”–> Site in question.

$siteURL = “https://vigx.sharepoint.com/teams/test”

$x = Get-SPOSiteGroup -Site $siteURL

foreach ($y in $x)

    {

        Write-Host $y.Title -ForegroundColor “Yellow”

        Get-SPOSiteGroup -Site $siteURL -Group $y.Title | Select-Object -ExpandProperty Users

        Write-Host

    }

Running this command will display the results as shown below .

5

 4.To lock a SharePoint Online site:

SyntaxSet-SPOSite -Identity $site -Lockstate NoAccess

Specify the $site variable to the site which you want to lock.

6

Running this command will lock the site and when you try to access it you will get a 403 Forbidden error.

5.To unlock as SharePoint Online site:

Syntax:  Set-SPOSite -Identity $site -Lockstate Unlock

7.png

This will unlock the site that we just locked in the previous command.

6.To disable external sharing for a SharePoint Online site collection:

Syntax:

$siteURL = “https://vigx.sharepoint.com/teams/test”–> Site in question

Set-SPOSite -Identity $siteURL -SharingCapability Disabled

8.png

You can verify this in your SharePoint Online admin center as shown in the image below. The site in question will have external sharing disabled as shown below.

9

7.To enable external user and guest sharing:

Syntax:

Set-SPOSite -Identity $siteURL -SharingCapability ExternalUserandGuestSharing

10.png

Running this command will enable external user and guest sharing in a SPO site collection and you can verify that in the screenshot below.

11.png

Note: By default, this feature will be disabled for SPO sites and this has to be enabled if required.

8.To enable only external user sharing:

Syntax:  Set-SPOSite -Identity $siteURL -SharingCapability ExternalUserSharingOnly

12.png

 Running this command will only enable external user sharing in a SPO site collection and you can verify that in the screenshot below.

15.png

9.To get the list of sites where sharing capability has been enabled:

Syntax:    Get-SPOSite | Where {$_.SharingCapability -ne “Disabled”}

13

  1. To get the list of sites where sharing capability is disabled:

Syntax:  Get-SPOSite | Where {$_. SharingCapability -eq “Disabled”}

14.png

 11.To change the owner of site:

Syntax:

First let me assign the $siteURL variable to the site collection in question.

$siteURL = “https://vigx.sharepoint.com/teams/test”–> Site in question

Set-SPOSite -Identity $siteURL -Owner “pritham@vigx.onmicrosoft.com”

16

12.To change the storage and resource quota of a site:

Syntax:

Set-SPOSite -Identity $siteURL -StorgaeQuota 1000 -ResourceQuota 500

13.To change the Title of the site:

Syntax:

Set-SPOSite $siteURL -Title “New Title”

17.png

This will change the title of the site in question. You can verify this below.

18.png

Thanks for reading this article. This is all I have for this post and I’ll be back with Part 3 of this article very soon.

Happy SharePointing !!!

Part 1: Useful Office 365 cmdlets to generate SharePoint Online reports and also for SharePoint Online site administration:

Presentation1.png

In this post I’ll be showing you how to use Office 365 PowerShell cmdlets to generate useful SharePoint Online reports from your SharePoint Online tenant and also I’ll be discussing on certain useful cmdlets that can be used for SharePoint Online site administration. Let’s get started.

Note: Before we get started, please ensure that you’ve configured your PC to run SharePoint Online (Office 365) cmdlets. If not, please take a look on this article which I’ve already written about how to configure that. Also make sure that you’re a member of the SharePoint Online administration role in Office 365.

  1. Get-SPOSite -Detailed

This command will give a detailed list of all the site collections in your SharePoint Online tenant as shown in the screenshot below.

1.png

2. To get a list of SharePoint groups in your tenant.

Syntax:   Get-SPOSite | ForEach-Object {Get-SPOSiteGroup -Site $_.Url} |Format-Table 

Running this command will generate the results as shown in the image below. Also please note that this command will display the default SharePoint groups as well as the custom SharePoint groups that was created manually.

2.png

3.png

3. Adding a user to the Site collection administrators group.

Before I go ahead and show the syntax for this, let me go ahead specify the variables here so that it will be easy for us to use that in the command.

$tenant =  “https://vigx-admin.sharepoint.com “–>This would be my tenant URL

$site = “https://vigx.sharepoint.com/teams/test” –>This will be the SharePoint site collection URL

$user =” kamaleshg@vigx.onmicrosoft.com” –> This will be the UPN for the user who will be added as the SCA.

Since we have already specified all the variables, let’s go ahead and run the syntax.

SyntaxSet-SPOUser -Site $site -LoginName kamaleshg@vigx.onmicrosoft.com -IsSiteCollectionAdmin $true

Check the screenshot below for reference:

4.png

5.png

So this will add the user to the SCA group of  a site collection.

4. To get the list of users in my SharePoint Online Tenant:

Syntax:  Get-SPOSite | ForEach-Object {Get-SPOUser -Site $_.Url} 

Running this command will display the results as shown in the screenshot below.

replace.PNG

 

 

5.To get a report of the user’s in a site, their display names, permission levels and other properties:

Before I go ahead and execute the command for this, let me specify the $site variable for the site in question.

$site = “https://vigx.sharepoint.com/teams/test” –>This will be the SharePoint site URL

Note: It’s not necessary that you need to keep specifying the variables every time in a command unless you’re planning to use a different value apart to the one specified for that variable. PowerShell will automatically store it for you till the session is live.

Syntax:  Get-SPOUser -Site $site | select * | Format-table -Wrap -AutoSize | Out-File G:\UsersReport.txt -Force -Width 360 -Append

8.png

Running this command will generate a report as shown in the screenshot below.

9.png6. To get a report of the all user’s in your SharePoint Online Tenant, their display names, permission levels and other properties

$tenant =  “https://vigx-admin.sharepoint.com “–> This would be my tenant URL

Syntax:

Get-SPOSite | ForEach-Object {Get-SPOUser -Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File G:\UsersReport.txt -Force -Width 360 -Append

10.png

Note: PowerShell might throw you some errors while running this command but that can be safely ignored.

Running this command will generate a report as shown below.

11.png

If you want to export the result to a CSV file, try running the below mentioned command.

Command 1 : For setting the headers in the CSV file

“Display Name`tLoginName`tGroups” | Out-File C:\UsersReport.csv

 12.png

Command 2: Once you’re done executing the first line, run the below syntax to get the report in the form a CSV file.

Syntax:

Get-SPOSite | ForEach-Object {Get-SPOUser -Site $_.Url -ErrorAction SilentlyContinue | %{ $_.DisplayName + “`t” + $_.LoginName

 + “`t” + $_.Groups | Out-File c:\UsersReport.csv -Force -Append}}

13

This will generate a CSV file as shown in the image below,

14.png

 7. To create a new SharePoint Group in a site collection.

Before I mention the syntax, let’s specify the necessary variables.

$tenant = “https://vigx-admin.sharepoint.com” –>Tenant URL

$site = “https://vigx.sharepoint.com/teams/test “–> Site collection URL

$group = “Test Site Owners2” –>SharePoint Group Name

$level = “Full Control” –> Permission level

Syntax:

New-SPOSiteGroup -Group $group -PermissionLevels $level -Site $site

15.png

Running the above command will create a new SharePoint Group in the targeted site collection and will give the results as shown below.

16.png

8. To create an inventory of all the SharePoint site collections in your Tenant which has the information of the Site Name, URL, Quota, compatibility level and other information etc.… and to export the results to a CSV file:

Syntax:

Get-SPOSite -Limit All | Export-CSV -LiteralPath G:\SiteInventory.csv -NoTypeInformation

17.png

Running this command will generate a CSV file in specified path as shown in the image below.

18.png

 9. To get your SharePoint Online Tenant information

Syntax: Get-SPOTenant

This will give the complete tenant information as shown in the image below.

19.png

  1. To get the list of site templates in your SharePoint Online tenant

Syntax: Get-SPOWebTemplate

Running this command will give the list of site templates in SharePoint Online as shown below

20.png

This concludes part 1 of this article, I’ll be creating part 2 of this article where I’ll be taking you through few more SharePoint Online PowerShell cmdlets that can help us to generate useful reports and also for site administration.

Thanks for reading this post.

Happy SharePointing!!!  

Microsoft Life cycle Support for SharePoint Server 2007 , 2010 & 2013:

SharePoint Version Lifecycle Start Date Mainstream Support end date Extended Support End Date Service Pack Support End Date Points to Note
SharePoint Server 2007 1/27/2007  10/9/2012 10/10/2017 1/13/2009  
Microsoft SharePoint Server 2010 7/15/2010 10/13/2015 10/13/2020 7/10/2012  
Microsoft SharePoint Server 2010 Service Pack 1 6/28/2011 Not Applicable Not Applicable 10/14/2014  
Microsoft SharePoint Server 2010 Service Pack 2 7/23/2013 Review Note Review Note   Support ends 12 months after the next service pack releases or at the end of the product’s support lifecycle, whichever comes first. For more information, please see the service pack policy atgp_lifecycle_servicepacksupport.
Microsoft SharePoint Server 2013 1/9/2013 4/10/2018 4/11/2023 4/14/2015  
Microsoft SharePoint Server 2013 Service Pack 1 2/25/2014 Review Note Review Note   Support ends 12 months after the next service pack releases or at the end of the product’s support lifecycle, whichever comes first. For more information, please see the service pack policy atgp_lifecycle_servicepacksupport.

 

 

 

Difference between SharePoint health analyzer & SCOM Alerts for SharePoint:

I often used to have a hard time trying to understand the difference between the SharePoint Central Administration Health Analyzer alerts and the SCOM alerts for SharePoint and after doing quite a bit of research on the internet I got to know what these two mean in detail and how they differ from each other.

So in this post we will be discussing about what is a SCOM alert and a SharePoint Health analyzer alert and what’s the difference between them and why/when we need to relay upon them. So let’s get started.

SCOM.png HEALTH ANALYZER.jpg

What’s a SCOM alert?

SCOM (System Center Operations Manager) is an enterprise monitoring tool which is capable enough of monitoring Windows Server/Server products like (SharePoint, Exchange, Lync server & SQL Server etc.) and Unix based hosts. How SCOM works is, with every product that Microsoft releases such as Exchange /SharePoint the product team also releases an appropriate SCOM management pack which will take care of monitoring. Listed below are the steps that need to be done to configure SCOM monitoring for application servers.

  1. Install/Configure SCOM on a Windows server.
  2. Once done , please install the appropriate management packs on the SCOM server ( Ex : Exchange management pack, SharePoint server management pack )
  3. In the respective application servers install the SCOM agent ( Ex : SCOM agent for Exchange on exchange server and SCOM agent for SharePoint on SharePoint server )
  4. The agent installed on all server is used to gather performance information and logs.
  5. Whenever the agent become unreachable by the SCOM server an appropriate alert will be triggered on the SCOM console.
  6. These alerts can also be sent as emails to a DL or a person.

What’s a SharePoint Health Analyzer alert? 

SharePoint Health Analyzer is a feature in Microsoft SharePoint that enables SharePoint farm administrators to schedule regular, automatic checks for potential configuration, performance, and usage problems in the server farm. It monitors the farm by applying a set of health rules. The complete list of health rules can be found later in this article.

These Health rules are executable code. Each rule is a concrete subclass that inherits from either one of two abstract classes:

SPHealthAnalysisRule

SPRepairableHealthAnalysisRule.

In both cases, the code that detects and reports a potential problem is in the Check method. Repairable health rules also have a Repair () method that fixes a problem found by the Check method.

The complete list of SharePoint Health analyzer rules can be found in the link mentioned below: _ https://technet.microsoft.com/en-us/library/ff686816.aspx

Difference between SCOM alerts for SharePoint and SharePoint health analyzer alerts:

The SCOM Management packs are more complex than what is offered by the Health Analyzer. The Health Analyzer has a simple set of application rules. Please note that these rules are limited only limited to the  current farm and can only notify administrators provided that outgoing email is enabled (and working) in the SharePoint farm. By default they are not set to email out and only display to users within Central Administration. If the server has crashed, the Heath Analyzer will not alert anyone.

SCOM monitors certain things that the Health Analyzer doesn’t. Remember, it’s not only monitoring the SharePoint MP. There are the Windows MPs and if you have other applications on the server other than SharePoint (let’s say SQL Server), it can monitor them as well (provided that the MP’s for SQL is also installed). The Heath Analyzer won’t scan the event logs for errors and email the team. The Health Analyzer cannot send an alert if one of the hard disks fails. The Health Analyzer won’t tell you how many times an issue has happened in the past, packaged in a nice report with a graph.

On the other hand SCOM integrates closely with SharePoint and provides the most comprehensive and flexible solution for monitoring the health of SharePoint farms. With SCOM, the level of reporting and alerting is more granular and easily managed than SharePoint’s standard health monitoring.

  • SharePoint 2010/2013  ships a management pack for System Center Ops Manager
  • The management packs are of two different types 1. MP for SharePoint Server 2. MP for SharePoint Foundation.
  • Improved Knowledge Articles
  • More relevant events and monitors
  • Surfaces SharePoint Health Analyzer (SPHA) rules
  • Integrated with Unified Logging System (ULS)

SCOM management pack for SharePoint server: https://www.microsoft.com/en-in/download/details.aspx?id=35590

SCOM management pack for SharePoint foundation: _ https://www.microsoft.com/en-in/download/details.aspx?id=35591

So the conclusion here is, both SCOM MP for SharePoint server and SharePoint health analyzer are capable enough of monitoring the health of the SharePoint farm. However SCOM MP’s are more granular and can monitor certain things that can’t be monitored by SharePoint health analyzer. Moreover, the alerts that you get on SharePoint health analyzer are mostly bogus information (meaning, you don’t need to pay much attention to those alerts as they aren’t really scary for the most part and can be safely ignored ) .Please read my previous article about this

Thanks for reading this post .Happy SharePointing!!!

 

 

 

Configuring Windows PowerShell to support SPO management shell, Exchange Online Management Shell, Skype for Business Online Management Shell and Office 365 Compliance center:

office3652.jpg

Good evening  to all the Office 365 nerds out there, this article would be on how to configure Windows PowerShell in your client operating system to support Office 365 (i.e. SharePoint Online Management shell, Exchange Online Management Shell, Skype for Business Online Management Shell and Office 365 Security & Compliance center). Well it’s a known fact that Microsoft has released the PowerShell module for all these products (SharePoint Online, Exchange Online, Skype for Business Online and Office 365 Security & Compliance center) separately and you can use that to manage these products separately .Listed below are the links to download those modules .

SharePoint Online Management shell: _ https://www.microsoft.com/en-us/download/details.aspx?id=35588

Skype for Business Online module: _ https://www.microsoft.com/en-us/download/details.aspx?id=39366

Exchange Online module: _ https://technet.microsoft.com/en-us/library/jj984289(v=exchg.160).aspx

Office 365 Security & Compliance center: _ https://technet.microsoft.com/en-us/library/mt587091(v=exchg.160).aspx

Azure AD Module (this can be used for user and domain management tasks in Office 365): _ https://msdn.microsoft.com/en-us/library/jj151815.aspx .

So if you’re the guy who plays the IT administrator role in your company and if you’re the one who has Office 365 global admin role assigned to you and takes care of managing Office 365 then chances are that your desktop could look very messy as shown in the image below while you’re using the management shell and you’re definitely going to have hard time managing them .

29.png

So the idea here is to show guys how to configure PowerShell to support all these modules and be successful in managing Office 365 from a single PowerShell window.

Let’s get into the detailed steps now:

Note: Please bear in mind that you need to have Office 365 global admin access to perform these steps.

  1. Please install the Microsoft .NET Framework 4.5.x and then either the Windows Management Framework 3.0 or the Windows Management Framework 4.0. in your PC.

Windows Management Framework 3.0:_ https://www.microsoft.com/en-us/download/details.aspx?id=34595

Windows Management Framework 4.0:_ https://www.microsoft.com/en-us/download/details.aspx?id=40855

  1. For Skype for business online module to function, you need a 64-bit operating system and hence please make sure you’re running a 64 bit version of Windows. Else you will end up getting an error  message as shown in the image below.

31.png

3.  Listed below are the 64-bit version of Windows that you can use

                                Windows 8.1 or Windows 8

                                Windows Server 2012 R2 or Windows Server 2012

                                Windows 7 Service Pack 1 (SP1)*

                                Windows Server 2008 R2 SP1*

  1. Once that’s done you need to install the modules that are required for Office 365, SharePoint Online, and Skype for Business Online. Listed below are the links to download those modules.

Microsoft Online Service Sign-in Assistant for IT Professionals RTW

Windows Azure Active Directory Module for Windows PowerShell (64-bit version)

SharePoint Online Management Shell

Skype for Business Online, Windows PowerShell Module

5. Once you’re done installing all the modules you need to configure Windows PowerShell to run signed scripts for Skype for Business Online, Exchange Online, and the Security & Compliance Center. To do this, run the following command in an elevated Windows PowerShell session

Set-ExecutionPolicy RemoteSigned

1

6. Now inorder to identify whether you’re running Windows PowerShell using elevated permissions or normal mode, please check the prompt on your PowerShell screen.

PS C:\Windows\System32> –>Elevated permissions

 PS C:\Users\UserName>–>Normal mode

7. Now run the next below mentioned command to pass your Office 365 user name and password to Windows PowerShell in an encrypted way. Once that’s done you will get a windows dialog box prompting for your credentials as shown in the image below.

$credential = Get-Credential

2

8. Now key-in your Office 365 credentials and click on OK as shown below.

3

9. In-order to identify whether your credential object has been created successfully, please run the below mentioned command as shown in the image below and it should return the value.

Note: Windows PowerShell will never tell you anything when things go fine, it will silently pass on to the next line .It only yells at you when something went wrong. That’s the funny thing about Windows PowerShell.

$credential

30

10.  Now we are all good to and hence we can start connecting to Office 365, for that please run the below mentioned command.

Import-Module MsOnline

4

11. Once that’s done in-order to verify whether the module was imported successfully you need to run the below mentioned command. This should return the value as shown in the image below.                                Get-Module

12. Somewhere in the list of modules that are returned by this command you should see something that looks like this:  

  Manifest 1.0 MS Online {Add-MsolForeignGroupToRole, Add-MsolG…}.

If you see MSOnline listed, that means that everything went according to plan.

13. Since we have verified that the credential object has been created and also the MSOnline module has been loaded successfully the next step would be to connect to Office 365 using the Connect-MsolService cmdlet. For that run the below mentioned command as shown in the image below.

                                Connect-MsolService -Credential $credential

5

14. In-order to verify whether you have successfully logged into your Office tenant, please run the below mentioned command and verify your domain information as shown in the image below. In my case my domain name for Office 365 is “vigx” and you can see that in the image below.

                                                 Get-MsolDomain

32.png

15. After performing all the above mentioned we have successfully verified that we are able to establish a connection to the Office 365 tenant using our user name and password which has Global admin access in Office 365 . Now the next steps would be to create a connection to each modules separately (i.e. SharePoint Online, Exchange Online , Skype for Business Online & Security and Compliance center for Office 365 )

16 .Initially let’s get started with SharePoint Online by running the following command.   Import-Module Microsoft.Online.SharePoint.PowerShell –DisableNameChecking

Here the “DisableNameChecking” switch suppresses the below mentioned warning.

Warning: The names of some imported commands from the module ‘Microsoft.Online.SharePoint.PowerShell’ include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.

17. In order to connect to SharePoint Online, you need to supply two pieces of information: your credentials and the URL of your SharePoint Online admin site. This is how the format is going to look like.

Note: You can get your SharePoint Online tenant URL by opening the tenant admin page. Check the screenshot below.

33

This is how the format will look like,

Admin URL: – https://vigx-admin.sharepoint.com   Connect-SPOService -Url https://vigx-admin.sharepoint.com -credential $credential

18. Once that’s done, please go ahead and run “Get-SPOSite” command as shown below and see the results .This should list all the SharePoint Online sites.

34.png

19. If you successfully get the list of all SharePoint Online sites then your command ran successfully.You can verify that by visiting the SharePoint Online admin center as shown below.

6.PNG

20. Also try running Get-MsolUser and see the result , this will return the list of all the users in Office 365 .This means you can now manage both SharePoint Online and Office 365 from the same Windows PowerShell window .

35.png

 

21. Now, let’s take a look on how to connect to Skype for Business Online (formerly as Lync Online)

Note:  Connecting to Skype for Business Online (and to Exchange Online or the Security & Compliance Center) is different than connecting to Office 365 or to SharePoint Online. That’s because the Skype for Business Online and Exchange Online cmdlets don’t get installed on your computer like the Office 365 and the SharePoint Online cmdlets do. Instead, each time you sign in, the appropriate cmdlets are temporarily copied to your computer. When you sign off, those cmdlets are then removed from your computer.

22. In order to connect to Skype for Business Online, please run the below mentioned command to import the Skype for Business Online module. For that run the below mentioned command.

                         Import-Module SkypeOnlineConnector

36.png

Note: The first time you might see some warning message which can be safely ignored.

23. Once the module has been imported, run the below mentioned command to initiate a new Sfbo session by running the below command.

$sfboSession = New-CsOnlineSession -Credential $credential

Note: By running the above command we have successfully created a remote PowerShell session. The above command is used to connect to an instance of Windows PowerShell running on one of the Office 365 servers.

37.png

24. Once that’s done you need to run the below mentioned command to download the “Skye for Business Online scripts /cmdlets” and other items. As already mentioned before Skype for Business Online commands are not similar to SPO cmdlets, Sfbo cmdlets need to be loaded every time you plan to use PowerShell to manage Sfbo. So now let’s load sfbo cmdlets to PowerShell by running the below mentioned command(you can notice the progress bar in the image below loading the cmdlets to Windows PowerShell)

Import-PSSession $sfboSession

10.png

25. Once Windows PowerShell is done loading the sfbo cmdlets you should notice something like this as shown in the image below. If you notice this in your screen then you have successfully made a connection to Skype for Business Online.

11

26. You can verify your connection to Skype for Business Online by running the below mentioned command.

Get-CsOnlineUser -Identity vigganesan89@vigx.onmicrosoft.com 

Note: This command will give the information for the user who has his UPN/SIP ID as vigganesan89@vigx.onmicrosoft.com

16

27.  Alright, till now we have seen how to configure Windows PowerShell to support SharePoint Online and Skype for business online, now let’s take a look on how to configure Windows PowerShell to support Exchange Online.

28. In order to proceed further, please run the below mentioned command which creates a remote Windows PowerShell session with Exchange Online.

$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri “https://outlook.office365.com/powershell-liveid/” -Credential $credential -Authentication “Basic” -AllowRedirection

Note: Why is the command for connecting to Exchange Online more complicated than the command to connect to Skype for Business Online? Technically, it’s not: both commands do the exact same thing. However, the Skype for Business Online team created its own cmdlet—New-CsOnlineSession—that hides some of the parameters (like Authentication and AllowRedirection) that are used when connecting to Exchange Online. Instead of requiring you to type that information yourself, the Authentication and AllowRedirection parameters are effectively built in to the New-CsOnlineSession cmdlet. You have to type those parameters when connecting to Exchange Online because Exchange Online uses the standard New-PSSession cmdlet to connect to Office 365. The disadvantage is that you have a little more typing to do. The advantage is that you don’t have to download and install an Exchange Online module. This will start loading the modules as shown in the screenshot below.

13.png

29. Once you’re done running the above command, please run the below command to import the Exchange Online remote session, just as we did for Skype for Business Online. Please check the screenshot below.

        Import-PSSession $exchangeSession –DisableNameChecking

38

30. Once you’re done running the above command you would get the results as shown in the image above.

31. After you get the desired results in the screen, try running the below mentioned command , you should see information about your Office 365 domains that are configured for email addresses in Exchange Online.

Get-AcceptedDomain

39

32. This confirms that you have successfully connected to Exchange Online, you can also verify that by running the “Get-Mailbox” command as shown in the email below. This should return the Mailbox information of the users who are in Office 365.

40

33. So till now we have seen how to manage the user administration/license management for Office 365 , SharePoint Online , Exchange Online & Skype for Business Online using Windows PowerShell .Now let’s see how to manage the Security and Compliance center in Office 365 using Windows PowerShell .

34. The connection instructions for the Security & Compliance Center are very similar to those for Exchange Online, but with a slight difference .Let’s take a look at it. To get started with, please run the below mentioned command which creates a remote PowerShell session with the Security & Compliance Center

$ccSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid/ -Credential $credential -Authentication Basic –AllowRedirection

35. This will start loading the modules as shown in the image below.

20.PNG

36. Now in order to import the cmdlets for “Security and Compliance center” run the below mentioned command .This should look similar to the Exchange Online cmdlet. The DisableNameCheckingswitch isn’t required here as there are no unapproved verbs in the Security & Compliance Center. But the additional -Prefix ccparameter and value is something different here. The Exchange Online and the Security & Compliance Center share some cmdlets that have exactly the same names and provide the same functionality. Get-RoleGroup is an example.                                                                                             Import-PSSession $ccSession -Prefix cc

21.PNG

37. Now you can verify the result of the above command in the screenshot above.

38. In order to verify whether you have been successfully connected to “Security and Compliance center” in Office 365, please visit the below mentioned link and try executing the cmdlets there and see the results.

https://technet.microsoft.com/en-us/library/mt587093(v=exchg.160).aspx

39. So finally we have connected to all the instances of Office 365 (Office 365 user/license management, SharePoint Online, Exchange Online, Skype for Business Online & Security and Compliance center in Office 365) using Windows PowerShell and we also saw how to execute the appropriate cmdlets to manage them.

40. Now, run the below mentioned command to get the active sessions that are running .For that run the Get-PSSession

The Get-PSSession cmdlet should show you that you have at least three remote sessions open, one for Skype for Business Online, one for Exchange Online and one for the Security & Compliance Center (it’s possible you could have more than three remote sessions running, depending on whether you’ve used this instance of Windows PowerShell to connect to something else besides the Office 365 services). You should see something similar to the following.

41.png

41. Since we have verified the active sessions that are running, now run the below command one at a time to close the session. If you just close the Windows PowerShell window, your Skype for Business Online remote connection will remain active for the next 15 minutes or so. Because Skype for Business Online limits the number of simultaneous connections that any one person or any one domain can have open, that could be a problem. With Skype for Business Online, an individual administrator can have, at most, three open connections at one time, and a domain can have a maximum of nine open connections. If you sign in to Skype for Business Online and then exit without properly closing the session, that session remains open for the next 15 minutes or so. As a result, that’s one fewer connection available to you or to other administrators in your domain. So run the below mentioned command to close the remote sessions for Skype for Business Online, Exchange Online, and the Security & Compliance Center gracefully.

 

Remove-PSSession $sfboSession

                                Remove-PSSession $exchangeSession

                                Remove-PSSession $ccSession

 42. If you prefer to close all the sessions at the same time without doing it one at a time, please run the below mentioned command.

 

Get-PSSession | Remove-PSSession

 43. The above mentioned commands will stop the PowerShell sessions for Skype for Business Online, Exchange Online, and the Security & Compliance Center gracefully but not SharePoint Online and hence to stop the session for SharePoint Online , run the below mentioned command .

Disconnect-SPOService

43.png

44. Now inorder to verify whether we have successfully disconnected from SharePoint Online service run the below mentioned command and it should throw you an error.

44.png

45. This confirms that you have successfully disconnected from SharePoint Online management shell.

So finally we have seen how to configure Windows PowerShell to support SharePoint Online Management shell, Exchange Online Management Shell, Skype for Business Online Management Shell and Office 365 Compliance center.

 

 

 

Office 365: Setting up your Windows PC to support SharePoint Online management shell

8

  1. Install Windows Management Framework 3.0 in your computer by downloading it from the below mentioned link.

https://www.microsoft.com/en-us/download/details.aspx?id=34595

  1. Click on the download button on the link above and you will get a list of files to download as shown in the image below. Choose the one that best suits your operating system. In my case I installed KB2506143

                               For 32-bit operating system choose: x86

                              For 64-bit operating system choose: x64

1

3. Once you’re done downloading the appropriate file go ahead and install it in your computer. You will be prompted for a system restart to complete the installation.

4. The next step would be to install the “SharePoint Online Management Shell “module, please download that from the below mentioned link.

https://www.microsoft.com/en-us/download/details.aspx?id=35588

5. Click on the download button on the link above and you will get two files to download as shown in the image below. Choose the one that best suits your operating system.

                For 32-bit operating system choose: x86

                For 64-bit operating system choose: x64

26. Once you’re done downloading the appropriate file go ahead and install it in your computer. You won’t be prompted for a system restart this time.

7. After that’s done, Click Start–>All Programs–>Check for SharePoint Online Management Shell.

3

8. Open “SharePoint Online Management Shell”, and type the below mentioned command to connect to your SharePoint Online subscription and hit enter.

Connect-SPOService -Url https://vigx-admin.sharepoint.com -credential     vigganesan89@vigx.onmicrosoft.com

Note: Please note that the account which you’re using here should have SharePoint Online administration access. Else you won’t get the desired result

9. Where URL is the URL of your “SharePoint Online admin center “and the credential is your Office 365 account name and password.

Note: Please check the SharePoint Online admin center screenshot below, you can find the admin center url in the address field

4

10. Once you hit enter you will get a dialog box as shown below prompting for your Office 365 user name and password. Please go ahead and enter that and click on ok and be patient.

5.png

11. If the command succeeded it won’t return anything, else it will yell at you with bunch of errors (that’s the funny part about PowerShell!!!) .Here in my case, the command succeeded and hence it didn’t return anything.

6

12. Now in order to confirm whether you have successfully logged into SharePoint Online management shell, please go ahead and run the “Get-SPOSite” command and see if it returns the list of all SharePoint Online sites as shown in the image below.

7

Finally we are done with the task of setting up a SharePoint Online Management Shell environment.

Thanks for reading. Happy SharePointing!!!

 

 

 

 

 

Search Service application components in SharePoint Server 2013:

 

1.png

As you’re all aware ,there has been a major change in the search architecture on SharePoint Server 2013 when compared to SharePoint server 2010 and in this post I’ll  be discussing on the six different search service components in SharePoint 2013 .It’s very important that all these components are running fine without any issue for the Search service to function seamlessly and surface the results in the search page when a user executes a query in the search center.

Listed below are the six components available in SharePoint 2013 search service:

  1. Crawl Component
  2. Content processing component
  3. Indexing component
  4. Query processing component
  5. Analytics processing component
  6. Search administration component

 Now, let’s take a look on all these components separately …

1.Crawl Component :

This component takes care of crawling the content sources such as (SharePoint sites, websites & file shares etc…) and extracts the crawled properties and metadata and sends that to the content processing component.

2. Content processing component:

This component receives the information from the crawl component and then processes and sends it to the indexing component. It also interacts with the analytics processing component and is responsible for mapping crawled properties to the managed properties.

3. Indexing Component :

This component takes care of receiving the information from the content processing component and writes it to the search index. It also takes care of handling the queries and sends back the results to the Query processing component.

4. Query Processing Component:

This component handles incoming query requests and sends them to the indexing component for results. It also takes care of query optimization.

5. Analytics Processing Component :

This component takes care of analyzing what users are querying on and how they interact with the results.  This information is used to determine relevance, generate recommendations and also used for generating search reports.

6. Search administration Component:

This component manages administrative processes as well as changes to the search topology, such as adding or removing search components and servers.

Please note that these 6 search components can be distributed across multiple servers to provide high availability as well as improve performance as shown in the image below.

2.png

Search service application databases:

  • Search Administration database :The Search Administration database hosts the Search service application configuration and handles crawl state orchestration, including the content source crawl history.
  • Analytics Reporting database :The Analytics Reporting database stores the results for usage analysis reports and extracts information from the Link database when needed.
  • Crawl Store database :The Crawl Store database stores the state of each crawled item and provides the crawl queue for items currently being crawled.
  • Link database :The Link database stores the information that is extracted by the content processing component and the click through information.

Thanks for reading this post. Happy SharePointing!!!

 

 

 

 

 

 

 

 

Office 365 Usage reporting:

Office-365-Cloud-Logo.pngUnderstanding how people in your organization are using Office 365 is an important step in driving more usage and ultimately getting the utmost value from your investment in Office 365. In regards to this Microsoft has recently introduced the new reporting dashboard feature in Office 365 admin center which gives the usage reports for SharePoint, One Drive for Business, Skype for Business and Yammer, which give IT greater visibility into usage across these services in Office 365.

Now let’s take a look at what you can find in these usage reports,

  • Activity dashboard (also called reporting dashboard)—Provides you with a high-level overview of how many people in your organization are using Office 365. Each service in the suite, such as Skype for Business and Exchange, has its own tile that surfaces key activity data, making it easy for you to get a quick understanding of the activity within that service. To view detailed information by service or by individual user, simply click the specific tile or use the drop-down menu at the top of the reporting dashboard.

  • Email activity report—Enables you to understand email usage, such as send, receive and read activity. It also enables you to monitor trends in email traffic, and can be especially helpful in scenarios such as user migration.

  • Office activations report—Shows which users who have been assigned an Office 365 license have signed into Office 365 on at least one device, including a breakdown by device type. This report helps you identify users who have been assigned a license but have not yet activated it, so you can provide assistance as necessary.

  • SharePoint site usage report—Provides you with storage consumption details across all your SharePoint sites. The report helps you see activity across sites, how much storage is available per site and how the sites are being used for file storage.

  • One Drive for Business usage report—This report helps you understand storage and sharing activity across One Drive for Business, including number and size of files stored, in aggregate and per user.

  • Skype for Business report—Shows Skype for Business usage, with details such as minutes spent in a Skype Meeting and with breakouts on peer-to-peer activity such as IMs and calls, meetings organized and meeting participation.

  • Yammer report—Provides details on Yammer engagement—breaking out Like, Read and Post activities.

o3651

 Details you can act on:

All reports provide you with both aggregate and user-level information, so you can effectively plan training and communication that helps your users to take full advantage of the potential of Office 365.

All reports also provide information for different time frames: 7 days, 30 days, 90 days and 180 days. You can export all reports into CSV format and open them with a tool like Excel to quickly filter or pivot the data for further analysis.

o3652.png

 While the reports do provide the ability to track usage at the individual user level, IT admins will only have access to information they already have permission to access in the service. Microsoft will also be rolling out a new privacy feature that allows you to anonymize user-level information before sharing it with other stakeholders in the company.

Global admins can turn on privacy settings by going to : Settings > Services & add-ins > Report.

o3653.png

 You can find detailed log information that allows you to audit and track specific user and admin activities in the Compliance Center.

Thanks for reading this post.

 

Uninstallation of ADDS Role in Windows server 2016 Technical preview 4:

tp4-1024x512

Followed to my previous post on ADDS installation on Windows Server 2016 Technical Preview 4, I’ll be discussing on how to uninstall ADDS on this post. Ideally uninstalling the ADDS role means that you’re demoting your domain controller to be a normal server. Now, let’s take a look on the steps involved in demoting a domain controller.

  1. Open server manager and click on the “Manage” button and choose “Remove Roles and Features “as shown in the image below.

1.PNG

2. On the next screen, click “Next “.

2.PNG

3. On select the destination server pane, select the server from which you want to remove the ADDS role as shown in the image below.

3.PNG

4. Choose the server and click next, in this scenario I have only one server in the server pool and this is the one that’s running the ADDS role. Click next and it will list you the list of roles.

5.PNG

5. Choose “Active Directory Domain Services “role as shown above and click next. This will give you a window asking you to remove the dependent features for ADDS. Please go ahead and click on “Remove features “as shown in the image below.

6.PNG

6. You will get a window as shown below. Please go ahead and click on “Demote this domain controller “

7.PNG

7. This will take you to a screen as shown below, please go ahead and click on next. You need to choose the appropriate option.

8.PNG

8. I’m choosing the first option which says, “Force the removal of this domain controller “and then click on next.

9.PNG

9. On the next screen please validate all the roles running on the domain controller and click on the checkbox which says, “Proceed with removal “and click next.

10.PNG

11.PNG

10. The next screen will be prompting for a new password .Please go ahead and specify the new password and click next.

Note: This password will be different from the normal domain administrator password.

12.PNG

11. The next screen will ask you to review the changes made and once you’re done validating it please go ahead and click on the “demote” button to demote this server as shown in the image below.

Note: Clicking on the view script button will generate the script that ran on the background when this activity was performed .You can use this script for future purpose also if you want to perform a ADDS uninstallation on any other domain controller .

13.PNG

14.PNG

12. Finally once this is done your server will be restarted and then you will notice that this server is no longer a domain controller. You can confirm this on the logon screen itself where you would just see the logon username and not the domain name prefixed to it. In my case below I’m logging in as the administrator and you won’t see the domain name prefixed before.

15.PNG

13. Before uninstalling the ADDS role, this is how the logon screen looked. Check the logon screen below. You can see my domain name “VIGNESH” prefixed before the logon name.

16.png

Demystifying SharePoint server licensing:

 

1.png

So this post is to explain how SharePoint server licensing works. To be honest I often used to stumble around trying to understand how this entire thing works and after doing a lot of research in the internet I was able to understand how the entire licensing part works and hence I wanted to write an article on that hoping that it would help you all to have a better understanding about SharePoint Server licensing.

With that being said, I’ll be discussing about SharePoint server licensing in 2013 and Office 365 and how things are expected to change in SharePoint server 2016 as well. So before we get started let me go ahead and define certain terminologies that I’ll be using often in this post so that you can have a better understanding about those terms when I’m using that in this post later.

Internal Users: Users who are the licensee’s or its affiliates’ employees and on-site agents and contractors (i.e. Users who are present in your domain and have an account in AD)

External Users: Users who are not the licensee’s or its affiliates’ employees or on-site agents or contractors (i.e. Users who are not present in your domain and don’t have an account in AD).

Intranet: Website hosting content, information, or software that is accessible inside the firewall to internal users only (i.e. Within the company’s firewall).

Extranet: Website hosting content, information, or software that is accessible inside the firewall to internal users and named external users only.

Internet: Website hosting content, information, or software that is publicly accessible to all users (internal and external). (i.e. Outside the company’s firewall)

CAL:   Client Access License.

2.png

Microsoft licenses SharePoint server 2013 using the Server/Client Access License licensing model.  The Server/CAL licensing model requires both the server license on which it’s (i.e. SharePoint application) installed as well as the CALs for the users (or devices) that access the application. To be more clear you need license for each server on which SharePoint is installed and apart from that you also need licenses for the users (or devices) that access SharePoint. However, please note that the CAL requirements may vary based on user status and CALs are generally required for internal users to access all SharePoint server software. The only exception to this is, internal user access to Internet websites (public-facing websites such as e-commerce SharePoint sites) .In these cases, the SharePoint CAL requirement is waived. On the other hand, this is not the case for external users, you don’t need to purchase any extra license for external users and the server license by itself will take care of their access. Please note that there can be couple of ways to leverage access to external users to access SharePoint such as (Anonymous authentication, Forms-based authentication etc. …However, an external user who still has a user account in your AD won’t be considered as external as per SharePoint sever licensing model if he’s using his AD account to access SharePoint). So it’s very important to choose external users access carefully or else you might end up paying licenses for them as well.

I would also like to touch base on the “devices” part which I mentioned earlier so that you have an understanding about how that would have an impact on SharePoint licenses. Let’s consider a scenario where you’re accessing your SharePoint site from your workstation and at the same time you’re logged into the SharePoint site from your smartphone as well, then that’s two devices accessing the same site. SharePoint doesn’t consider that as a single license, its takes it as two different devices accessing the same site. This is where the device licenses come into picture. So it’s very important that you choose the correct licensing model.

User CALs:

With the User CAL, you purchase a CAL for every user who accesses the server to use services such as file storage or printing, regardless of the number of devices they use for that access. Purchasing a User CAL might make more sense if your company’s employees need to have roaming access to the corporate network by using multiple devices, or from unknown devices, or if you simply have more devices than users in your organization.

3.png

Device CALs:

With a Device CAL, you purchase a CAL for every device that accesses your server, regardless of the number of users who use that device to access the server. Device CALs may make more economic and administrative sense if your company has workers who share devices, for example, on different work shifts.

4.png

The following diagram depicted below illustrates whether a user needs a SharePoint CAL or not. “Restricted” refers to content stored inside the firewall for internal access and possibly limited, identified external user access. “Public/Internet” refers to content stored outside the firewall for broad, unrestricted access.

5.png

Now, let’s take a look at certain scenarios which can give us a better explanation on how the licensing part works for internal and external users.

Scenario A: Intranet

Description: Internal users accessing content, information, or applications inside the firewall through a local area network (LAN) or the Internet. No other users have access.

Example: A professional sports team sets up an intranet site that the manager, coach, and players access. It is also used for support staff such as the physiotherapist who is an on-site contractor rather than an employee, and for CAL requirements, an internal user. A news reporter trying to access the SharePoint Server site is denied access.

Licensing:

Server: One SharePoint Server 2013 license per running instance of the software.

Internal Users:  One CAL/user.

6.png

As shown in the above image, the internal users (the team’s managers, coach, players, and on-site therapist) each must be assigned a CAL. This requirement does not change if the same users are accessing the intranet site remotely from the team’s offices. Given that this is an intranet site, no external user access is permitted.

Scenario B: Extranet

Description: An organization extends access to otherwise restricted content inside the firewall to a limited number of identifiable external users.

Example: The Elm University publishes research papers that are available to specific educators from other universities (external users). This situation is an intranet plus extranet scenario.

Licensing:

Server: One SharePoint Server 2013 license per running instance of the software.

Internal Users: One CAL/user.

External Users: SharePoint CALS are not required; the server license permits external user access.

7.png

As shown in the above image, the internal users (the school’s faculty and staff) each must be assigned a SharePoint CAL. This requirement does not change if the same users access the site remotely while they are off-campus. The identifiable external users (educators from other universities) who are permitted to access otherwise restricted content inside the firewall do not require SharePoint CALs, because external user access is permitted under the server license. No other users are permitted to access the site.

Scenario C: Internet

Description: Internal users make content, information, and applications publicly available to users via the Internet (for example, on a public-facing company website). A mix of internal and external users anonymously accesses the site, including employees. No SharePoint CALs are required. External user access is permitted under the server license, and SharePoint CAL requirements for internal users are waived for access to content, information, and applications made publicly available via the Internet.

Licensing:

Server: One SharePoint Server 2013 license per running instance of the software.

Internal Users: CALs are not required.

External Users: CALs are not required.

8.png

As shown in the above image, access is unrestricted. The only license required is the server license. SharePoint CALs are not required to access content, information, and applications made publicly available to users via the Internet (that is, not restricted to intranet or extranet scenarios). The same licensing applies for an e-commerce site where access is not strictly anonymous. Again, SharePoint CALs are not required to access content, information, and applications made publicly available to users via the Internet.

Licensing has been simplified in SharePoint 2013. SharePoint Server 2013 collapses internal and external use under a single licensing offering/model.

In addition to the points that we discussed above, there are certain classifications in the CAL that we need to be aware of as this will be very helpful in choosing the right version of SharePoint with the right features for your company. The CAL can be classified into two types 1.  Standard CAL and 2. Enterprise CAL. Check the table below to know the difference between Standard and Enterprise CAL.

Standard CAL You get features such as sites, communities, content and search in Standard CAL.

 

Enterprise CAL You get features such as such as Access Services, InfoPath Services, Power View, PerformancePoint Services, Excel Services, Reporting services and Visio Services.

 

SharePoint Standard CAL:

The Standard CAL delivers the core capabilities of SharePoint

Sites: a single infrastructure for all your business websites

Communities: an integrated collaboration platform

Content: enterprise content management (ECM) for the masses

Search: people and expertise search, visual previews, visual best bets

 

SharePoint Enterprise CAL:

The Enterprise CAL delivers the full capabilities of SharePoint

Sites: a single infrastructure for all your business websites

Communities: an integrated collaboration platform

Content: ECM for the masses

Search: standard search features plus entity extraction, video search, item recommendations

Business solutions (includes Access Services and InfoPath Services)

Business Intelligence for everyone (includes Power View, PerformancePoint Services, Excel Services, and Visio Services)

Check this link to have a detailed overview of all the features available in both the versions (i.e. Enterprise and Standard): _ http://www.fpweb.net/sharepoint-2013/compare-sharepoint-server-standard-enterprise/

Alright, I guess we have talked enough about SharePoint Server 2013 licensing, now let’s a look on how things are expected to change in SharePoint 2016.

SharePoint Server 2016 licensing:

9.png

For the most part the licensing is expected to remain the same in SharePoint server 2016 as well. You have the same server CAL license and user (or devices) licenses in SharePoint Server 2016 as well and this hasn’t changed. However, as you all are aware, SharePoint 2016 has a major change in terms of its architecture .We have a new concept called as “MinRoles” that was introduced in SharePoint Server 2016 .MinRole enables SharePoint Administrators to limit a SharePoint server to a specific role (i.e. front end, application server, distributed cache and custom). So using MinRole you can make a SharePoint server only do the specific role which it’s expected to do based on the role it has been assigned to .This will definitely lead to a downside in terms of licensing as using MinRole the server will only do a specified task .Let me explain this with an example ( If you have your current SharePoint 2013  application server in your production farm running search , user profile and MMS etc. ….you won’t be able to run all these services in a single app server once you migrate to SharePoint server 2016 .You have to assign a specific server only for SharePoint search ) .So obviously this will lead to  purchasing extra licenses if you need to utilize more services .

sql2016.jpg     windows_server_2016_gradient.jpg

Also in terms of the necessary software prerequisites, SharePoint Server 2016 requires Window server 21012 R2 or Windows Server 2016 as the underlying operating system and also coming to the backend SQL server you need 64-bit edition of SQL Server 2014 SP1 or SQL Server 2016. Another important point to note is, SharePoint 2016 doesn’t have any foundation version. You get only standard and enterprise version. Please note that there are few changes that has implemented in SQL Server 2016, you have a new component called PolyBase that has been introduced in SQL Server 2016. This mainly takes care of combining both relational data and non-relational data within SQL Server itself. You can also run queries on external data in Hadoop or Azure blob storage using this. The key factor to note here is that, “PolyBase “can run only on a single instance in a SQL Server. If you have multiple instances of SQL running on the same server then you may not able to run “PolyBase” on all the instances. So please the “PolyBase” configuration accordingly.

SharePoint Online and Hybrid:

HYBRID.gif

Let’s see how licensing works on SharePoint Online and Hybrid, it’s a known fact that SharePoint Online has become a buzzword over a period of time and we can see a lot of organizations moving their on-premises SharePoint workload to cloud. However, I’ve noticed a lot of SharePoint professionals as well as project managers having a confusion on how licensing works for SharePoint Online and what has to be done for a successful SharePoint Hybrid implementation.

So just to clear the confusions about this, SharePoint on-prem as already discussed is server/CAL license based whereas SharePoint Online is subscription based. As you all know, most of the cloud services today are subscription based and their licensing is totally different from on-prem platforms. Azure and Office 365 are good examples for cloud based platforms that works based on subscriptions. However, there is a minor difference in terms of subscription between these two products (i.e. Office 365 & Azure) and I’ll be discussing about that in a different post.

With Office 365 (SharePoint Online) you get two types of plans, i.e. Plan 1 and Plan 2. Please check this link below to have a proper understanding of the features involved in both these plans.

https://products.office.com/en-us/SharePoint/compare-sharepoint-plans?legRedir=true&CorrelationId=d1645733-7515-401f-904a-f75983522c29

It’s up to you and your business to choose the appropriate plan that best suits your business need.

 

Now, before discussing SharePoint hybrid licensing, let’s take a look at the traditional on-premises scenario. Historically, SharePoint on-premises customers were required to purchase a server license for each SharePoint server, with a client access license (CAL) required for each user or device that will be accessing those servers. There was also an optional Enterprise CAL, sold on a per-user base for accessing additional features (Ex: SSRS).

When cloud services are added to the mix, this relatively straightforward scenario becomes more complicated. As a subscription-based service, SharePoint Online is bought through a monthly per-user fee, instead of licensing.

Roughly around 2 years ago, Microsoft attempted to simplify licensing for hybrid SharePoint deployments by allowing Office 365 user licenses to be used as CALs for accessing SharePoint resources that reside on-premises. In other words, organizations that had both local and cloud-based SharePoint resources would have to purchase server licenses for each on-premises SharePoint server, but would not be responsible for purchasing CALs, as long as every user accessing the on-premises SharePoint resources had SharePoint Online as part of their Office 365 subscription.

But things have changed a bit now, if an organization runs SharePoint in its data center and decides to extend its deployment to the Office 365 cloud, verifying that the local environment is properly licensed is the first thing to do. As previously mentioned, each SharePoint server requires a server license. Unlike CALs, there is no “enterprise” upsell for the servers. Organizations must simply purchase a SharePoint server license, and any required dependency licenses, such as for Windows Server and SQL Server.

The organization will also have to purchase CALs for each person or device that will access SharePoint. Microsoft offers Standard CALs and Enterprise CALs. The Standard CAL provides access to SharePoint’s core capabilities, such as sites, communities, content management and search.

Organizations that need SharePoint capabilities beyond those covered by the Standard CAL should purchase an Enterprise CAL — in addition to the Standard CAL — for each user or device that will access those resources. The Enterprise CAL provides access to features such as Power View or Excel Services.

With the Hybrid scenarios in place now, choosing the correct license/subscription might be bit confusing. To make this simple, please take a closer look at SharePoint Online Plan 1 and Plan 2 once again. Plan 1 for SharePoint Online is more or less matched to the features that are delivered through a Standard CAL, while SharePoint Online Plan 2 is closely matched to the SharePoint Enterprise CAL. There are some minor differences between the Standard CAL and SharePoint Online Plan 1, just as there are some minor differences between SharePoint Online Plan 2 and the Enterprise CAL, but mostly these hosting plans are closely matched to their on-premises counterparts.

To be more precise, let’s consider a scenario where you want to implement Hybrid search in your environment and you’re confused to choose the appropriate plan. In such case, take a look at the type of search that has been implemented in your on-premises SharePoint Farm. Is it normal search or Enterprise search? For the most part I bet it would be Enterprise search, then in such case you need to assign Plan 2 license in SharePoint Online for all the end users as only then they would be able to see the search results from SharePoint on-premises or vice versa. To know more about Hybrid search, please click this link to take a look on my blog post about Hybrid search.

SimplifiedSharePointhybriddiagram_th[4].png

Last but not least, let’s take a look at licensing for SharePoint foundation. With SharePoint foundation, you don’t need to purchase any SharePoint license for SharePoint Foundation as it’s a free version. The only license you would need is the Windows server license on which SharePoint Foundation would be installed. You would also not require separate license for SQL Server as SharePoint foundation installs SQL Server express by itself while running the set up file.

Note: As already mentioned above, SharePoint 2016 doesn’t have any foundation version. You either get the Standard version or the Enterprise version.

Finally, to conclude, as SharePoint professionals it’s very important that you have a proper understanding of how licensing works in SharePoint on-premises and SharePoint Online as choosing the correct version/license is vital for any successful SharePoint implementation. If your organization uses SharePoint just to dump the documents and the usage is also very minimal where no enterprise features would be used, then choose the standard version. On the other hand, if you’re organization uses SharePoint for collaborating with customers /other stakeholders and also the dependency of enterprise features is more then choose the enterprise version. As far SharePoint Online/Hybrid is concerned choose the appropriate plan for the end users that best suits the business need. When it comes to migration where you would be migrating from on-premises version to the other one (preferably from 2013 to 2016) please make sure that considering the licenses for other supporting software’s also (i.e. SQL Server & Windows server).

Thanks for reading this post. Happy SharePointing!!!!