Do not underestimate OneNote, the time saver for paperless meetings in Office 365

OneNote is often compared to Evernote. However, that comparison does not OneNote justice, for OneNote is so much more than Evernote. The most important advantage of OneNote is that it integrated in all the products in the Microsoft suite. So it is very easy to exchange information. In the video at the bottom of the page, you will see how you can have a paperless meeting with OneNote.

What is OneNote?

OneNote is more than a simple notepad. It’s your memory, the team’s memory and the organisation’s collective memory. It’s also a place for agreements, tasks, collaboration, having meetings, and a place where ideas are formed. You can work on your notes from every device; together, at the same time, live and real time.

A paperless meeting

You have set a date for a meeting in your Outlook calendar, and you’ve shared it with all those who need to be present. This scheduled appointment includes all the necessary documents and the content for the meeting. So every participant will have the necessary information before the meeting starts.

During the meeting, you open the appointment in Outlook. Then, click the OneNote button (in Outlook!). A new OneNote page is made right away, containing all of the information about the appointment. OneNote automatically ‘pastes’ those who were invited to the appointment into the note, and offers the option to check who is and who isn’t present. The subjects of the appointment are also pasted into the OneNote page. The files from the appointment are added as well. Therefore, OneNote provides an overview containing all the information that is necessary in that moment. The meeting can start.

Keeping the minutes together

A big advantage of OneNote that is not presented in the video – but that is possible – is multiple people keeping the minutes at the same time in OneNote. This means that not just one person is responsible for the content, but everyone is. Exciting? Probably! Practical? Absolutely! It saves a lot of time, mostly because no review is needed afterwards. Everyone can see the made changes, the kept minutes and who is contributing right away. With labels it is easy to indicate what the tasks, questions and points of action are, and who is responsible for what. Because notes no longer have to be typed out afterwards a lot of time can be saved. It does not matter if the people present are working from their computer, tablet or smartphone. Even people who are calling via Skype Business can contribute.

When customers want to start having paperless meetings, Rapid Circle will guide them through their first paperless meetings to show them how it works, smarter and more efficiently. The described situation in this blog is one example of how it could work. But there are a lot more possibilities.

Are you interested in having paperless meetings in a smarter way? We would love to help you out!

An ROI of 162%: the business case for Office 365.

“What are the advantages, what are the gains, what are the costs, what are the risks and how flexible are we with Office 365?” In other words, what is the business case? This is a question that we are often asked. Research shows that it is now possible to get 162% back of your investment.  

As requested by Microsoft, Forrester Consulting studied the ‘Total Economic Impact” (TEI) of Office 365. The TEI framework is a means to weigh the costs, advantages, flexibility and risks of an investment. In Forrester’s research, both qualitative and quantitative methods have been conducted by closely looking at a number of cases and executing an extensive survey.

The conclusion of this research is that an investment in Office 365 absolutely pays off. An ROI of 162%, an internal return rate of 468% and a reimbursement term of 7 months; those are the advantages that come with an investment in Office 365.

Forrester researches the economic impact of Office 365 in five fields, namely: technology, mobility, control & compliance, Business Intelligence and Enterprise Social. Below we provide a preview of the results of the research:

  • Among other things, the research shows that Office 365 offers advantages related to technology, because organisations do not need to build a new hardware infrastructure, and less manpower is needed to keep the tool working. The research also shows that after three years employees will have an extra hour to spend per day because they are working more efficient in Office 365. They can use this extra time for the benefit of your organisation.
  • Examples of costs that have to be calculated when investing in Office 365 are costs for implementation, trainings, continuous system administration and licences.
  • The question of whether the use of Office 365 results in more flexibility is answered with a convincing Yes. One of the interviewees stated that ‘It has given us tremendous agility’.
  • There are also risks. An example is the risk of implementation. This risk means that it is possible that the final product deviates from the expected requirements. However, according to Rapid Circle this can be solved easily by implementing Office 365 in an agile way. By testing the requirements continuously, working iteratively and not fixing the end product from the start of the project, the implementation can always be adjusted to the requirements of that moment.

 

Would you like to know exactly how your organisation can benefit from Office 365, what the costs are, how it will keep your organisation agile and what the risks are? Download the research report by filling in the form below.

Would you like discuss the options of Office 365 for your organisation? Please contact us!

[email-download download_id="8911" contact_form_id="8846"].

 

The new way of working? The new way of studying!

The future is in education. Today’s students will be our colleagues tomorrow. That is why at Rapid Circle we like to work together with educational institutions on a regular basis. We think about how to improve education, we support interns and we help students with practical assignments. Students help us with a fresh perspective, a lot of effort, and they keep us young.  

International studying

Over the past few months we have helped the International students of Inholland Communication with one of their practical assignments. Or actually, it’s the other way around. They have helped us with sharing their creativity and knowledge.

Inholland was looking for cases for the International students of Inholland Communication to use in order to build a prototype, in any shape or form. This could be a campaign, video or project plan for example. According to modern day standards, the project was executed by using the Scrum method.

Pitch

We started our session with a pitch about who we are, what we want to achieve and what our strengths are. After this, the students got started on the prototype. On 16 December all the built prototypes were pitched back to us in 15 minutes per group. The video below shows one example of how students envision their ideal student portal.

One of the biggest bonuses of this project is that the group of students is quite international, which means that they have worked on this assignment in different places around the world. Some groups have only seen our pitch and presentation on a screen, considering a lot of students are spread across Europe (and beyond). Therefore, many of the students have presented their prototype on big screen, and thus being able to pitch their idea from the country they were in at that moment.

S4B-in-het-onderwijs

In the picture above, one of the groups is presenting via Skype for Business, with the members of the group joining the call from Bulgaria, Rotterdam and The Hague. All this while they were giving us a live presentation together. We were watching all the pitches in Diemen, together with the teacher from Inholland. And it worked remarkably well! The students were very excited about the technique and the possibilities. We were very excited about the input of the students. Especially considering the fact that this has been made possible by a team based in different locations, and sometimes even in different time zones.

A few years ago, ‘The New Way of Working’ held great promise, and was implemented in a lot of companies. Seeing these students work, I think that ‘The New Way of Studying’ has already been widely accepted by students. Once they become our colleagues, ‘The New Way of Working’ will probably be ‘Just Working’ for these students, who are accustomed to this way of working already. Companies will have to take this into account if they want to remain attractive to this generation as an employer. For this it is important to not only offer the right technologies, but also the right culture.

Because of possibilities of Microsoft’s technology, at Rapid Circle we are already used to working together while being far away from each other. We regularly meet our colleagues online, who are spread across the Netherlands, India and Australia. We work together in teams, regardless of the time difference. And furthermore, because of the time differences, we are able to do work through the night for a customer in a different time zone, which means we can launch projects quickly.

Working at a distance from each other works well for us at Rapid Circle. I am happy to see that students also enjoy working like this. They are the future, and the only thing we have to do connect with them is to provide possibilities. Both regarding technique and culture.

