Showing posts with label Nico Martens. Show all posts
Showing posts with label Nico Martens. Show all posts

Thursday, October 6, 2016

Hybrid features in SharePoint 2013 and 2016

Summary: This post provides an overview of all hybrid SharePoint features that were released by Microsoft for SharePoint 2013 and SharePoint 2016.

During Ignite 2016 in Atlanta, Microsoft released some really cool hybrid features, that I would like to share some information about. The really cool thing about this is that they are not only available for SharePoint 2016, but Microsoft actually made most of them available in SharePoint 2013. The following table will show the availability per feature, so you know which one is available to your environment.

The below table is a picture, see my original post for the up-to-date clickable version: http://ift.tt/2duZJ9f

There you can also click the features for more information per feature.

(1) Breaks ALL existing server-to-server trusts. Provider-hosted add-ins are the most commonly found that use server-to-server trust. Make sure to read this blog post for a solution.
(2) There have been major improvements in the CU's after the initial August 2015 CU for Cloud Hybrid Search. I advise downloading the last CU that has no regressions.

In the last months I have been actively configuring and testing hybrid capabilities in SharePoint 2013. If you have any questions during configuring hybrid features in SharePoint, make sure to contact me on Twitter for the fastest response! I'll be glad to help with any question.


by Nico Martens via Everyone's Blog Posts - SharePoint Community

Thursday, August 11, 2016

Fixing apps after configuring Cloud Hybrid Search

Summary: The original post can be found here http://ift.tt/2aZGxd9

In my previous blog post I have described some considerations before configuring cloud hybrid search in your environment.

Especially this one can really mess up your farm:
All provider-hosted add-ins will break when running the onboarding script.
Long story short, it will break every server-to-server trust, as the SPAuthenticationRealm is changed.

To fix this, I wrote a script that gives you 2 options:

- Undo
This will reverse the change made by the onboarding script. It will change the SPAuthenticationRealm back to the old value.
If you choose this option, cloud hybrid search will not work, but at least your apps are working again.

- Fix
This option will try to change your SPTrustedSecurityTokenIssuers so that it uses the new SPAuthenticationRealm set by the onboarding script.
* There are some notes that I described later in this post, make sure to read them.

Running the script will result in something like this:

cloud hybrid search
Running the Fix-Onboarding.ps1 script

You can download the script here:
Fix-Onboarding

Notes
If you choose to fix your SPTrustedSecurityTokenIssuers, you will need to do some additional work to have everything work again.

  • Regrant app permissions