Soon students will pitch the next version of their products to us. I will write a new blog about this. So keep watching us if you want to learn more!

 

Rapid Circle named Tier-1 Microsoft Cloud Solution provider

As of January 2016, Rapid Circle has been accepted into the Microsoft Cloud Solution Provider programme (CSP). This means that Rapid Circle – as one of the few so-called Tier-1 partners – can buy licences from Microsoft directly. Because of this, we can offer licences for Microsoft Office 365 and Dynamics CRM on favourable conditions, without the intervention of an external licence supplier and without an Enterprise Agreement contract.

If you purchase licences via Rapid Circle, this can have many advantages for you as an end user. Some of these advantages are:

  • Optimal flexibility, because CSP licences can be changed every month. So there is not only the option to upscale your plan every month, it also provides the option to terminate (some) licences every month.
  • Transparent investments: all the project activities, (premium) support and Microsoft licences on just one invoice.
  • It allows for paying at the end of each month, instead of 1 year in advance.

Would you like to know more about the possibilities that this licence model can offer you? If so, please contact Norbert Waal via norbert.waal@rapidcircle.com or on +31 6 15 56 49 38.

 

Website based on SharePoint live at BrabantZorg

Last month, Rapid Circle launched a public website based on SharePoint at BrabantZorg. The website is fully responsive, optimised for Google and fully contemporary.   What did BrabantZorg need?

BrabantZorg is – as a committed organisation for housing, welfare and healthcare – always working on renewing itself. The purpose is to be able to be a distinctive and attractive regional provider for clients, employees and all the relevant institutions in the changing healthcare market. An important step in the development trajectory towards becoming an attractive provider was a new website.

Screenshot 2016-02-10 17.32.57
Screenshot 2016-02-10 17.32.57

What did we do?

In collaboration with the online marketing bureau Have a Nice Day Online and BrabantZorg, we built a public facing website based on SharePoint 2013. Keeping the future and the possibility to integrate processes in mind, it suited BrabantZorg for the public website to be built on the same technology, because the internal sites and processes of BrabantZorg also run on SharePoint 2013. Rapid Circle has taken care of the technical realisation and the project management.

Screenshot 2016-02-10 17.33.11
Screenshot 2016-02-10 17.33.11

The result

The website, developed in coproduction, has improved a lot when compared to the old version. The current site is fully responsive, Google optimized and entirely compliant with the guidelines and standards of these times. The most important difference between the old and the new site of BrabantZorg is that the experience of the user is much more positive due to the userfriendliness.

Would you like to know more? About public facing websites based on SharePoint or what else we can do? Please contact us!

Powershell: Publishing all files in a SharePoint Online library programmatically

One of our clients build up a library of 500+ documents. After these were modified (added meta data and the content went through several rounds of corrections), we were asked to mass publish all files so the site could go live. Which leaves us with 2 options; 1. manually check-in, publish, approve all files. 2. add some CSOM & PowerShell together in a file and do it programmatically. Off course, I, Mark Overdijk, chose to persue the second option. I asked Massimo Prota to assist in getting a script ready. The first version of the script turned out rather usefull, so I added some extra features and more out-put to & interaction with the user. This latest version is generic enough so it can be re-used.

Features

- No limitation on # of files for a list/library - Added code to filter which files should be published - User will be promoted for password and confirmation - Feedback to user on screen - If a file is checked out, the script will check in before proceeding - If Content Approval is enabled for the list/library, the script will approve the file - Screen out-put will be saved to a txt file which includes the current date/time in the filename

Prerequisites Powershell

Step 1. Gather parameters

For the script to run properly, you'll need the following parameters;

.SiteUrl: This is the full URL to the (sub)site where the list is stored for which you want to publish/approve the files

.ListName: This is the Title of the list for which you want to publish/approve the files

.UserName: This is the UserName that has enough permissions to publish/approve the files

Step 2. Run PowerShell script

Start Windows Powershell as administrator.

Be sure to first set the ExecutionPolicy correctly so you are able to run scripts. Set-ExecutionPolicy Unrestricted [ENTER] Input "A" for all After the ExecutionPolicy is set, we can run the script file.

[code language="powershell"] #################################### # Script: PublishFilesSPO.ps1 # # Version: 2.0 # # Rapid Circle (c) 2016 # # by Mark Overdijk & Massimo Prota # ####################################

# Clear the screen Clear-Host

# Add Wave16 references to SharePoint client assemblies - required for CSOM Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

# Parameters # Specify the subsite URL where the list/library resides $SiteUrl = "https://DOMAIN.sharepoint.com/SUBSITE" # Title of the List/Library $ListName = "TITLE" # Username with sufficient publish/approve permissions $UserName = "USER@DOMAIN.com" # User will be prompted for password

# Set Transcript file name $Now = Get-date -UFormat %Y%m%d_%H%M%S $File = "PublishFilesSPO_$Now.txt" #Start Transcript Start-Transcript -path $File | out-null

# Display the data to the user Write-Host "/// Values entered for use in script ///" -foregroundcolor cyan Write-Host "Site: " -foregroundcolor white -nonewline; Write-Host $SiteUrl -foregroundcolor green Write-Host "List name: " -foregroundcolor white -nonewline; Write-Host $ListName -foregroundcolor green Write-Host "Useraccount: " -foregroundcolor white -nonewline; Write-Host $UserName -foregroundcolor green # Prompt User for Password $SecurePassword = Read-Host -Prompt "Password" -AsSecureString Write-Host "All files in " -foregroundcolor white -nonewline; Write-Host $ListName -foregroundcolor green -nonewline; Write-Host " on site " -foregroundcolor white -nonewline; Write-Host $SiteUrl -foregroundcolor green -nonewline; Write-Host " will be published by UserName " -foregroundcolor white -nonewline; Write-Host $UserName -foregroundcolor green Write-Host " "

# Prompt to confirm Write-Host "Are these values correct? (Y/N) " -foregroundcolor yellow -nonewline; $confirmation = Read-Host

# Run script when user confirms if ($confirmation -eq 'y') {

# Bind to site collection $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword) $Context.Credentials = $credentials

# Bind to list $list = $Context.Web.Lists.GetByTitle($ListName) # Query for All Items $query = New-Object Microsoft.SharePoint.Client.CamlQuery $query.ViewXml = " " $collListItem = $list.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) $Context.Load($List) $Context.Load($collListItem) $Context.ExecuteQuery()

# Go through process for all items foreach ($ListItem in $collListItem){ # Adding spacer Write-Host " " Write-Host "/////////////////////////////////////////////////////////////" Write-Host " " # Write the Item ID, the FileName and the Modified date for each items which is will be published Write-Host "Working on file: " -foregroundcolor yellow -nonewline; Write-Host $ListItem.Id, $ListItem["FileLeafRef"], $ListItem["Modified"]

# Un-comment below "if" when you want to add a filter which files will be published # Fill out the details which files should be skipped. Example will skip all files which where modifed last < 31-jan-2015 # # if ( # $ListItem["Modified"] -lt "01/31/2015 00:00:00 AM"){ # Write-Host "This item was last modified before January 31st 2015" -foregroundcolor red # Write-Host "Skip file" -foregroundcolor red # continue # }

# Check if file is checked out by checking if the "CheckedOut By" column does not equal empty if ($ListItem["CheckoutUser"] -ne $null){ # Item is not checked out, Check in process is applied Write-Host "File: " $ListItem["FileLeafRef"] "is checked out." -ForegroundColor Cyan $listItem.File.CheckIn("Auto check-in by PowerShell script", [Microsoft.SharePoint.Client.CheckinType]::MajorCheckIn) Write-Host "- File Checked in" -ForegroundColor Green } # Publishing the file Write-Host "Publishing file:" $ListItem["FileLeafRef"] -ForegroundColor Cyan $listItem.File.Publish("Auto publish by PowerShell script") Write-Host "- File Published" -ForegroundColor Green

# Check if the file is approved by checking if the "Approval status" column does not equal "0" (= Approved) if ($List.EnableModeration -eq $true){ # if Content Approval is enabled, the file will be approved if ($ListItem["_ModerationStatus"] -ne '0'){ # File is not approved, approval process is applied Write-Host "File:" $ListItem["FileLeafRef"] "needs approval" -ForegroundColor Cyan $listItem.File.Approve("Auto approval by PowerShell script") Write-Host "- File Approved" -ForegroundColor Green } else { Write-Host "- File has already been Approved" -ForegroundColor Green } } $Context.Load($listItem) $Context.ExecuteQuery() } # Adding footer Write-Host " " Write-Host "/////////////////////////////////////////////////////////////" Write-Host " " Write-Host "Script is done" -ForegroundColor Green Write-Host "Files have been published/approved" -ForegroundColor Green Write-Host "Thank you for using PublishFilesSPO.ps1 by Rapid Circle" -foregroundcolor cyan Write-Host " " } # Stop script when user doesn't confirm else { Write-Host " " Write-Host "Script cancelled by user" -foregroundcolor red Write-Host " " } Stop-Transcript | out-null ############################## # Rapid Circle # # http://08b.4d7.myftpupload.com # ############################## [/code]

The 9 secrets of facilitating internal news efficiently

Are you having trouble making everybody in your organisation read the internal news? Thats understandable! Did you know that on average only 32% of the recipients opens a digital newsletter? A large group in your organisation won't be reached. They do not see added value in reading the news letter. But why don't they?   

In order to help you reach the other 68% of the organisation with your internal news, we want to share our nine best tips with you in order to increase the reach and relevance of your newsletter. Things to consider are for instance:

  • Making it more personal
  • Making it more accessible
  • Making it easier

With the right tool it is quite simple to adhere to all the conditions. Do you want to increase the relevance and the reach of your internal news? Download the article 'The 9 secrets of facilitating internal news efficiently' without charge by filling out the form below.

[email-download download_id="8838" contact_form_id="8846"].

[/vc_row]

PowerShell: Terminate a workflow for all items in a list on SharePoint Online

This is a follow up on our previous post "PowerShell: Start a workflow for all items in a list on SharePoint Online". As it's great that now there's a script available to start a workflow for all items, it would also be great to have the ability to stop all workflows if necessary. So I, Mark Overdijk, got to work again with Massimo Prota to get this script in place. The script is very similar to the StartWorkflow Powershell script, but the difference is that we don't retrieve the workflow through WorkflowAssociations but we have to use WorkflowInstances.

Prerequisites Powershell

Step 1. Gather parameters

For the script to run properly, you'll need the following parameters;

.SiteUrl: This is the full URL to the (sub)site where the list is stored for which you want to run the workflow

.ListName: This is the Title of the list for which you want to run the workflow

.UserName: This is the UserName that has enough permissions to run the workflow

Step 2. run PowerShell script

Start Windows Powershell as administrator.

Be sure to first set the ExecutionPolicy correctly so you are able to run scripts. Set-ExecutionPolicy Unrestricted [ENTER] Input "A" for all After the ExecutionPolicy is set, we can run the script file.

Copy/Paste the code below in a txt file and save as an *.ps1 file (in this example "StopWorkflow.ps1"). Fill out the parameters with the gathered information and run the script.

PowerShell stop workflow
PowerShell stop workflow

[code language="powershell"] # Add Wave16 references to SharePoint client assemblies and authenticate to Office 365 site - required for CSOM Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.WorkflowServices.dll"

# Specify tenant admin and site URL $SiteUrl = "https://[TENANT].sharepoint.com/" $ListName = "[TITLE OF THE LIST]" $UserName = "[USERNAME]" $SecurePassword = Read-Host -Prompt "Enter password" -AsSecureString

# Bind to site collection $ClientContext = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword) $ClientContext.Credentials = $credentials $ClientContext.ExecuteQuery()

# Get List $List = $ClientContext.Web.Lists.GetByTitle($ListName)

$ClientContext.Load($List) $ClientContext.ExecuteQuery()

$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) $ClientContext.Load($ListItems) $ClientContext.ExecuteQuery()

# Create WorkflowServicesManager instance $WorkflowServicesManager = New-Object Microsoft.SharePoint.Client.WorkflowServices.WorkflowServicesManager($ClientContext, $ClientContext.Web)

# Connect to WorkflowSubscriptionService $WorkflowSubscriptionService = $WorkflowServicesManager.GetWorkflowSubscriptionService()

# Connect WorkflowInstanceService instance $WorkflowInstanceService = $WorkflowServicesManager.GetWorkflowInstanceService()

$ClientContext.Load($WorkflowServicesManager) $ClientContext.Load($WorkflowSubscriptionService) $ClientContext.Load($WorkflowInstanceService) $ClientContext.ExecuteQuery()

# Get WorkflowAssociations with List $WorkflowAssociations = $WorkflowSubscriptionService.EnumerateSubscriptionsByList($List.Id) $ClientContext.Load($WorkflowAssociations) $ClientContext.ExecuteQuery()

# Prepare Terminate Workflow Payload $EmptyObject = New-Object System.Object $Dict = New-Object 'System.Collections.Generic.Dictionary[System.String,System.Object]'

# Loop Terminate Workflow For ($j=0; $j -lt $ListItems.Count; $j++){

$msg = [string]::Format("Killing workflows {0} on ListItemID {1}", $WorkflowAssociations[0].Name, $ListItems[$j].Id) Write-Host $msg