App permissions rely on the SPAuthenticationRealm.
This means that any App permissions that you set, will be gone after updating your SPTrustedSecurityTokenIssuers.
You will have to register the apps again and assign the permissions to the app.
The following script can do this for you (the current script is app-instance based, this means you have to run it for every app instance.
Also, make sure to change the variables in the script before running it.
Set-SPAppPermissions

  • Workflow Manager


Workflow Manager also relies on the SPAuthenticationRealm. Thanks to Ruben de Boer for proposing the solution.
After running the Fix-Onboarding.ps1 script, make sure to remove the existing Workflow Service Application Proxy.
Then run the Register-SPWorkflowService cmdlet again. Make sure to use the same scope that you used before. I recommend using the -Force parameter.

I hope this helps anyone! Do not hesitate to contact me if you have any trouble using the script of have any questions.


by Nico Martens via Everyone's Blog Posts - SharePoint Community

Friday, April 8, 2016

People picker settings for all Web Applications one-liner

Summary: This PowerShell one-liner will show the people picker settings for each Web Application, including Central Administration.


If you want to know the settings for the people picker in your SharePoint farm, you can run the following line of PowerShell.
It will retrieve all Web Applications and show the people picker settings for each one.

Get-SPWebApplication -IncludeCentralAdministration | %{Write-Host $_.url; $_.peoplepickersettings | select * | fl }

Running the one-liner will result in something like this:

People picker settings


by Nico Martens via Everyone's Blog Posts - SharePoint Community

Wednesday, March 2, 2016

Cloud hybrid search considerations

Summary: This blog post describes some limitations that you need to consider before implementing cloud hybrid search in your organization.

For a full overview of how Cloud Hybrid Search works, read my blog post: Everything you need to know about Cloud Hybrid Search

1. Provider-hosted apps
If you are currently using any provider-hosted apps in your SharePoint farm, do not run the onboarding script provided by Microsoft.
One of the steps in the onboarding script will change the SPAuthenticationRealm for your SharePoint farm.
Effectively, this will break the SPTrustedSecurityTokenIssuer that is responsible for the server-to-server trust between the provider-hosted app and SharePoint.

Microsoft is currently investigating this issue. If there are any updates, I will reflect these changes in this blog post.

2. Index item limits and pricing
Vlad Catrinescu blogged about this on his blog.
For every 1TB of pooled storage in SharePoint Online, we are allowed to put one million index items from our On-Premises SharePoint Farm.

You can check your current searchable items from the Search Service Application in Central Administration
Cloud hybrid search considerations

In this example, we would need 13TB of pooled storage in SharePoint Online. This might mean that you have to reconfigure your content sources.

3. Security and compliancy
As your index is stored in Office 365, what does this mean compliancy wise?
This is the answer from Microsoft:

The content that is passed from on-premises to the azure cloud search connector (SCS) consists of crawled properties, keywords, ACLs, tenant info and some other metadata about the item. This is encrypted on-premises using a key supplied by the SCS and transmitted to the endpoint in Azure. Once there it is stored in an encrypted blob store and queued for processing. We retain the encrypted package in the blob store for use should we need to issue a content recrawl. The encrypted object is not the document though, it is just a parsed and filtered version that makes sense to the search engine.

4. Documentation
As the cloud hybrid search is still in preview, at the moment documentation is limited at best.
For example, if you are using a proxy for Internet access on your server, make sure to specify this in your machine.config.
I have created a more detailed blog post around this issue here: http://ift.tt/1ni4jWW


by Nico Martens via Everyone's Blog Posts - SharePoint Community

Tuesday, December 22, 2015

This blog post discusses the new Cloud Hybrid Search Service Application. Introduction Why Cloud Hybrid Search Prerequisites Cloud Search Service Application Proxy Configuration Onboarding Configure…

This blog post discusses the new Cloud Hybrid Search Service Application.


Introduction
In the past, Microsoft has attempted to provide hybrid search scenarios between your on-premises SharePoint environment and SharePoint Online. These solutions were based on query federation. For instance, when you searched for a document in SharePoint Online in your on-premises environment, the query would be sent to the on-premises environment, and the results are returned back to the user in SharePoint Online. Microsoft just released a wizard to automate this: http://ift.tt/1LjKzXh

In September this year, Microsoft released the new Cloud Hybrid Search Service Application.
Instead of using query federation to surface results in your environment, it relies on indexing your on-premises content in Office 365. This takes away a lot of complexity setting it up, and makes it possible to mix results from SharePoint on-premises and Office 365 in a single result block. This new feature can be set up using SharePoint 2013 or SharePoint 2016.

Below is a representation of the "old" and the "new" Hybrid search architecture.

Old architecture
Old Hybrid Search Architecture

In this scenario, the user enters a query in the on-premises search center. The query is then sent to the on-premises query component and the SharePoint Online query component. This is why results cannot be mixed in this scenario, as there are separated indexes for SharePoint on-premises and SharePoint Online.

New architecture
New Hybrid Search Architecture

In this scenario, the Cloud Search Service crawler crawls the content sources on-premises and sends the parsed content to the SharePoint Online Content processing component. After processing the content and doing ACL mapping - for security trimming purposes - the data is saved in the SharePoint Online index. Because the index is saved online, it is now possible to mix results in your search results and use the data in Delve.

Please note that the new Cloud Hybrid Search is still in preview, so things might change along the way!

If you want your on-premises SharePoint to show SharePoint Online results, you still have to configure the "old" outgoing hybrid search. See the following link for more information: http://ift.tt/1jxxy0G

Why Cloud Hybrid Search?
Not all companies are ready to make the move to the cloud for all their workloads. In order to help customers make the move for specific workloads, Microsoft now provides an easy way to gradually move to the cloud while maintaining a great search experience for end users.

By using the new Cloud Hybrid search solution, users are able to search content from the following sources from within SharePoint Online:

  • SharePoint 2007/2010/2013/2016
  • File shares
  • BCS


The index for all these sources is indexed in Office 365, which gives Microsoft the ability to mix results across sources based on relevancy, use the Office 365 ranking model and even include all of this in Delve!

Organizations can also scale down search infrastructure as content processing and analytics are handled by Office 365.

Prerequisites
In order to use the new Hybrid search functionality, make sure you have installed the following pre-requisites for your environment.

SharePoint on-premises
If you use SharePoint 2013, make sure you installed the August 2015 PU or later. I would recommend the latest CU without known regressions, as there have been improvements to the hybrid search.

Using the public preview of SharePoint 2016 IT Preview is also supported.

Office 365
The cloud Search service application is currently not available for customers outside the regular Office 365 multitenant service, including China data center customers and Government cloud customers.

Account synchronization
Accounts need to be synchronized to Office 365 in order to have a single identity for users. All users that want to make use of Office 365 Hybrid search need a SharePoint Online license assigned.

Below tools are supported to perform directory synchronization:


If you do not have any of the above synchronization tools deployed in your environment, I would recommend using AADConnect. It also has the possibility to configure ADFS for you, so you can enjoy the full Single-sign on experience.

Software needed during configuration of Hybrid Search
On the SharePoint server where you are performing the configuration of Hybrid Search, you will need to install the following prerequisite software in this specific order.


Onboarding script
The script can be downloaded along with documentation from the Microsoft Connect Site: http://ift.tt/1OsknQg

If you do not have access to the cloud Hybrid Search preview program, you can request access via the link http://ift.tt/1OSTanW. Please make sure you are using the latest version prior to execution.

Cloud Search Service Application
After all the prerequisites have been installed, it's now time to create the Cloud Search Service Application. The creation of the Cloud Search Service Application is pretty straightforward. You could use any script that you prefer, just add the parameter "CloudIndex $true" to the New-SPEnterpriseSearchServiceApplication cmdlet.

On the server that is running SharePoint Server 2013 or SharePoint Server 2016 Preview:  Copy the sample script below and save it as CreateCloudSSA.ps1 and run it. This will create a single-server Search Service Application topology, meaning there is no high availability in your farm.


## Refer to Microsoft Connect Terms of use http://ift.tt/1QE87Pc ##
## This script is being provided as a sample for the creation of a single box cloud SSA, if you wish to create a multiple box cloud SSA, note that the -CloudIndex $true flag must be set for each hybrid SSA ##
## Gather mandatory parameters ##

## Note: SearchServiceAccount needs to already exist in Windows Active Directory as per TechNet Guidelines http://ift.tt/1OST8wh ##
Param(
[Parameter(Mandatory=$true)][string] $SearchServerName,
[Parameter(Mandatory=$true)][string] $SearchServiceAccount,
[Parameter(Mandatory=$true)][string] $SearchServiceAppName,
[Parameter(Mandatory=$true)][string] $DatabaseServerName
)
Add-PSSnapin Microsoft.SharePoint.Powershell -ea 0

## Validate if the supplied account exists in Active Directory and whether it’s supplied as domain\username

if ($SearchServiceAccount.Contains("\")) # if True then domain\username was used
{
$Account = $SearchServiceAccount.Split("\")
$Account = $Account[1]
}
else # no domain was specified at account entry
{
$Account = $SearchServiceAccount
}

$domainRoot = [ADSI]''
$dirSearcher = New-Object System.DirectoryServices.DirectorySearcher($domainRoot)
$dirSearcher.filter = "(&(objectClass=user)(sAMAccountName=$Account))"
$results = $dirSearcher.findall()

if ($results.Count -gt 0) # Test for user not found
{
Write-Output "Active Directory account $Account exists. Proceeding with configuration."

## Validate whether the supplied SearchServiceAccount is a managed account. If not make it one.

if(Get-SPManagedAccount | ?{$_.username -eq $SearchServiceAccount})
{
Write-Output "Managed account $SearchServiceAccount already exists!"
}
else
{
Write-Output "Managed account does not exist - creating it."
$ManagedCred = Get-Credential -Message "Please provide the password for $SearchServiceAccount" -UserName $SearchServiceAccount

try
{
New-SPManagedAccount -Credential $ManagedCred
}
catch
{
Write-Output "Unable to create managed account for $SearchServiceAccount. Please validate user and domain details."
break
}

}
Write-Output "Creating Application Pool."
$appPoolName=$SearchServiceAppName+"_AppPool"
$appPool = New-SPServiceApplicationPool -name $appPoolName -account $SearchServiceAccount

Write-Output "Starting Search Service Instance."
Start-SPEnterpriseSearchServiceInstance $SearchServerName

Write-Output "Creating cloud Search service application."
$searchApp = New-SPEnterpriseSearchServiceApplication -Name $SearchServiceAppName -ApplicationPool $appPool -DatabaseServer $DatabaseServerName -CloudIndex $true

Write-Output "Configuring search administration component."
$searchInstance = Get-SPEnterpriseSearchServiceInstance $SearchServerName
$searchApp | get-SPEnterpriseSearchAdministrationComponent | set-SPEnterpriseSearchAdministrationComponent -SearchServiceInstance $searchInstance
$admin = ($searchApp | get-SPEnterpriseSearchAdministrationComponent)

Write-Output "Waiting for the search administration component to be initialized."
$timeoutTime=(Get-Date).AddMinutes(20)
do {Write-Output .;Start-Sleep 10;} while ((-not $admin.Initialized) -and ($timeoutTime -ge (Get-Date)))
if (-not $admin.Initialized) { throw 'Admin Component could not be initialized'}

Write-Output "Inspecting cloud Search service application."
$searchApp = Get-SPEnterpriseSearchServiceApplication $SearchServiceAppName

#Output some key properties of the Search service application
Write-Host "Search Service Properties"
Write-Host " Cloud SSA Name : " $searchapp.Name
Write-Host " Cloud SSA Status : " $searchapp.Status
Write-Host "Cloud Index Enabled : " $searchApp.CloudIndex

Write-Output "Configuring search topology."
$searchApp = Get-SPEnterpriseSearchServiceApplication $SearchServiceAppName
$topology = $searchApp.ActiveTopology.Clone()

$oldComponents = @($topology.GetComponents())
if (@($oldComponents | ? { $_.GetType().Name -eq "AdminComponent" }).Length -eq 0)
{
$topology.AddComponent((New-Object Microsoft.Office.Server.Search.Administration.Topology.AdminComponent $SearchServerName))
}

$topology.AddComponent((New-Object Microsoft.Office.Server.Search.Administration.Topology.CrawlComponent $SearchServerName))
$topology.AddComponent((New-Object Microsoft.Office.Server.Search.Administration.Topology.ContentProcessingComponent $SearchServerName))
$topology.AddComponent((New-Object Microsoft.Office.Server.Search.Administration.Topology.AnalyticsProcessingComponent $SearchServerName))
$topology.AddComponent((New-Object Microsoft.Office.Server.Search.Administration.Topology.QueryProcessingComponent $SearchServerName))
$topology.AddComponent((New-Object Microsoft.Office.Server.Search.Administration.Topology.IndexComponent $SearchServerName,0))

$oldComponents | ? { $_.GetType().Name -ne "AdminComponent" } | foreach { $topology.RemoveComponent($_) }

Write-Output "Activating topology."
$topology.Activate()
$timeoutTime=(Get-Date).AddMinutes(20)
do {Write-Output .;Start-Sleep 10;} while (($searchApp.GetTopology($topology.TopologyId).State -ne "Active") -and ($timeoutTime -ge (Get-Date)))
if ($searchApp.GetTopology($topology.TopologyId).State -ne "Active") { throw 'Could not activate the search topology'}

Write-Output "Creating proxy."
$searchAppProxy = new-spenterprisesearchserviceapplicationproxy -name ($SearchServiceAppName+"_proxy") -SearchApplication $searchApp

Write-Output "Cloud search service application provisioning completed successfully."

}
else # The Account Must Exist so we can proceed with the script
{

Write-Output "Account supplied for Search Service does not exist in Active Directory."
Write-Write-Output "Account supplied for Search Service does not exist in Active Directory."
Write-Output "Script is quitting. Please create the account and run again."
Break

} # End Else

The output should look similar to this:

Create Cloud SSA

Proxy configuration
If a proxy is used by your organization to allow Internet access, you have to configure this proxy for Hybrid Cloud Search as well. For a more in-depth article, please look at http://ift.tt/1OWNnP6, but for now we can just add the proxy settings to the machine config: “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config”
Here's an example of what this would look like:

<system.net>
<defaultProxy>
<proxy usesystemdefault="false" proxyaddress="http://10.1.10.1:8080" bypassonlocal="true" />
</defaultProxy>
</system.net>

Place this anywhere between your <configuration> and </configuration> tag. To make it easier to find when you need it, you could place it right before the tag.

Onboarding
After successfully installing the prerequisites and configuring the Cloud Search Service Application, it is time to start the onboarding process. The onboarding process will create a trust between your SharePoint on-premises and Office 365 environment. This will allow SharePoint to move the index to Office 365 for further processing.

Run the onboarding script:

.\Onboard-CloudHybridSearch.ps1 -PortalUrl "http://ift.tt/1Mk9Rr0" -CloudSSAId "<Cloud Search Service Application name>"

Enter your Global Administrator credentials when prompted.
The output should be something like this:Onboarding

The script changes quite frequently, so as you can see, the script name and the parameters have changed a bit since I ran the script. Make sure you check to see what the parameter names are when you run the script.

Configure content source
You can configure the content source in your new Cloud Search Service Application as you would in any other on-premises Search Service Application.Content source

Enter the start addresses that you would like to crawl and start a full crawl for the content source. After the crawl is done, check the crawl log for the specific content source to see if all went well.

Crawl log

Make sure to check your proxy configuration (http://ift.tt/1OWNnP6) if you see 1 Top Lever Error with the following error message:

AzureServiceProxy caught Exception: *** Microsoft.Office.Server.Search.AzureSearchService.AzureException: AzurePlugin was not able to get Tenant Info from configuration server
at Microsoft.Office.Server.Search.AzureSearchService.AzureServiceProxy.GetAzureTenantInfo(String portalURL, String realm, String& returnPropertyValue, String propertyName)
at Microsoft.Office.Server.Search.AzureSearchService.AzureServiceProxy.SubmitDocuments(String azureServiceLocation, String authRealm, String SPOServiceTenantID, String SearchContentService_ContentFarmId, String portalURL, String testId, String encryptionCert, Boolean allowUnencryptedSubmit, sSubmitDocument[] documents, sDocumentResult[]& results, sAzureRequestInfo& RequestInfo) ***

Verifying results

In Office 365 search for a document and it will return results for both SharePoint Online and SharePoint on-premises if everything is configured correctly.

In this example, search shows results from the following sources:

  • SharePoint Online
  • SharePoint on-premises
  • File shares


Hybrid Search Results

If you want to return results only from your on-premises you can use the "isexternalcontent:1" property.

This returns only on-premises results:

Hybrid Search ExternalContent

That's it!
I hope this helps you use the new Hybrid Cloud Search Service Application.


by Nico Martens via Everyone's Blog Posts - SharePoint Community

Tuesday, December 15, 2015

Cloud Hybrid Search proxy

Let me start by saying thanks to @johankroese and @vanHooijdonk for helping with troubleshooting this issue!

If you want the solution without going through the full post, scroll down to the end of this blog post.

The new Cloud Hybrid Search has been released in preview in September 2015. Seeing the demos I was really excited to try this. One of our customers was already in need of this technology, so we proposed to configure Cloud Hybrid Search on their test environment.

The onboarding process seemed pretty straightforward and we used http://ift.tt/1OskqeP as a reference. We read the documentation, grabbed the on-boarding script, installed the prerequisites and got started.

After running the onboarding script the first time, some errors were thrown, but after running the script for the 2nd time, everything seemed to work out just perfectly. All steps were executed, no red parts in the output of the script.

.OnboardingSearch

The next step would be to start a Full crawl. We created a specific content source in the on-premises environment. This content source contains only 1 site collection with a few documents inside, just to check the functionality. Unfortunately, the crawl failed. After inspecting the log, we saw the following:

AzureServiceProxy caught Exception: *** Microsoft.Office.Server.Search.AzureSearchService.AzureException: AzurePlugin was not able to get Tenant Info from configuration server
at Microsoft.Office.Server.Search.AzureSearchService.AzureServiceProxy.GetAzureTenantInfo(String portalURL, String realm, String&amp; returnPropertyValue, String propertyName)
at Microsoft.Office.Server.Search.AzureSearchService.AzureServiceProxy.SubmitDocuments(String azureServiceLocation, String authRealm, String SPOServiceTenantID, String SearchContentService_ContentFarmId, String portalURL, String testId, String encryptionCert, Boolean allowUnencryptedSubmit, sSubmitDocument[] documents, sDocumentResult[]&amp; results, sAzureRequestInfo&amp; RequestInfo) ***

For some reason, SharePoint wasn't able to submit index data for documents to Azure for processing. We created a thread on the TechNet forum for Cloud Search Service Application Preview.

As we were aware that a proxy was being used, we started checking the proxy configuration. There are a lot of places where you can configure a proxy if you are looking for them:

  • Web.config
  • Netsh winhttp set proxy
  • Browser settings for service account
  • Search Service Application proxy

After trying all these, we still couldn't get it to work. After using Wireshark, we found out that the upload was still not using our proxy server. Instead, it tried uploading directly to Azure.

The solution
After discussing this with my colleague @vanHooijdonk, he reminded me that there is another place where you can configure proxy settings. The machine config: "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config"

<system.net>
<defaultProxy>
<proxy usesystemdefault="false" proxyaddress="http://10.1.10.1:8080" bypassonlocal="true" />
</defaultProxy>
</system.net>

After applying the proxy there, everything started to work! Place the proxy settings anywhere between your <configuration> and </configuration> tag. Personally, I placed it right before the end, so I can find it easier next time.

A new blog post will come soon with a more detailed explanation on how to configure Cloud Hybrid Search.

SearchResults

Original : http://ift.tt/1OWNnP6


by Nico Martens via Everyone's Blog Posts - SharePoint Community

Tuesday, June 2, 2015

Office 365 Video: My first impression

I've had the opportunity to look into the possibilities for organizations to use Office 365 Video. Using videos within an organization can be a great way to connect to your employees. This could be a welcome video from the new CEO, a safety regulation video or training material to help new employees get on their way.

Homepage
The Video portal homepage consists of a few key sections. The Spotlight area gives you the possibility to show videos, which have a strong presence on the homepage. The Popular videos section shows videos that are popular within your organization. The last section is the Spotlight channels. Here you can select 3 channels, from which you show the spotlight videos on your homepage.

Office 365 Video portal settings
Office 365 Video portal settings

The popular videos in particular is a great way to see which videos are popular in your organization. The only downside is that an administrator cannot remove or influence the popular video section.
For each video on the homepage you can see the total views and the length of the video.

Personally, I would like to have a little more control over the Office 365 Video homepage. For instance, a channel overview on the left or right side of the screen would be useful to navigate between channels. The possibility to view a video from the homepage could be easier as well, as now you have to click the context action menu (the 3 dots). A pop-up will be shown, starting the video.

Channels
Besides showing videos on your homepage, an administrator has the possibility to create channels. Permissions can be set per channel to allow only certain people (or groups) to view the videos in the channel.

When an administrator creates a channel, a SharePoint Online site collection is created in the background. This is where the video and all metadata will be saved. A copy will be sent to Azure Media services. Microsoft posted this nice video on YouTube explaining how this works behind the scene.

Start a new channel
Start a new channel

The channel creation process could be more smoothly, as the administrator is required to wait for the site collection to be created, which takes some time. When you close the window while a channel is creating, the channel will still be created, but the channel color you selected won’t be saved. It would be nice if the creation could happen behind the screens, so the administrator doesn’t have to wait for the site collection to be provisioned.

Video
While watching a video, Office 365 Video provides you with several options. You can share the video, see the description of the video, or even comment on the video by using the inline Yammer conversation on the right side of the screen. Below the video is a list of videos that you may also like.

Video Yammer conversations
Inline Yammer conversations

Videos will be processed and displayed in Delve as well. This is a really neat feature that helps employees engage with Office 365 Video without actually navigating to Office 365 Video in the first place, as relevant videos are being showed in Delve.

Conclusion
In conclusion: Office 365 Video is a great initiative that has a lot of potential. At the moment of this writing, I think the service could still be improved by integrating Office 365 Video with other Office 365 services even more. In particular, some of the features that SharePoint online has, could help make Office 365 Video even better. As Office 365 Video is still a relatively new service, I expect Microsoft will make regular improvements that will add business value organizations.

If you are currently testing or using Office 365 Video, make sure to provide feedback to help improve the service. On the top right corner of each page you will find the option to send Feedback to Microsoft.

feedback
Feedback


by Nico Martens via Everyone's Blog Posts - SharePoint Community