$itemWfInstances = $WorkflowInstanceService.EnumerateInstancesForListItem($List.Id, $ListItems[$j].Id) $ClientContext.Load($itemWfInstances) $ClientContext.ExecuteQuery() for ($k=0;$k -lt $itemWfInstances.Count;$k++) { try { $WorkflowInstanceService.TerminateWorkflow($itemWfInstances[$k]) $msg = "Worfklow terminated on " + $ListItems[$j].Id $ClientContext.ExecuteQuery() } catch { $msg = "Error terminating workflow on " + $ListItems[$j].Id + " Details: $_" }

Write-Host $msg } } [/code]

PowerShell: Start a workflow for all items in a list on SharePoint Online

For one of our Office 365 clients (mix of E1 and E3 licences) we created a workflow which will check the status of an item and, depending on this status, sends out e-mails and updates other columns. As the list was already in use, it was necessary to start the workflow for all present items. But to start the workflow manually for all 477  items, was not preferable. So I, Mark Overdijk, asked Massimo Prota to help me on the quest to see if it would be possible to to do it via PowerShell. As there are no PowerShell commands available for SharePoint Online to access the workflow instance, we searched for CSOM solutions. We came across this script on github. Thanks to Azam-A we had a base script to work from. What we changed/added were the following;

  • Referenced the new wave16 components as Office 365 is already on wave16.
  • Added feedback in the script when it runs. It'll show for each item the item ID for which the script is starting the workflow.
  • For obvious security reasons we're not storing the user's Admin password as plain text, but prompt for the password.

Prerequisites Powershell

Step 1. Gather required parameters

For the script to run properly, you'll need the following parameters;

.SiteUrl: This is the full URL to the (sub)site where the list is stored for which you want to run the workflow

.ListName: This is the Title of the list for which you want to run the workflow

.UserName: This is the UserName that has enough permissions to run the workflow

Step 2. Run PowerShell script

Start Windows Powershell as administrator.

Be sure to first set the ExecutionPolicy correctly so you are able to run scripts. Set-ExecutionPolicy Unrestricted [ENTER] Input "A" for all After the ExecutionPolicy is set, we can run the script file.

Copy/Paste the code below in a txt file and save as an *.ps1 file (in this example "StartWorkflow.ps1"). Fill out the parameters with the gathered information and run the script.

StartWorkflow1 screenshot in  Powershell
StartWorkflow1 screenshot in Powershell

[code language="powershell"] # Add Wave16 references to SharePoint client assemblies and authenticate to Office 365 site - required for CSOM Add-Type -Path (Resolve-Path "$env:CommonProgramFiles\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll") Add-Type -Path (Resolve-Path "$env:CommonProgramFiles\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll") Add-Type -Path (Resolve-Path "$env:CommonProgramFiles\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.WorkflowServices.dll")

# Specify tenant admin and site URL $SiteUrl = "https://[TENANT].sharepoint.com/" $ListName = "[TITLE OF THE LIST]" $UserName = "[USERNAME]" $SecurePassword = Read-Host -Prompt "Enter password" -AsSecureString

# Connect to site $ClientContext = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword) $ClientContext.Credentials = $credentials $ClientContext.ExecuteQuery()

# Get List and List Items $List = $ClientContext.Web.Lists.GetByTitle($ListName) $ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) $ClientContext.Load($List) $ClientContext.Load($ListItems) $ClientContext.ExecuteQuery()

# Retrieve WorkflowService related objects $WorkflowServicesManager = New-Object Microsoft.SharePoint.Client.WorkflowServices.WorkflowServicesManager($ClientContext, $ClientContext.Web) $WorkflowSubscriptionService = $WorkflowServicesManager.GetWorkflowSubscriptionService() $WorkflowInstanceService = $WorkflowServicesManager.GetWorkflowInstanceService() $ClientContext.Load($WorkflowServicesManager) $ClientContext.Load($WorkflowSubscriptionService) $ClientContext.Load($WorkflowInstanceService) $ClientContext.ExecuteQuery() # Get WorkflowAssociations with List $WorkflowAssociations = $WorkflowSubscriptionService.EnumerateSubscriptionsByList($List.Id) $ClientContext.Load($WorkflowAssociations) $ClientContext.ExecuteQuery()

# Prepare Start Workflow Payload $Dict = New-Object 'System.Collections.Generic.Dictionary[System.String,System.Object]'

# Loop List Items to Start Workflow For ($j=0; $j -lt $ListItems.Count; $j++){ $msg = [string]::Format("Starting workflow {0}, on ListItemId {1}", $WorkflowAssociations[0].Name, $ListItems[$j].Id) Write-Host $msg #Start Workflow on List Item $Action = $WorkflowInstanceService.StartWorkflowOnListItem($WorkflowAssociations[0], $ListItems[$j].Id, $Dict) $ClientContext.ExecuteQuery() }[/code]

If, for some reason, you want to stop/terminate all workflows, check this blogpost: PowerShell: Terminate a workflow for all items in a list on SharePoint Online

Intune device enrollment AD FS sign-in error “An error occurred. Contact your administrator for more information.”

Recently a client of mine added Windows Intune to their existing Office 365 subscription. The enablement of Intune requires users to install the Company Portal App on their mobile device which enrolls their device to your Office 365 organization.

In the process of enrolling a device it asks to login to Office 365. When a user tries to login with a federated Identity useraccount the login session will be redirected to your local AD FS sign-in page. However, when this is done from a mobile device it throws an error.

“An error occurred. Contact your administrator for more information.”

4-2-2016 14-17-03
4-2-2016 14-17-03

Now once you have a look on the AD FS Admin eventviewer logging which can be found under the Applications and Services tree in the eventviewer MMC snap-in.

There you will find the error listed below:

Encountered error during federation passive request.Additional DataProtocol Name: wsfedRelying Party: urn:federation:MicrosoftOnlineException details: Microsoft.IdentityServer.Service.Policy.PolicyServer.Engine.InvalidAuthenticationTypePolicyException: MSIS7102: Requested Authentication Method is not supported on the STS.at Microsoft.IdentityServer.Web.Authentication.GlobalAuthenticationPolicyEvaluator.EvaluatePolicy(IList`1 mappedRequestedAuthMethods, AccessLocation location, ProtocolContext context, HashSet`1 authMethodsInToken, Boolean& validAuthMethodsInToken)at Microsoft.IdentityServer.Web.Authentication.AuthenticationPolicyEvaluator.RetrieveFirstStageAuthenticationDomain(Boolean& validAuthMethodsInToken)at Microsoft.IdentityServer.Web.Authentication.AuthenticationPolicyEvaluator.EvaluatePolicy(Boolean& isLastStage, AuthenticationStage& currentStage, Boolean& strongAuthRequried)at Microsoft.IdentityServer.Web.PassiveProtocolListener.GetAuthMethodsFromAuthPolicyRules(PassiveProtocolHandler protocolHandler, ProtocolContext protocolContext)at Microsoft.IdentityServer.Web.PassiveProtocolListener.GetAuthenticationMethods(PassiveProtocolHandler protocolHandler, ProtocolContext protocolContext)at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)

Want to know the solution? Check it out here.

Two awards for ASML’s digital workplace

The digital workplace of ASML won two international awards in the Collaborative Enterprise Cup. The award ‘Best Integration of Collaboration & Communication’ and a special jury award are assigned to MyASML, a portal that’s co-developed and designed by Rapid Circle. Paul Leemans, Sr. Manager Collaboration at ASML: “We are very proud that we won those two awards, and especially the special jury award. We think that communication and collaboration at a digital workplace must support each other. The jury found that this is one of the key things of our intranet, together with the personal experience on the homepage. With all of the complex technical solutions in the backend, all hidden for the end users. Their experience is a simple page that is personally relevant to them and their work and is easy to adapt to their wishes. I want to thank Rapid Circle for their expertise and development that makes this is possible.”

At Rapid Circle we are also very proud of this award. The awards are assigned to the ASML portal for assumptions that we think are very important; creating personal relevant, simple and user friendly digital workplaces and intranets. Who wants, after all, an intranet where you can only find something? If you’re lucky? If your intranet can help you with your work today, it’s an attractive place to start your day and consult it daily. The jury of the Collaborative Enterprise Cup is that exactly what MyASML is! We are also very proud that Attini, our solution for personal news, and our app catalogue have contributed to winning this award.

Want to know more about one of these topics? Please contact Wilco Turnhout.

Want to find out what Attini can do for you? Go to the site for a live demo or free trial.

Real-world examples of instant care collaboration with Rapid Circle

Care team communication and collaboration has always been vital to patient care. But it’s even more critical today as health services delivery becomes more complex. Often, multiple providers are involved and care extends outside of clinics and hospitals to people’s homes.

The patient safety ramifications of poor care team communication are highlighted in the IDC white paper “The Mobile Professional in Healthcare: Improving Care Team Collaboration through Unified Communication and Collaboration (UC&C).” It also points out that health professionals use an average of three devices during their workday and need tools that work seamlessly across those devices. One of the key findings in the paper is that health organizations are increasingly taking advantage of cloud services to address these challenges and improve care team collaboration, while saving money.

Indeed, today’s cloud and mobile technologies make it easier than ever to coordinate health services across organizations and communities—and deliver patient-centric care.

Patient-centered collaboration can now start even before the patient arrives at a hospital or clinic. For example, a regional ambulance service in Austria is using a solution from icomedias to capture patient data on tablets and share it in real time so that hospital staff can know the patient’s emergency condition prior to arrival. Whereas before emergency medical personnel had to fill out up to 600 fields on paper forms, they can now use touch, voice, or pen capabilities to quickly capture field notes. They can also take pictures of a patient wound, for example, and it will be instantly integrated into their report.

“The emergency medical service is about saving lives in extremely critical situations—every second counts,” says Klaus Pessenbacher, Chief Physician MD and Head of Emergency Medical Services, Federal State Government of Styria, Austria. “Using the mobile solution HYBRID.FORMS by icomedias, we document all measures taken in a reliable, legally compliant, and quick way. By replacing paper with digital forms, essential information can be sent to the hospital before the patient arrives. Forms automation reduces risks, saves money, and we gain more time for our core life-saving tasks.”

Another great example of a mobile solution for improving care team collaboration and productivity comes from Rapid Circle. With its solution, health professionals can have their own personal home page that’s consistent and adapts across all their devices. Rather than having to open up a bunch of different applications to do their work, health professionals can see their text, voice, and email messages on their customized home page. They can see the status of their patients, shift handoff notes, the availability of specialists, and more. They can even create their own apps to help with things like exchanging work shifts. All of this makes it faster and easier for care teams to work together and stay up to date on patients’ conditions and needs.

These are just a few examples of the exciting ways that health organizations and technology vendors are taking advantage of today’s mobile and cloud technologies to make it easier for health professionals to collaborate in real time—with the ultimate result being patient-centered care. Check out more customer stories and Microsoft partners.

And stay tuned for my next blog in the coming weeks, which will share some great examples of another crucial element of care coordination: patient empowerment.

In the meantime, please feel free to share your own care team communication story via email,Facebook, or Twitter. Please also let us know if you have any questions or comments.

------

Written by Christian Maranitsch Published on September 18th 2015 on Microsoft Health blog

Search Result Source: Why you should use them more often

SharePoint 2013 encompasses a very fancy query configurator and "builder" in the search results web part. An admin can configure the query to filter down and/or scope the results the search web part will show. This is fantastic news as you no longer need to write SQL to provide a simple solution for client requirements like:

  • "search results should only show images"
  • "search results should display results from HR department sub site"

 

Why a result source?

The biggest issue I have with this solution, is that it is almost entirely based on the on the "Local SharePoint results" result source. Which means that the search results web part will load the complete index and then apply the query rules.

 

I wonder however, why do we put such a load on the system to show the full index and then tell it that we'll only need 2% of the results or just the *.PSD files. We can speed things up by configuring a result source, so the system will only get the results from e.g. only the *.PSD files. This will result in a performance increase because both the result source and the applied query have faster loading times. This is much appreciated considering we're applying more and more front-end design to display templates. Whenever we can save load time, we should always do so.

 

Another benefit is that if we do want to add extra filters - for example when we have a result source for one site but two search result pages (no.1 = all and no.2 = documents only) - the result source can be applied to both pages. This results in an even better performance on the 2nd page, because the performance increase is applied twice. The loaded index is smaller and the filter is applied to a smaller result set.

 

Besides all this, there are also functional benefits related to using result sources. First of all, result sources can be applied to all result web parts within the collection of creation. So, when a more experienced admin creates a result source within a site collection, other less experienced admins within that same site collection can apply the result source to result web parts.

 

A result source will also help with version control and updates. When you configure each search results web part within the web part itself completely, the code is fragmented and can't be updated from a single source or be reused. This is not the case with result sources. These can be updated from the source and the source could be a Site, a Site Collection or a Web application/Tenant.

 

So to conclude, result sources improve performance of search results web parts, they are scalable and manageable.

When to use result sources?

In theory, a result source can be used for all search result web parts. It'll be a mess however if you create a result source for all detailed searches. A simple guideline is "when a scope is smaller than a site collection, more than three site collections (including my site/search center) are present or a filter is applied". What does that mean exactly? A few examples:

 

Result Source:

  • All results from site HR including sub sites.
  • All video files from site collection "Video".

Full index:

  • All results.
  • All results from a site collection (total no. of site collection is 3).

 

Next time

In the next post I'll share the details on how to configure a result source.

For now I would like to know if you use result source or why you disagree with using them.

Offboarding mailboxes back to on-premises Exchange with Office 365

mailboxoffboarding
mailboxoffboarding

Most companies use the built-in migration feature in the Office 365 Portal for onboarding mailboxes to the cloud. This has been recently upgraded with a lot of new features such as batches and migration end-points etc.

However a logical question is, what about migrating mailboxes back to our on-premises Exchange organisation? Creating those end-points can sometimes be difficult. To make life easier I use this simple PowerShell script. Before you can run the script you first have to connect to Remote PowerShell. For that please follow the instructions described here.

$opcred = get-credential domaindomainadminGet-Mailbox -Identity username@contoso.com | New-MoveRequest -OutBound -RemoteTargetDatabase ‘Database01′ -RemoteHostName ‘hybrid.contoso.com’ -RemoteCredential $opcred -TargetDeliveryDomain ‘contoso.com’

As you can see we define several parameters. Most of them should make sense to you, however I want to highlight that in a hybrid scenario you must use the database on your hybrid server. The RemoteHostName parameter is your hybrid endpoint.

Rapid Circle wins again! Cloud Partner of the Year

After winning the worldwide ‘Health Partner of the Year’ award from Microsoft we also received the ‘Cloud Partner of the Year’ award for the Dutch healthcare sector. Andre Piso, Health & Local Government Lead from Microsoft Netherlands handed over the award to Wilco Turnhout.  With this annual awards Microsoft wants to express their appreciation for all Dutch partners who developed special or innovative solutions for the healthcare industry based on Microsoft technology. The Microsoft Health Partner awards are awarded in 5 categories: Innovator of the Year, System Integrator of the Year, Solution Partner of the Year, Licensing Partner of the Year en Cloud partner of the Year. We also want to congratulate the other award winners – Wortell, Caase.com, ChipSoft and Agile Software.

The reason that Rapid Circle won this ‘Cloud Partner of the Year’ award is because of our express choice for Office 365, Cloud and Microsoft Azure. Our clear ‘Cloud first’ strategy at our customers, but also in our marketing and PR.

Rapid Circle wins Microsoft ‘Worldwide Health Partner of the Year’ award.

logo-2.jpg

Rapid Circle has been proclaimed winner of the ‘Health Partner of the Year’. We are very honoured to belong to a global field of top Microsoft partners. Every year Microsoft awards partners who have demonstrated excellence in innovation and implementation of future-proof customer solutions based on Microsoft technology. Awards were presented in several categories, with winners chosen from a set of more than 2,300 entrants from 108 different countries worldwide. In 2014 Rapid Circle was already named finalist in the Healthcare category, this year we can officially take the trophy home. With this we can be considered the most valuable partner for Microsoft in healthcare worldwide.

“This year’s award winners are among the most innovative and valuable our partner ecosystem has to offer. Therefore, it came as no surprise that Rapid Circle was named among that group as this year’s winner of the 2015 Microsoft Health Partner of the Year award,” said Phil Sorgen, corporate vice president, Worldwide Partner Group, Microsoft Corp. “We applaud Rapid Circle on this achievement and for the outstanding value it continues to provide for our mutual customers.”

Industry Managing Director, Worldwide Health Paul Smolke from Microsoft adds: “Rapid Circle has earned the Microsoft Health Partner of the Year Award because of their innovation and dedication to results.  They offer solutions based on a combination of Microsoft’s cloud and mobile platforms and their understanding of healthcare.   Their solutions are easy to implement and utilize.  Thank you, Rapid Circle for making a difference.”

Phil Sorgen and Satya Nadela (Corporate Vice President and CEO Microsoft) will officially present the award at the World Partner Conference in Orlando

logo-2

Specialist in healthcare

We’re very proud and honoured to win this prize. Harold Punter, CEO: “It is an acknowledgement for our course, vision and the results we achieve with our clients. For this we want to thank our clients, because we achieve innovations and success together.”

Even though Rapid Circle is present in several sectors to improve cooperation and productivity, our position is especially strong in healthcare. While the healthcare sector has less and less resources to work with, we are motivated to add value to the quality of care and to improve client experience. As Rapid Circle we can add value to productivity and quality of care through the utilization of new technologies. The Netherlands is leading in innovation of healthcare, and this award is a great example.

Cloud Success Management. A new approach to IT

Employees of (healthcare) organisations experience innovative and cloud technologies as consumers everyday. Because of this, they also expect these technologies within their organisations more and more. New solutions for mobile and tablets help with innovating internal and external communication and cooperation, increase productivity and stimulate self-organisation in flatter organisations. These solutions become relevant to organisations through configuration and continuous cloud-based innovation, just like for consumer apps.

Configuration demands a different approach to IT than customization used to have. Our approach consists of guiding (healthcare) organisations in determining cloud-strategy based on organisation goals and user profiles, implementing platforms, arranging support, measuring results and continuously pay attention to the utilization of platforms through adoption and governance. Because we invest in long-term relationships we can offer organisations the latest innovations on the platform right away

poty2-01

Leading in new technologies

In the Netherlands Rapid Circle is leading in implementing solutions based on the Microsoft Cloud. Important elements of the cloud are Office 365, SharePoint Online, Enterprise Mobility Suite, apps, CRM Online and Skype for Business. Based on these elements, Rapid Circle realizes solutions in healthcare. Examples are the digital workplace, care apps, employee portals, referral portals, client portals, quality handbooks and video conferencing.

As a fast growing organisation we hope to support more healthcare organisations in the years to come with their questions regarding innovation of cooperation.

Do you want to know more about our plans, way of working, solutions and services? Please contact Wilco Turnhout.

Walkthrough: Add Geolocation column to your list in Office 365

A while ago a client (with an Office 365 E3 subscription) came to us with the wish to create a map to plot locations of external contractors on. My first thoughts, as an Office 365 consultant, went towards using the tools at hand. SharePoint 2013/Online has a Geolocation column type and the list view type "Map view". The client agreed to use this feature and I went about setting up the solution. So I posed the self-fulfilling prophecy: "How hard can it be?"...

As the list with the data was already in place, I was neither keen on letting a developer create a solution which either creates a new list with the column in it (and me migrating data) nor writing a solution which adds the column programmatically once. I wanted to add the column directly through (a reusable) script and went on to do my desk research. This ended up taking way too much time as almost all information found…

  • ...were solutions for SharePoint 2013 on premise,
  • ...were articles on the end-result,
  • ...posted failing scripts,
  • ...did not offer information on the Bing Maps key,
  • ...did not offer guides/information specifically for Office 365/SharePoint Online scenario's.

Something as simple as "what to use as the Bing Maps application URL for an Office 365 tenant?" was not to be found.

It took a while, but when I finally got the settings right for a Bing Maps key and a working script, I decided on 2 things;

  1. Create a generic script, because as a consultant I'll want to use this script more than once for multiple tenants.
  2. Write a blog post as a definitive guide to add the geolocation column type in Office 365/SharePoint Online as a resource for the community

Scenario

For the walkthrough I'm using the following scenario; As a global admin for the tenant https://yourcompany.sharepoint.com, I'm adding the geolocation column type to the list "Contact" on the sub site https://yourcompany.sharepoint.com/sites/sales and naming the column "Office".

Step 1. Get a Bing Maps Key

Go to Bings Maps Dev Center; https://www.bingmapsportal.com/

Log in with your Live account (@live.com, @outlook.com, etcetera) or create one to gain access.

Go to My account > Create or view keys

bingmapsdev1
bingmapsdev1

To create a new API key follow the "Click here to create a new key" hyperlink

bingmapsdev2
bingmapsdev2
bingmapsdev3
bingmapsdev3

Fill out the form to create your API key

. Application name: The name you would like to use for your key. It helps you to identify the key in your overview

. Application URL: The URL of your root SharePoint portal (https://tenant.sharepoint.com)

. Key type (Trial/Basic): Choose whether you're using the key for 1) a test site (max 10,000 calls p/mth and max 90-day trial period) or 2) a live site (free for max 125,000 calls p/yr) (more info here)

. Application type: What is the application? App, site,for non-profit use, etc.

In this scenario, the admin fills it out;

  • Application name: Sales Office
  • Application URL: https://yourcompany.sharepoint.com
  • Key type: Basic
  • Application Type: Public Website

After you click Create and the Captcha was filled out correctly, the page refreshes and displays your new key below. You'll receive a 64 character key.

bingmapsdev4
bingmapsdev4

Step 2. Gather required information

For the script to run properly, you'll need the following information;

. Site URL: URL to the site where the list is.

. Login account: at least admin permission as you're changing list settings.

. List Name: name of the list to add the geolocation column type.

. Column Name: title of the geolocation column.

. Bing Maps Key: to register the app and remove the notification in map view.

In this example, the admin has gathered the following info;

  • Site URL: https://yourcompany.sharepoint.com/sites/sales
  • Creds: Admin@YourCompany.onmicrosoft.com
  • List Name: Contact
  • Column Name: Office
  • Bing Maps Key: [PASTE KEY HERE]

Now we can run the script.

Step 3. Run script

Start SharePoint Online Management Shell as administrator

If you don't have SharePoint Online Management Shell, you can download it @ Microsoft Download Center

set-executionpolicy Unrestricted Clear-Host [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') <# Get User input #> $SiteURL = [Microsoft.VisualBasic.Interaction]::InputBox("Enter Site URL, example: https://yourtenant.sharepoint.com/sites/yoursite", "URL", "") $Login = [Microsoft.VisualBasic.Interaction]::InputBox("Office 365 Username, example: youradmin@yourtenant.onmicrosoft.com", "Username", "") $ListName = [Microsoft.VisualBasic.Interaction]::InputBox("List name to add Geolocation column", "ListName", "") $ColumnName = [Microsoft.VisualBasic.Interaction]::InputBox("Column name for the Geolocation column", "ColumnName", "") $BingMapsKey = [Microsoft.VisualBasic.Interaction]::InputBox("Bing Maps key", "Key", "") <# Show results #> Write-Host "/// Values entered for use in script ///" -foregroundcolor magenta Write-Host "Site: " -foregroundcolor white -nonewline; Write-Host $SiteURL -foregroundcolor green Write-Host "Useraccount: " -foregroundcolor white -nonewline; Write-Host $Login -foregroundcolor green Write-Host "List name: " -foregroundcolor white -nonewline; Write-Host $ListName -foregroundcolor green Write-Host "Geolocation column name: " -foregroundcolor white -nonewline; Write-Host $ColumnName -foregroundcolor green Write-Host "Bing Maps key: " -foregroundcolor white -nonewline; Write-Host $BingMapsKey -foregroundcolor green Write-Host " " <# Confirm before proceed #> Write-Host "Are these values correct? (Y/N) " -foregroundcolor yellow -nonewline; $confirmation = Read-Host if ($confirmation -eq 'y') { $WebUrl = $SiteURL $EmailAddress = $Login $Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl) $Credentials = Get-Credential -UserName $EmailAddress -Message "Please enter your Office 365 Password" $Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($EmailAddress,$Credentials.Password) $List = $Context.Web.Lists.GetByTitle("$ListName") $FieldXml = "<Field Type='Geolocation' DisplayName='$ColumnName'/>" $Option=[Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldToDefaultView $List.Fields.AddFieldAsXml($fieldxml,$true,$option) $Context.Load($list) $Context.ExecuteQuery() $web = $Context.Web $web.AllProperties["BING_MAPS_KEY"] = $BingMapsKey $web.Update() $Context.ExecuteQuery() $Context.Dispose() Write-Host " " Write-Host "Done!" -foregroundcolor green Write-Host " " } else { Write-Host " " Write-Host "Script cancelled" -foregroundcolor red Write-Host " " }
The actual programming part in the script I modified from the script posted ina blog post by Albert Hoitingh. I wanted to remove the hardcoded values from the code, so the script can be run based on user inputs. So I added the interface (input boxes, confirmation, write-hosts), replaced the hard coded values and added comments.

When you run the script, PowerShell will ask the user to input the information we gathered in Step 2.

geoscript1
geoscript1
geoscript2
geoscript2
geoscript3
geoscript3
geoscript4
geoscript4
geoscript5
geoscript5

After the last values have been entered, the admin will see a confirmation screen where the values can be review and confirmed (if the input is incorrect, the script can be cancelled by entering "N" to not proceed - screenshot).

geoscript6
geoscript6

After confirmation, the admin will be prompted to enter the password.

geoscript7
geoscript7

If everything was filled out correctly, the script will run and returns with the "Done!" notification upon completion.

geoscript8
geoscript8

Return to your SharePoint online list and you'll notice when creating a new view for your list "Contact", you gained the option Map View. When checking the list settings, the column "Office" has been added of the type Geolocation.

mapview1
mapview1

Are you missing information, do you want me to clarify anything, do you want to post a conversation starter or do you just want to say thanks? Leave a comment.

Rapid Circle is Gold Certified Cloud Productivity Partner

logo.jpg

By the end of 2014 we were chosen by Microsoft as the winner of the ‘European Microsoft Cloud First Partner Healthcare’ award. And now, as one of the first in Europe, we have also recieved the Gold competency for the Cloud Productivity program and the Silver competency for the Cloud Platform program for Microsoft partners. Those programs are part of the total cloud strategy of Microsoft, in which technologies as Office 365, Windows Azure and Dynamics CRM are very important. We are very proud that we reached those two competencies as a recognition of our knowledge, experience and commitment to the ‘Cloud First’ strategy of Rapid Circle. It gives our customers the security that they can trust us on our cloud expertise. Besides those competences we already got the Gold competency for Content & Collaboration and also the Gold one for App Development.

Rapid Circle & the Cloud

For years we think that cloud is the right way to go for organizations. Employees bring their experiences with the apps and solutions for the home consumers into the office and expect the same experience with their business apps. Cloud solutions bring those innovative and new technologies for business solutions and help organizations with reducing costs, increase productivity and innovate on their internal communications and collaboration. The Cloud helps organizations to grow and makes them more flexible in a fast changing world.

Implementing new technologies is always challenging for businesses on the technical and organizational part. When they are successful in the cloud they can focus more on those two pillars, which brings them in a better balance.

Do you want to talk about Cloud solutions for your organization? Please contact us.

Convert security groups to mail-enabled and universal for Office 365 with PowerShell

by Thomas Verwer, Technical Consultant @ Rapid Circle When carrying out projects for Enterprise clients I commonly face challenges with companies not meeting the system requirements for Office 365. One of the most commonly seen missing requirements are on the Identity and Access Management part of Office 365.

When migrating legacy Identity and Acces Management infrastructures to Office 365 you quickly bump in to Microsoft’s Active Directory Services (ADS). To migrate this service to Windows Azure Active Directory – which is part of every Office 365 license – you can use the Windows Azure Active Directory Sync tool. Or as most IT Professionals know it “DirSync”, this is a special edition in the history of FIM.

Now back to businness. To migrate legacy security groups to Windows Azure Active Directory, for products such as Exchange Online it is a requirement to have a GroupScope of Universal.(see image below)

Get-ADGroup-GroupScope

Since most companies still use Global security groups these need to be converted. Therefore I use a PowerShell script which automates this proces. For this script to work, import the ActiveDirectory module in PowerShell or run the script with Active Directory Module for Windows PowerShell.

Clear-Host

if((Get-Module | where {$_.Name -eq “ActiveDirectory”}) -eq $null){ Import-Module ActiveDirectory } $scriptPath = split-path -parent $MyInvocation.MyCommand.Definition Set-Location $scriptPath Write-Output “Output will be stored in ” (Get-Location)

$SeaBase = “DC=corp,DC=local” $SeaVal = “CN=Mailbox_*” $SeaScope = “Subtree” $GrpList = “ADSecGrp.csv” $UniGrpList = “Uni_ADSecGrp.csv” $strLogFile = “ErrorLog.txt” $DomainAdmin = Get-Credential

#Search for all Groups that are of type Security and scope is Global and starts with “Mailbox_” $SecGrps = Get-ADGroup -SearchScope $SeaScope -SearchBase $SeaBase -Filter {GroupCategory -eq “Security” -and GroupScope -eq “Global”}

foreach ($secGrp in $SecGrps) { try { $DN = $secGrp | Where-Object {$_.DistinguishedName -like $SeaVal} $DN | Export-Csv $GrpList -Append } catch { throw Break } }

(Get-Content $GrpList | Select-Object -Skip 1) | Set-Content $GrpList

Write-Output “Check $GrpList to verify all exported security Groups are of type Global” Write-Output “Press Y to continue” $selection = read-host if ($selection -eq “y” -or $selection -eq “Y”){ Write-Output “$GrpList CSV File Checked….” foreach($G in Import-Csv $GrpList){ try { $D = $G.DistinguishedName Get-ADGroup -Identity $G.SID Set-ADGroup -Identity $G.SID -GroupScope Universal -Credential $DomainAdmin } catch { $ErrorMessage = $_.Exception.Message Write-Output “Error converting for $D ..`n Error Message : $ErrorMessage” | Add-Content $strLogFile Throw Break } $DN = Get-ADGroup -Identity $G.SID $DN | Export-Csv $UniGrpList -Append } (Get-Content $UniGrpList | Select-Object -Skip 1) | Set-Content $UniGrpList Write-Output “Check $UniGrpList to verify all modified security Groups are of type Universal” }else{ Write-Output “Script Stopped by User” | Add-Content $strLogFile Break }

As you can see the script contains several variables. With these you can define the scope of OU’s or name convention for existing security groups. When running the PowerShell script it builds up a CSV-file called Uni_ADSecGrp.csv. When paused you can open and check the file to see if it contains the groups which you wish to convert. If so, you can insert “Y” to the script and it proceeds running.

After we have succesfully changed the GroupScopes to Universal we can carry on and use the second PowerShell script which mail-enables the security groups so they meet the requirements for Exchange Online. Besides the conversion to mail-enabled it also hides the groups from the Global Address List.

Run this script on one of the legacy Exchange servers with the use of the  Exchange Management Shell.

Clear-Host

#if((Get-Module | where {$_.Name -eq “ActiveDirectory”}) -eq $null){ # Import-Module ActiveDirectory #}

#Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 # $env:ExchangeInstallPathbinRemoteExchange.ps1 #Connect-ExchangeServer -auto

Write-Output “Output will be stored in ” (Get-Location)

$GrpList = “Final_ADSecGrp.csv” $strLogFile = “enableErrorLog.txt” $log = “AfterLog.txt” $ErrorLog = “ErrorLog.txt”

foreach($G in Import-Csv “Uni_ADSecGrp.csv”){

try { Get-ADGroup -Identity $G.SID

Enable-DistributionGroup -Identity $G.DistinguishedName -Alias $G.Name Set-DistributionGroup -Identity $G.DistinguishedName -HiddenFromAddressListsEnabled $true Get-DistributionGroup -Identity $G.DistinguishedName | Add-Content $Log $x = Get-DistributionGroup -Identity $G.DistinguishedName if($x -ne $Null){ Write-Output $G.DistinguishedName }else{ Write-Output $G.DistinguishedName | Add-Content $ErrorLog } } catch { $ErrorMessage = $_.Exception.Message Write-Output “Error Enabl-DistributionGroup for $G.DistinguishedName …..`nError Message : $ErrorMessage” | Add-Content $strLogFile throw Break }

}

Once you have succesfully executed the second script you can add these objects to your Windows Azure Directory Sync cycle. Please be aware that when you convert the groups, the groups may not contain unsupported characters such as namespaces or & characters.

Best of luck to you all with carrying out succesfull Office 365 deployments. Before I publish the post, I have to share my respect to my colleague and teammate Dev Chaudhari for working on the scripting!

Original blog on: thomasverwer.com

Rapid Circle wins “European Microsoft Cloud First Partner Healthcare” award

10697148_10152966503818993_8825622299050389231_o.jpg

Rapid Circle has been chosen as the winner of the ‘European Microsoft Cloud First Partner Healthcare’ award at the ‘EU Health Innovation Event’ in Brussel. We are very proud that Microsoft sees us as one of the most important partners for working with the Microsoft Cloud for healthcare. Microsoft: “We recognize Rapid Circle for leading the cloud business in Europe.”  WP_20141209_21_03_22_Pro

For Rapid Circle is Cloud a very important part of our vision and strategy. We believe that the Microsoft Cloud is an important platform for innovation and better healthcare. We are dedicated to the Microsoft Cloud for the last 5 years, to reach our goals: Innovative, user friendly and cross-application app’s. We are very proud that our method and focus on Cloud are recommended with this award.

Microsoft says that our creativity, the way we speak the language of our customers and all of our work for lots of healthcare organizations in and around the Netherlands brought us the award for ‘European Microsoft First Partner Healthcare’. With this we serve as a model for Europe, regarding migrating to the cloud and knowing what is relevant for cloud adoption.