My Workflow for using Git with GitHub, OneDrive, PowerShell & Exchange – optimising efficiency across devices. Pt 1

So this is the First of a series of blog posts about how my workflow with Git, Github, PowerShell & Exchange currently works.

In this series we will cover a number of different applications and a number of custom PowerShell Functions that will really help you to optimise efficiency across devices when these processes are put in place.

Ok so I am going to share with you my current end to end workflow for ensuring that I commit myself to making use of Source Control for all of my Scripts (and other files when required).

So imagine this scenario – I have come across a public GitHub Repo (I’ll be using the recently published PowerShellEditorServices Repo for this) which I feel would benefit me in either my current or future workloads. So at this point I will decide to make sure to “watch” the repo as shown below.








Notice that the Default is to be not Watching the Repo – I will click the Watching and that will add this repo into the list of other repo’s that I am watching. Now you may be thinking at this point “Ok seems reasonable enough” but this is the point where it becomes interesting – well at least it does for me and my workflow – and that’s why your reading right??

So now when I access Github it will show me in my Watching section (as seen below) any new Issues or Pull Requests raised with any watched repos and by “default” you also get an email of this notification – this is the important bit as until GitHub release a Mobile Client this is important for me – as I like official apps from a vendor than a community developed app – especially ones done by a singular developer (but that’s just me)









Ok so at this point we should have a hunch of perhaps where the rest of this series may be going.

I make it quite aware that I run my own Office 365 tenant that at under £4 per month gives me SharePoint, Exchange, Azure Active Directory & Skype for Business. This allows me to focus on using the Microsoft Ecosystem that I have to hand and I can then use them for much more than simple use cases.

However, at this point I will warn that the next stage will require you to either have your own Office 365 Tenant & therefore Exchange Online or that you must be an Exchange Administrator to run the next stages – As the PowerShell Scripts I’ve got built currently run against Exchange Online (though I will be looking to port this to be usable for those using Outlook and aren’t Exchange Admins).

So first off from this point we have to create a New Folder & Inbox Rule for my Exchange Mailbox – but we don’t really want to have to add any information in for it now do we – I mean that’s why we are automating the process to the nth degree.

Stay tuned for part 2 where I will go into the details as to how to Query the GitHub API & then create new Inbox Folders & Rules based on that and then start to show you the rest of my workflow.

Quick Win – Install Windows 10 RSAT Tools via PowerShell



This is a very very quick post about installing RSAT for Windows 10 via this function script I created

And what better way than a simple 1 liner to grab and run the script

Invoke-Expression (New-Object Net.WebClient).DownloadString(‘’)

And if you want to look at the Script then direct link is

Hope this is useful for you

PS credit (again) goes to @lee_holmes for the idea from following tweet

I plan on turning this into a DSC Resource (or adding it to an existing resource) when I get the chance to – unless someone beats me to it.

Published: 16/11/2015 22:49



Get-PSUGUK & PSConfEU – How I got involved in Organising them


Well this is a blog post that is really like the PSConfEU website and the organisation that goes with a conference like this – a real work in progress – by this I mean that at current writing it is correct however in a week well then it will be partially obsolete, but only partially.

So lets go right back to the beginning of the story, and for me this story goes back to July and just after I had agreed that I would be setting off for the PowerShell Conference in Singapore, see my post on just how amazing that was here, and how I had really been finding that the was an issue for me with the fundamental lack of UK PowerShell movement. From my trawls of the internet I concluded that there was really only the US Summit (at this point I didn’t even know about the EU Summit and not sure how I missed it either which just goes to show how out of the loop you can be if you are not on the ball for finding where this information is out there in the depths of the internet) and I felt frustrated with this so I started to do my Home Work and found out about the PowerShell User Group in the UK – Get-PSUGUK.

At this point all there was still really available on the internet was a dead link to the old webpage and a few blog posts that I could find mentioning it. Some of these were from 2006/2007/2008 so were quite old but luckily there was an email on one of them so after about a week of arguing with myself about whether or not I should send a query email to find out the status of the User Group, I said to myself JFDI! So I Sent off an email on July 19th just after 15:30 and a little over 2 hours later I had a response – and I’ll tell you I was shocked that I got one at all. I only say that as over the years I must have had at least 25 different email addresses and had most of them running concurrently (now down to 7 – not including work email addresses) so I kind of expected to not end up getting a response at all. Luckily though the response came from none other than UK PowerShell MVP Richard Siddaway (@RSiddaway) who advised me that the user group had become inactive and that although he wanted to resurrect it, time was not on Richard’s side along with his other commitments.

Well this is where my determination (or lack of patience – still yet to be decided) kicked in and I started to push out on a variety of strands to gather some further information – like where could I look to host a user group being one of the big ones to tackle, and also there was the need to also make sure that I could post on to help promote the event/s. Luckily Manchester is pretty good for its venues in which you can host User Groups so there was plenty of choice and there is a great bunch of organisers in Manchester that co-ordinate together (using Slack – more on Slack later) about the direction of User Groups and co-ordinating events that run in Manchester as well which is great to be involved in as there can be some really great crossover between user groups – an example I presented about PowerShell DSC at the DevOps User Group on Monday 2nd November and this was to a mainly *nix filled room.

So from there I made some plans with Richard to put together a Get-PSUGUK Manchester User Group and get a date arranged as well. So by the end of August I had arranged for the first meetup to take place at SpacePortX in Manchester on October 13th and had already factored in scaling for other User Groups in the UK for the administrative overheads these user groups could potentially create. By this all I really mean is that I had created an Eventbrite page, A function to interact with the Eventbrite API to add members into a Distribution List for emails advertising other possible events and worked out that I would be the sole speaker at the initial event in Manchester.

Then next thing I know it and I’m at PSConfAsia and whilst there I was discussing with the other speakers about how much I had enjoyed the event that I would be interested in running something similar myself back in the UK especially seeing as Don Jones had blogged that the team would not be up for organising another EU Summit due to the enormous stress placed on them being mainly based in the US. Time zones are a big issue with organising an event like this and to have to try and traverse multiple time zones cannot be fun at all so I can totally understand the decision by the team not to continue to attempt to organise the EU event as in many ways this allows there to be others like myself and the rest of the team that have pulled together to organise PSConfEU.

So now into the real meat of this post in my opinion – its not every day that you can say that you are working with a cross continent collective to put together an event like this and all of us are doing this in our spare time and we have had to make sure that we collaborate as effectively as possible – now we could have continued with the Email list that was set up by for us to get together people that would be interested in helping out pull this event off however that wasn’t going to be really optimal as conversation tracking becomes a nightmare in emails (personally if email were to disappear in the workplace that would not bother me) and we needed to segregate topics but not spilt away all the eyes from the information being discussed. Slack becomes a critical tool for this in my personal opinion and without it we would not have had all the success that we have had currently.

The PowerShell EU conference Website and the development practices behind how we are maintaining and updating it are crucial to the understanding of where IT SysAdmin is heading and with that we chose the best fitting platform for what we wanted to achieve – a Website with easy version control and ability to integrate a Continuous Integration toolset to allow us to determine if the new builds of the website were functioning as expected, plus it gives us all piece of mind as well.

So is hosted using GitHub Pages which means that the site is just a GitHub Repo structured to the organising team’s GitHub Organisation. With this we are making use of Jekyll, the static site generator built in Ruby – that means that just to get the site to where it is we have all had to have a bit of a learning curve with the way to build out the site to take advantage of the way that Jekyll functions and also learn a bit of Ruby in the process. This for me has been fantastic as I love to learn something new especially if it is something completely out of the norm for me. Just see the tweet I have pinned on my twitter profile at @ryanyates1990 and that should be enough of an insight to how much I’ve enjoyed this so far 😉 and yet there is still so much more for me (and the team) to get completed prior to the end of this year including selecting the speakers.

One of the other interesting bits with this is it has empowered me to realise that not only is there a lot of hard work into conferences and events but that they can be managed in an efficient way with the right mix of technology. There is no 1 stop shop to getting an event like this right and it truly is a collaboration of efforts between us all involved.

So to end this rather long winded blog post I’d like to just mention the following

Get-PSUGUK have meet ups in Manchester and in London this November – you can sign up at

The PowerShell Conference EU is still accepting Speaker Submissions we have a closing date in mind however we will likely confirm this via @PSConfEU in the next few weeks. If you are in 2 minds about submitting a session then please reach out to me directly as soon as possible.

For more details on the PowerShell EU Conference please visit

Published: 15/11/2015 14:18

SPS Munich – What an event!


Ok so I’ve neglected the blog recently and that is because I’ve genuinely not had time to think about it.

This has consisted of 2 different SharePoint Saturday’s – one as an attendee (Munich) which I’ll cover in this post & one as a “presenter” (Oslo) and I’ll come back to SPS Oslo in another post.

Firstly, SPSMunich was the first SharePoint Saturday that I’ve attended as a just an attendee and I must say that we were very much spoiled in many ways. It was a great event with such an amazing line up of Speakers, I also submitted sessions but on seeing the ending line-up I genuinely understood that my submitted sessions could not compete with the line-up but to be totally frank that was a good thing as I thoroughly enjoyed being there as an attendee and who can blame me when it was immaculately delivered.

So firstly the Keynote from SPSMunich was delivered by Jeremey Thake (@jthake) in which he delivered some amazing stats including how Office 365 is using 470+ Petabytes which is 470,000Tb – That’s a lot of storage!

After that I went to the session on Building FAQ Functionality in SharePoint delivered by Paul Hunt (or @cimares if you are on twitter) and as have been come to be expected the session was informative and captured all of the key points that you would need to be able to walk away from the session and implement this in your organisation – something that I would recommend you really investigate as SharePoint really is fantastic for that type of information store.

After that we had a coffee break which is something that between sessions really is needed to give attendees change to digest the information delivered to them in which I opportunity to briefly catchup with some of the speakers that I had met at SPSLondon – Maarten Eekels, Thomas Votchen, Elio Struyf, Hans Brender and a few others too throughout the day.

Next up I attended the “Scaling SharePoint 2016 farms with Minrole and other tools” session delivered by Spencer Harbar (@harbars) – now this was an interesting session that for me left me thinking that the implementation of MinRole is just another example of how there are teams at Microsoft that just “Do it our way” and the SharePoint team seem to have been really good at doing this over the years – or at least so it seems from my view.

Next up we had an amazing lunch can if you view the SPCAF Blog – SPSMunich Recap you will see there is a flicker album which goes to show how well the event was orchestrated – you can also find all of the Speakers Slide decks there as well.

After the truly amazing Lunch the next session I attended was none other than that of Erwin van Hunen (@erwinvanhunen) and his session on getting started with the Office Dev PnP Provisioning Engine and it was a tough call between that and the session by Thomas Votchen & Elio Struyf about “An IT Pro & a Developer walk into a bar – SharePoint Search Happy Hour” (a session that I need to have a look through the slides still) although I feel that on the day I made the right decision as the PnP Engine and some of the related PowerShell Cmdlets are proving to be very interesting for me – this is an opportunity for me to diverge from writing cmdlets/functions in actual PowerShell and write them in C# so a good learning opportunity, so I would expect to see more from me on this in the upcoming months.

After this I went to Wictor Wilén’s (@wictor) session on PowerShell DSC & Azure Resource Manager for Deploying SharePoint Farms like a Champ. This was a packed session and there were some great questions being asked by the audience which for me as a more inclined PowerShell guy was great to hear that this was a very much interested in subject for those with SharePoint Bias. One of my key takeaways from this session was that there is too big a gap in knowledge between someone that spends their time learning PowerShell to use as a dynamic language for multiple application administration to those that just want to use it for the application that they are managing. This means that to me there is a real need for there to be simpler and more structured training for those that will likely only use PowerShell for a very small subset of their work. However, that was my takeaway from the questions being asked by the audience, Wictor on the other hand demonstrated some really good and useful points on using DSC to build out your SharePoint Farm and I can only hope that more organisations take this on board in future and look at this as a real possibility (once the xSharePoint Module gets all of the core features built into it)

Next up for me was going to be a difficult one because again there were a few sessions that I wanted to attend – SharePoint Performance Monitoring & Troubleshooting and How to Secure your data in Office 365 – however I ended up going to the Search Queries Explained – A Deep Dive into Query Rules, Query Variables and Search Orchestration by Mikael Svenson (@mikaelsvenson) as I felt that I needed to think about some diversification in my knowledge and as everything covered in Mikael’s session would be stuff that in more development scaled role would be useful to me to understand the mechanics behind it. I certainly left the session wondering when I could try out putting some of this into practice and unfortunately like most things lately it has just not happened.

And lastly the final session of the Day that I attended was Jeremy Thake’s session on Building Slick Office Add-ins to impress your boss where we were shown a number of add-ins that are already available that will boost productivity for those that use them as well as a very quick demo on creating an Office Add-in which was made more entertaining by the fact that the whole demonstration was not being presented from Jeremys device.

Published: 15/11/2015 11:56

HaveIBeenPwnd – PowerShell Function


I recently became aware of a site called HaveIBeenPwnd – – run by @troyhunt and wanted to create a simple PowerShell Function for being able to check against this Database on whether your Email address (or like me addresses) has been likely to have been Pwnd!

The function is in a Module called Check-HaveIBeenPwndStatus & the current function is called Check-HaveIBeenPwndStatus with only the 1 parameter –Account in which you pass your email account across

So you would call it via Check-HaveIBeenPwndStatus –Account ‘’ and you’ll either get back 1 of 2 messages – A warning if it is found like the below

WARNING: We have your account marked as having been pwnd on the following sites 000webhost Adobe Black Hat World Flashback Gawker MPGH Stratfor – Please Check and change your passwords across other sites as soon as you can!

Or you’ll get back the following (obviously with your account details)

Although has not been found in this database of PwndSites we advise that you change passwords regularly for any other accounts that may be linked to for your own protection

Hopefully adding in this function into a profile script that will run once a month (or week or even daily if you need it) will save you some possible headaches in future.

You can find the module on GitHub at

Published: 04/11/2015 03:48

Scripts, Functions, Modules, DSC resources – Pick the right option!


This may become a bit of a controversial post and that in some parts in fully intentional!

This really should be giving PowerShell Users (looking at the admins of us all that just use PowerShell as if it were VBScript with no real community or practices) the opportunity to understand the problems with what they are outputting to “get it done” at this current time.

My issue is that over the last 9 years PowerShell has become a crucial tool to be able to manage at scale (and also singular machines too) and yet there are still some truly awful examples being posted each day on how to solve what is most times a simple issue which has already been resolved by others

This needs to change and change very quickly otherwise we will be battling inefficient and quite frankly useless code for many many years to come (look at examples regarding Server Side SharePoint Code for SharePoint 2007 on either CodePlex or StackOverflow– which can in cases still be used in SharePoint 2013 & even SharePoint 2016)

Ok so perhaps I have some biased views and this is all with very good reason I may add. In 10 years time my son will be at age where he will be looking at making his decision on where he wants to take his career (hoping IT). Now I may have a very narrow view but this is mainly because we are at a point where we can ensure that we have only the best examples that ensure that we can be as modular as possible in future as to allow for the highest reusability across platforms.

In comes the need for the community to step up and work on making sure that we extend only the best Modules which we ensure are hosted on the PowerShell Gallery for ease of installation and discoverability and that we have the modules all open source developed via repo’s hosted on GitHub. This ensures consistency to the development of them and really allows the wider community to contribute back to items that affect them day to day.

In 5 years time I would love to see there be multiple communities around the differing technologies that we have in the Microsoft world that reach out to the PowerShell Community to help ensure that outputted code is fully reusable and as modular as possible whilst ensuring that it is the most performant possible. I suppose my reason for thinking this would be that I can see the IT Pro/DevOps engineers of future being fully OS & application independent.

We are at a golden age to do this now that there is the supporting technology out there to enable us to do this although it could be argued that the technology has been around for well over 10 years but it is now much more accessible to all, Items like multiple person Video & Voice Conferencing with applications like Skype, Skype for Business, Cisco Webex & GoToMeeting, Instant Messaging across platforms including on mobile with Skype for Business, WhatsApp, Telegram, Slack etc and code sharing platforms including GitHub, GitLab, BitBucket etc

So firstly I would like to suggest that if you are a user of PowerShell for applications like SharePoint, Exchange, SQL to name a few and you are finding that you are writing lots of PowerShell to get a task done then I would suggest that first thing you should do is to search the PowerShell Gallery to see if there is an existing module out there that has that functionality that you require – there is the ability to search for Function Names but not a detailed search but I have raised an issue on Connect for this issue so hopefully this will be fixed soon – you can vote for it at

But back on to the point of the blog post and this is where it is likely to get a bit more controversial.

Firstly, we need to go back to basics and understand what we are scripting and why we are scripting it before we determine the method that we are going down.

No matter how many times we are looking to run a script we should be looking to modularise it into small reusable sections that we call in the correct way for use later on – by this I mean that if we aren’t ensuring a configuration then we shouldn’t be creating DSC Resources we should be creating functions within modules – examples for this would be for methods where there is no real need for having a Get, Set & Test functionalities – this is especially true with services that use Web API’s that invoke REST Methods that don’t really return a corresponding Object back to the user and some examples of this for me includes posting to Social Media like Twitter & Slack – these should be written as a function within a module as there is no benefit in my opinion to create a DSC resource just because you can create one.

So for items that you need to ensure are consistent like server configurations then you should be making DSC resources, if not then please don’t make a resource as in my opinion its making a resource for the sake of making a resource which is not really useful or beneficial to the community as a whole as it will start to muddy the waters on when to use the functionalities that we have available to us and we need to simplify the way we write the scripts of the future for the better – that means the best performant scripts that are able to be built using reusable blocks that do Just Enough Action with Just Enough Output that can then be reused with other functions and therefore other technologies.





Published: 03/11/2015 15:15

Quick Win – Install PowerShell Package Management on systems running PowerShell v3 / v4


This is a very very quick post about the latest feature being made available downlevel from Powershell v5.

As Microsoft have released PackageManagement (formally OneGet) that is now avaliable for PowerShell v3 & v4 as detailed in this link

That’s right the ability to pull directly from the PowerShell Gallery but you need to install the Package Management release which I’ve Scripted for you here.

And what better way than a simple 1 liner to grab and run the script

Invoke-Expression (New-Object Net.WebClient).DownloadString(‘’)

And if you want to look at the Script then direct link is – this takes you to the RAW version of the file on Github so will not download or execute – but will allow you to read it

Hope this is useful for you 

PS credit goes to @lee_holmes for the idea from following tweet

Published: 24/10/2015 05:01

#PSConfAsia – What an amazing experience!

So this post is a fair bit overdue and that’s because I’ve been very very busy as of late.

However let’s get right into it!

#PSConfAsia was an important event for me mainly because it was my first venture out of the UK in 20 years – yes 20 – which meant that I needed to sort out my passport – something that had been on my to-do list for about 6 years and it was my first real holiday EVER! It also happened to be very well needed and well timed venture abroad – for those that know me well will understand why the timing of this was crucial to me and perhaps for those that are still to get to know me better this may be something that I share with you in time.

So I had it planned that I would be in Singapore for a few days before the conference and that ended up being that I was in Singapore for 6 days in total which for my first dose of international travel this I think for me was more than enough – my previous “holidays” over the last 5-7 years have been a few days off at a time with almost no travel from the house so this was going to be a really big change for me.

The actual travel there was something I was a little anxious about due to me not knowing if I would enjoy flying or not. Luckily it seems that I’m not fazed by it at all and this has since lead to me looking to other events to attend/present at (more on this in a later blog post)

But #PSConfAsia was more than just a conference with a few days for holiday in-front of it for me – it was a chance to meet with an ex-colleague and also co-organiser of this event, Matt Hitchcock, which was a key driver for me to attend the event let alone put together a presentation for it.

So my travel to Singapore started off after #SPSCambridge as I was flying from Heathrow the next morning and on arrival to Heathrow and getting checked in I had the fun of being the guy randomly picked for Explosive Swabs checks whilst – You can imagine what was going through my mind at that point with it being my first every flight abroad.

The journey consisted of 2 7 hour legs and in between them a short layover in Abu Dhabi, luckily only for a little under 3hours which allowed me to kind of just relax a little and have a wonder round the Airport and have a look through the shopping areas. Also at Abu Dhabi the free Wifi was really slow so instead of any Social media catching up I watched some videos that I had prepped for the journey.

The Flights with Etihad were comfortable and had some useful amenities on board and in seat that included on board Wifi (unfortunately not free) a plug socket at your seat and also in seat entertainment system that also allowed you to chat with someone else based on their seat number – this could be a very useful addition to all flights and I would hope that the likes of EasyJet etc will install these on their flights soon.

However once I got to Singapore I had the conundrum that I would be without data or calls (not paying the silly roaming charges) but luckily for me I had researched about this before I had left and Singapore has a great selection of Tourist mobile sim offers that typically include upto 100Gb of 4G data with local call and texts for upto a 10 day stay for the equivalent of £15. That’s just amazing value and is indictivative of how advanced Singapore is in terms of its Infrastructure.

There was also another great thing in Singapore that anyone visiting should take advantage of. This was the Tourist travel pass which at roughly £15 gave you unlimited travel on buses or the Singapore MRT (like the London Underground/Overground systems) but this could also be replaced after 3 days with another one so I made good use of it to see as much of Singapore as I could whilst I was there and I did manage to see a fair amount of Singapore but still have other places to see too J (for the next visit).

On the Monday I decided that I would head to the hotel and drop off my luggage, have a nap and then make my way into the Centre to see where the Microsoft buildings were and have a general touristy nose around. I also on that day decided that I needed some comfort food – What better than Singapore McDonalds – who will deliver as well which is a little mad considering that they won’t in the UK.

However most of the fun started to slowly build from the Tuesday evening as that was when I got to meet Matt & Milton (another of the Organisers) for some food and drinks in the city area, which was a great experience and made me realise how expensive any kind of alcoholic drink is in Singapore with prices ranging anywhere upto £13 a pint. Owch!











Wednesday started Early as another one of the Organisers Ben had arrived late on that previous evening and was in Singapore for work both Wednesday and & Thursday and he mentioned that he was heading into the office early that morning so I tagged along with him and he showed me what a typical breakfast was in a local restaurant in the centre. I have to say the Kaya Toast was really tasty and I’ll look forward to it when I next get chance to over there. Also whilst at breakfast I got chance to try out local coffee as well and again was not disappointed at all. I then spent most of Wednesday just being a tourist and seeing some more of the areas of Singapore (whilst riding the MRT and downloading Windows10 as I did so – gotta make use of my 4G data somehow) and then made my way back to the hotel mid-afternoon as to meet up with the organisers & some of the other speakers that had arrived – which included Ferdinand Rios from Sapien, Narayanan Lakshmanan from the PowerShell Product team, Benjamin Hodge from Kemp (also Organiser), Milton Goh (Organiser), Matt Hitchcock (Organiser) & Jaap Brasser and below is a picture of us all on that night.


















As you can see we had a great time J

This was just the Wednesday night!

On the Thursday I met up with Gokan Ozcifci A SharePoint MVP who I’d briefly met at SPSLondon and was also speaking at PSConf and went and did some further sightseeing of Singapore which was goo as we managed to get around the Gardens at the Marina Bay Sands which was great fun to go round and see everything there. We also went to the SkyPark on the Marina Bay where you can see some amazing views including this cracker of a one below.





We then had a small gathering that evening with some of the Attendees and a few of the other speakers too.















And then the Friday (and the beginning of the Conference) and what an amazing day that was – I decided that I would go and meet Ravikanth Chaganti & Deepak Dhami at the Airport as they were flying in early that morning. I must say I am glad I did as it was a lot of fun meeting the both of them and having some time to engage with them on a more casual basis than it would have been at the conference. It can be seen below as to the fun that we had – I even set up my laptop to be an interactive Display board similar to the ones that the Taxi/Chauffeur drivers have as can be seen below.
























Though Deepak didn’t know that I was coming to meet him so walked right past without even realising – Luckily Ravi Had arrived a little earlier so we managed to between us get his attention and then we headed to the hotel to let Ravi & Deepak check in, get ready and then we arranged to head to the Venue.

Now we arrived a little bit through the Keynote by Jeffery Snover but I was still able to get a quick chance to give him a personal thanks (even if the session was via a Skype call) as can be seen below (Thanks Jaap for the picture!) It is without a doubt that without the Invention of PowerShell I would not be finding a career in IT as fun as I currently do and will likely do so for many more years to come!

















Now throughout the day I had chance to chat to most of the presenters and some of the attendees and sat in on a few sessions where I could. After the day wrapped up there was an organised speaker’s dinner which was just fantastic and set in a great location with a great view over Singapore. However I had to leave the dinner early due to having not slept very well the last few days leading up to the conference.

I then as per usual for me when I’ve not slept very well (been like this for well over 12 years!) I find that I end up having a ridiculously long sleep – in this case almost 14hours and is typical that it happens on a Saturday as well! This then meant that I missed all of the morning’s sessions as well and arrived to the venue just in time to give my session which unfortunately I had a bad case of the Demo Gods Wrath! I’ve yet to revisit and restructure my session but this is on my to-do list for November! After my session there were a few other great sessions in which I need to get back myself into them in more depth – including Pester testing – my annoying phrase from PSConfAsia for the following week was definitely ‘Let me Pester you about that later’ or some other Pester related variant.

We then had a great after event food, drinks and prize giving event afterward at the truly most English pub possible outside of England and it was a great event. This below has to be my favourite picture from the after event (other than the picture in picture in picture in picture that we took) with Jason Brown from (attendee / guest DevOps Panelist) and Sebastian (attendee that won the F1 tickets)














We then after that night had a few of us meet up for a final lunch in a great little Indian in the Little India suburb of Singapore where Ravi made sure that we had some great food whilst we had the chance to.
















After we left we went and had a relaxing few drinks in the Singapore sun and then we had to make our way to the airport as it was time to get ready to depart and I was luckily enough to get even more time with Ravi to discuss a certain upcoming DSC project of mine and it was great to get some more insights from one of the most well known in the field and I was lucky enough to get myself a selfie with him (and I’m not a photo taking person) at the airport before we had to depart to board our separate flights.





















All in all the 6 days I spent in Singapore was an amazing adventure and it is one that I am hoping to be able to partake in again next year – hopefully it will be as fun filled as it was this year and I have been lucky to have made some amazing friends from it and I cannot wait to catch up with them all again in the near future.

SPSCambridge – Much more than just Technology


​Well this weekend was an interesting one in which I was able to partake in some really great sibling events to the main day which was just utterly fantastic to be a part of.

The SPSCambridge/SQLSatCambs event has to be one of my favourite one to have attended recently due to the bringing together of both SharePoint Content and SQL Content under the single roof – and let me tell you it worked fantastically – Kudos to Mark Broadbent for the Ochestration of the whole event as events of this size arent easy to organise and co-ordinate.

Being able to spend some time with other IT people as part of a different technology lets you understand the differing issues that they see and especially becomes more interesting when its a technology that is crucial to all SharePoint Deployments out there.

I didn’t get the chance throughout the day to really connect with the other guys but did manage to catch up although briefly with some of the people that I met at SQLSatManchester which is what makes events like this great for me.

Now the day before the event for me was eventful – starting at 7am to go and pickup a hire car and when I got there I had a notification that my trusty laptop had been attempted to be delivered – so that ensued me to call up the courier and ask them if it could be delivered later on that morning – luckily it could so that meant that I would have it for SPSCambridge (and also PSConfAsia) – however it meant that I would need to reinstall all my Applications and force the upgrade to Windows 10 – Not my idea of fun whilst worrying about travelling/presenting.

However my day got more interesting as just as I was about to leave for Cambridge I had a message of another Speaker – Andy Talbot – who was about to jump on a train from Crewe to London and then to Cambridge. Well I said that I’d pick him up from Crewe as it wasn’t far from me and that made the journey much more interesting – else I would have just listened to Metallica the whole way.

That kind of covers the journey to Cambridge – bar getting lost in the city centre and driving around before deciding to get the trusty “Twat-Nav” to guide us to where we were going. Then once I dropped Andy off at his Hotel I headed to mine – nothing fancy and just a Premier Inn but it was just what I needed for the night and had free Wifi too – which helped.

So once I had settled in and got showered it was time to head to the Speaker Meal and as Brendan Griffin was also staying at the Premier Inn we got a taxi in to Cambridge to join the rest of the speakers at the Gonville & Caius College in the Centre of Cambridge. What a fantastic Venue it was that really did set the scene for the rest of the weekend with Cambridge being a very vivid and interestingly historical city.

Once the Speaker Meal had come to a close there were a few of us that continued into the city to get a few more drinks – myself, Andy Talbot (because well its Andy), Brendan Griffin & Chris Adkin – and it was a great couple – Nothing to heavy as both me and Andy were presenting first thing.

Then we move on to the rest of my evening – You can imagine the annoyance of setting a laptop up ready for a presentation the next morning and I was very lucky that my Prep included not much more than installing Office, a few slide deck changes and then downloading and installing the needed scripts and dll’s and that was me ready to present and being first up it meant that I needed to ready.

So needless to say that I was prepared however there was a state of panic when I got into the room and the projector didn’t display anything – hiding in the cupboard (not that you would have know it was a cupboard) was the remote for the projector and once switched on all worked out grand.

I had a good number join my session which allowed me to vey much open the session into a more dynamic and interactive session with there being some great questions being asked and I hope that the attendees took away from the session the intended giveaway and that is that SharePoint really can be used to automate and track any type of request whether this be an IT Request like a User Request or a Business Process like a Holiday request.

As I will also be presenting this at SUGUK West Midlands on September 23rd I will release slides and accompanying scripts including a fully functioning Script for the User Request after this point.

Next up throughout the day was the community interaction and as per usual with these events I ran into others from previous events but also lots of new speakers/sponsors/attendees as well. Without all of them these events wouldn’t be possible or worthwhile and it is for that sole reason alone that I attend these events let alone present at them.

I was lucky to get into 3 of the sessions that I wanted to –

  • SharePoint Business Continuity Management with SQL Server AlwaysOn – Brendan Griffin
  • Office 365 – The Art of the Possible – Al Eardley
  • Visualising SharePoint and SQL Data with Visio Professional – David Parker

However there were plenty more sessions that I had wanted to attend however until they invent the ability to clone yourself into 4/5 then I’ll have to miss some great sessions at events like this.

Now that takes us away from the event itself to the after event events. First off there was the prize ceremony in which some great prizes were given away. We then had a casual drink at the venue and then moved onto the beginning of the main after event – Punting.

Now Punting was a great experience in which we learnt a lot about the history of Cambridge and it is something that if your ever in Cambridge I would advise on getting on one of the Punting trips – great fun!

We then went for a drink in a nice local bar right by the restaurant that we were heading to and were there for an hour or so and the conversation from the day continued.

We then were at this lovely Thai place and Peter Baddley stepped up to make sure that everyone got the right meals – lets just say that organising 30+ meals will ensue in some hiccups however all went pretty smoothly and there was even a spare starter going which I nabbed. The food was all fantastic as was the service considering the size of the group and I would definitely go back there again – so perhaps there will be more calling for me to spend more time in Cambridge in future – who knows eh?

Published: 17/09/2015 00:17

PSConf – Where even the speakers will be learning!

So to set the scene a little there has been some discussions between some of the Speakers about what PSConf will be like for them and I’ve been revisiting the schedule to determine which areas are of the most interests in my opinion to the following categories of attendees



Possibly new to IT and looking at understanding what has in the last 2+ years become a much more critical component in IT systems administration



Potentially has been using PowerShell mainly in a supporting manner for one of the core Microsoft technologies that have embraced it – SharePoint, Exchange, Active Directory etc. and is now looking to further their skills across a wider scope of technologies



Most likely have been using PowerShell for day to day systems management of multiple technologies and is not afraid to get into the nitty gritty of how it all works under the hood and very much likely to be handing experience back to the community via Blog posts and technology conferences like PSConf.


So I decided that really this was much more than just a Simple Tweet – so this had to be a blog post.


Firstly as a speaker there are always some additional benefits to those presented to the general public – like the pre / post event shindigs which are always a great opportunity to have some further discussions on a technical level or even on a more personal level. Having been to the SPSLondon events I enjoyed the ability to understand the variances to the community and realised rather quickly that at 25 I certainly was in the lowest age bracket but that did not stop me having an enjoyable time whilst there.

As a speaker at events I am very aware of the fact that the events are for the community and that giving to the community means much more to me than finances – I do these off my own back and will do so for (hopefully) many years to come so that I can continue to learn from the Community in how they are advancing their skills on a day to day basis.


However back to the point behind this post – as an Attendee of one of the 3 levels i suggested above this event will be a great event due to the variation of levels of content being presented and I’m reading through the schedule (see below) and I am really wishing that I had the ability to split into 2 to attend multiple sessions as the content being delivered here will be of top quality and is really not to be missed.




Now there are a hell of a lot of great sessions but the ones that I feel will be the most benefit to the newcomers to PowerShell would be the following

Day 1

Understand where PowerShell is now and what the Future holds for PowerShell – A must for all Attendees

Gather an insight into the power that is available to IT Admins when using PowerShell Desired State Configuration – The main underlying topic behind the PowerShell Conference

As a SharePoint Person I feel that this one had to be included – With Office 365 organisations that would never have thought of deploying SharePoint will now be looking to take advantage of this immersive platform and this should be an ideal session to show the power that is available when you combine SharePoint & PowerShell

Day 2

For me one of the biggest issues when learning how to code/script in PowerShell is that it can become a messy nightmare rather quickly and this session should be useful for all looking to understand how PowerShell code/scripts can be easily read for when you come back to it or when you pass it to another colleague (or even the community)

One of the most talked about topics at the moment outside of the PowerShell world is the Open Sourcing Models taken by different organisations (Microsoft included) and this should be a great session to introduce the benefits of Source Control and Collaborative programming

  • Manage Office 365 and Azure AD with PowerShell by Jaap Brasser

As more and more organisations, especially start-ups, are looking at ditching the On-Premises servers this should be a great session for those now looking to manage this technology and will be very much worth attending.






Now in a similar manner these are the sessions that I feel will benefit those in the Intermediate category

Day 1

  • Building PowerShell GUI Tool Solutions by Dr. Ferdinand Rios

Anyone that is not a PowerShell person loves their GUI (Graphical User Interfaces) – and this sessions will show you how to can create these yourself using PowerShell as the underlying technology behind them

A more in depth look at how Infrastructure as code as solution can be really adopted within an organisation to bring real time benefits

As Azure is becoming more and more prominent for organisations to take advantage of this should be a very interesting session looking at how making using of the reusability of PowerShell to provide a much more useful and consistent model for implementing solutions quickly and at scale.

Day 2

This for me is one of the most important sessions of the weekend and rightly so as within this session you will be learning from one of the PowerShell Product team – A rare opportunity and not to missed.

  • New PowerShell security features and threat management by Jaap Brasser

PowerShell has unjustly been given a reputation as being an unsecure technology and within this session you will learn about the most recent additions to the PowerShell feature set and will leave this session with a much clearer and more focused view on the way that PowerShell is a much more secure as a technology and how it integrates with other security technologies as well.

  • How to Unit Test your PowerShell Code with Pester by Deepak Dharmi

Unit testing is a critical component when dealing with any programming language and in this session you will learn how to build and implement Unit Testing into your scripts






Now there are a hell of a lot of
great sessions but the ones that I feel will be the most benefit to the
newcomers to PowerShell would be the following

Day 1

Getting into the real deep understanding of how DSC works and as an advanced session this will one of the most integral to getting the most out of the PowerShell Conference

Day 2

This is a session that to me will allow those that are well versed in PowerShell to look at expanding PowerShell by understanding how to make more use of underlying .NET within PowerShell


This should be an interesting session for those that wish to learn about systems management that doesn’t typically span the Microsoft stack and should give the attendees the needed inform them on how they can leverage API’s for systems that they manage whilst using PowerShell

Now its taken me 3+ hours and countless revisions of the above to get where I feel is the most useful for a singular attendee however this is based on my own personal experience and may not be quite right for yourself but the key take home from here is that everyone that attends PowerShell Conference even including the speakers like myself and even the MVP’s will be learning at this event.

However I would stress that if you were to attend as a group then this really does change everything and gives your organisation some amazing face to face time with the Speakers and other Attendees too.

If you are thinking of attending as a group then there are some discounts available depending on the group size

3 – 5 = 10% off
5 + = 20% off

So please drop myself an email via and I will look to arrange to get you sent a discount code.

Coming to Manchester October 13th – Get-PSUGUKMan


I’ve been pondering for some time about getting a Manchester PowerShell User Group up and running and about a month ago I said to myself – Why not just do it.

So I did !!!

The first Manchester PowerShell User Group – which in keeping with the existing UK PowerShell Get-PSUGUK – is being called Get-PSUGUKMan and although I’m in the very basic stages of getting this sorted I do have a venue sorted and also 1 of 2 sessions already put together with hopefully a second to get confirmed in the upcoming weeks.

I plan that this group will meet either monthly or bi-monthly and will start of with its first meet up on October 13th at SpaceportX in Manchester.

Initially the group will be kept to topics that cover PowerShell as a technology in its own right however as this will be a community event and due to the nature of PowerShell having capability with many other applications we may open this up in time or have guest sessions depending on the whether this seems a suitable course to take.

In the meantime I have set up the following

Get-PSUGUK Yammer Network

Eventbrite Registration Page

@GetPSUGUKMan Twitter Account – Follow for updates on the events

Please spread this around as much as possible as I’m hoping this will be the beginning of more local PowerShell communities across the UK and also the beginning of bigger things for the UK PowerShell community

I’ll hope to see you at the event where I will be starting the night with a discussion point on DSC and will provide some learnings to the group from the PowerShell Conference in Singapore only the month beforehand.

Published: 19/08/2015 18:45

September 12th – A Mammoth day of SharePoint & SQL!


​So in just under 5 weeks we will have upon us a great event.

The combination of a SQLSaturday and a SharePoint Saturday all under the 1 roof at The Moller Centre, Churchill College, Cambridge.

This isn’t the first time an event like this has happened and it is unlikely to be the last time it happens either – but for me this is a first.

Its a first for a number of reasons – not only is it the first joint SQL & SharePoint event I’ve been to but it will be the first that I’m presenting at!


I will be writing some blog posts that cover the content for at the event and will post these after the event including links to any materials that I will be handing out.

Considering that I really only caught the presenting bug back in April of this year at my Local SharePoint User Group this along with SPSLondon is a big step up in the community events and I am really looking forward to the day and more so to get the response from the audience.

I intend to have a short survey for after the session as to allow me to gauge potential improvement areas – something that I’m very passionate about is giving and receiving feedback and with every event like this I believe that feedback of any type can be used to improve the following sessions.

There will be a lot of really great sessions there and its events like this where I look at the schedule and think “I need to clone myself for the day” so that I can attend all of the sessions that I’d enjoy attending.

For me that is the crux of events like this – its not just a simple divide between attendees and presenters. There is nothing stopping an attendee becoming a presenter and that is where the local user groups are a great starting ground and I would highly advise having a short chat with the organisers of your local user groups (be it SharePoint, SQL, Exchange, PowerShell etc) about giving a presentation to the group.

You may find that you enjoy being a presenter (like i have) and wish to continue down that path or you may find that its not for you. But what i do know is that the organisers of the User Groups will be accommodating of you if you choose to go down that route.

For more details on the SQL & SharePoint Saturday please visit the below links

SharePoint Saturday Cambridge

SQL Saturday Cambridge

I for one would like to see more of these joint events take place even if it is just one a year and a big shout out to Mark Broadbent @retracement for the organisation of this epic event and giving me the opportunity to give back to the community yet again this year.

So lastly if you see me at the event come and say Hi and tell me a little about your reasons for attending.

See you there!


Published: 10/08/2015 02:06

Preferred Contact methods – Why I have these in place!

If anyone reads my blog that knows me quite well and has spent some considerable amount of time interacting with me then you will probably know that I have preferred methods of contact – and with good reason too.


Now I have a few rules that I stick to meticulously because of previous annoyances i have had with Telemarketers etc and these include

  • Not answering “Unknown” or “Blocked” callers
  • Google Searching numbers that I do not have stored in contacts and then deciding if I am to answer the call
  • Typically not answering between 9-5 as that is my employers time and it is distracting
  • Not answering if I’m not expecting a call
  • Expecting a Clear and Concise reason for the call with a Name and contact number or better still and email address

Now I don’t feel that I’m being unreasonable in the last one – After all we are all busy with many different priorities and lets face it unless its an absolute emergency then is mobile contact the best first initial port of call.

No and it never will be!

Some companies in various sectors need to learn this not aptly

  • Debt Collectors
  • Sales teams
  • Recruiters with the age old (I’ve been passed your CV but i’ll try again tomorrow)
  • PPI claims teams – Hint I’ve never had PPI so why waste your time
  • Generic Marketing teams
  • Utility Companies (kind of Sales)
  • Banks
  • Insurance

Note the majority of these calls have a financial intent from the call and these really bug the hell out of me.

So to reduce the levels of nonsense that I get via calls Ii ensure that contact information for my contacts that I have is kept up to date and as a common courtesy I try and ensure that I do the same when required.


So heres the reason behind this rather ranty post – I’ve been getting calls from recuiters this last few weeks around jobs going in the SharePoint space – and dont get me wrong I welcome the consideration however it has to be to my terms as so that I can effciently understand the important aspects for the interaction with myself.

If there is no Role specification that can be emailed to me then realisitically theres no further point in furthering communications – this also applies to these roles where there is a blanket salary response similar to “Market rates” – This is a single most reason why I have in the past either not applied for a role for turned a role down and I will not be the only one.


So I hope that when people and recruiters especailly read my Profile that they recognise that there is a dedicated section that explicitly states that people should Email me. This is because it is the Single most effective way for me to attain, injest and revisit any information that your may have for me.


I’ll look forward to your emails in future instead of you straight up calling me, as that is how I prefer to be contacted.

User Groups – Its not all SharePoint

This week has seen me attend the SharePoint User Group in Leeds on Tuesday in which there were presentations by Hugh Wood from Rencore and Garry Trinder from ID and then the LeanAgile Meetup in Manchester.


But firstly before I go into detail about the events lets take a step back and set the scenes leading up to them both.

For me any community event whether it be SharePoint User Groups or the LeanAgile meetup or the bigger events like SharePoint Saturday’s & SQL Saturday’s the main aspect for attending these events for me is that you gain an insight to how others in other organisations are working due to the inherent knowledge sharing that occurs at these types of events and I do my best to try and drag others along where possible.

I do this as its much more fun especially during travel to or from events with a friend than being the typical “headphones in and world out” type that I very much am when travelling to these events or even just in general travel and I only learnt about events like these because someone else within my network told me about them and I feel that its only my duty to further share this knowledge – After all “Sharing is Caring” as Vesa Juvonen would say (the Office365 Dev PnP Program Manager)

So this leads to my travel from Manchester to Leeds for the SUGUK group on Tuesday and I had prearranged to travel to Leeds with none other that Kevin Moss – My favourite Manchester based recruiter. A lot of the people I have worked with have a lot of hate towards recruiters and I think that this is due to unfortunate experiences that they may have had with 1 or 2 in the past and especially in a contractors world you have to keep in mind that a good recruiter should be high up there on your list of SharePint buddies – you never know when a role that is on their books may be a perfect fit for you and I can guarantee that keeping yourself in the recruiters good books will stand you in good steed for that role.

Sometimes it really isn’t so much about what you know but who you know – and Kevin is a great guy to travel to an event with and I’m sure we will end up at other SharePints and travelling to other SharePoint events in future and continue on some of the more interesting conversations that we had started.


Now onto the SharePoint User Group where both Sessions were very much developer focused and this did lead me to having a lot of questions that spurred off some very good discussions with not only the presenters but the audience got really involved – which is always a great experience to be involved in.

So the even started with Garry presenting on Building Client side components – Now as a PowerShell Guy for me reusability and upgradability are key factors to consider with anything that you build to reduce the need to build it again and again only changing a few little options. Garry went into some considerable detail around this and even though this was only his second – Yes Second – time presenting this topic he really looked like he was at home.

He was calm and relaxed and although you could tell he had some nerves, he did not this phase him even when he ended up having some VM issues. I will certainly look forward to further presentations that Garry gives and hope to see him at future events.

Now on to Hugh – and well Hugh did what Hugh does at any event and presents like the seasoned pro that he really is. The first event I saw Hugh present was the SUGUK North West Developer day and just like then Hugh did not disappoint.

Hugh’s topic of choice for the evening was one that I’m pretty sure went down well with the crowd and there was a lot of interaction with this topic as well. Myself not being a C# kind of guy (currently – I may add) was coming into this session with a very minimal amount of knowledge in this area – yet it was interesting to see in a demo that Hugh did – using an application he had built himself – to see the differences in how C# and JavaScript are structured.

I’m almost certain that the more developer focused in the audience would have gained a lot more from the session than I did however I still walked away feeling that in future if I end up going down both the C# and JavaScript routes that I would be more capable to differentiate between the two languages and hopefully not make some of the mistakes that can be made.

As per customary with all the SharePoint User Groups we headed downstairs (as SUGUK Leeds is located at The Adelphi which is a great venue) and we proceeded to have a SharePint or 2 where the discussions on the night and SPSLondon and other events did go down a treat. The Organisers Paul & the 2 Simons do well with the Leeds event and it is starting to seem some really good turn outs and I must say that I’m looking forward to the next one on September 1st as its a special one for the Group as its the 1st year Anniversary

However it wasn’t all SharePoint this week. I also attended last night the LeanAgile Meetup group in Manchester- LAManc – and this event was a bit of a special one as this was an abstract of the SAFe Planning In Action Framework sessions that Nick McKenna would normally do over 2 days – yet we tried to a lot of it in just 2 hours – which lead to a manic but fun filled evening.
I wont try and go into a lot of detail about this event due to the almost quite overwhelming amount of information that was thrown around but it was one of the best events I’ve been to that has had nothing to do with SharePoint just due to the sheer amount going on.
However to give a brief intro into the session we were split into 4 teams each tasked with detailing a feature for a website that required search functionality, purchasing functionality and then various other aspects which included commenting on purchases.
My team got the feature that detailed the need around purchases with a Credit Card and we were given 4 user stories and 2 technical issues, however as we found there were a lot of the user stories missing and we found that we added a fair few more in as well.
The evening went really well with lots of interesting discussions on how this way of working can really be beneficial especially across teams with interlinked tasks and it really invoked a deeper sense of pushing priority tasks that had dependencies on other tasks and getting all of those done first – If possible!
I’ll certainly be back to LAManc and would encourage others to do so as well.

SPSLondon – A brilliant although challenging weekend

So this Saturday saw SPSLondon come upon us and like any other event like this it brings with it some very interesting and difficult decisions on which sessions to attend.

As an attendee I would have found it very difficult to decide on which sessions that I would have attended – but to then add to that as a presenter and you​ can imagine some of the additional headaches that can and in my case did happen.

However lets back step a little and actually go through some of the pre-event activities that I had to go through and what better place to start that Monday night / Tuesday morning.

So I was asked at about 11pm Monday night to present at SPSLondon – Now if I’m in bed at that time its rare and Monday certainly was not an exception to the norm and I was actually in mid progress of trying to 100% Song 2 by Blur on Guitar Hero 5 and just like I had been trying for a few weeks before hand.

Anyway the news left me being ecstatic and there was little hope of me being able to sleep easily that night. So I did the next best thing and decided that I would try and stay up for Todd Klindt’s Podcast – which for me in the UK is at like 2:30 am due to BST (such a pain)  I have to say that I have really enjoyed each one and yes I’ve attended a few now.

Todd had Kirk Evans @kaevans on as a special guest this week and I have to say the two of them really compliment each other whilst doing these types of shows and if you get the opportunity – I mean have a Monday night that your finding it difficult to sleep – then catch Todd’s Podcast as I know you’ll enjoy it.

So that ended my Monday and Tuesday wasn’t an eventful day – being quite tired it ended being a very much coffee & Red Bull fuelled day.

Wednesday is where the fun started to begin – I realised that all my travel plans would need to be thrown out of the window and revisited – mainly to ensure that I could attend the Speakers event on the Friday night so that lead to me messing around with trains etc for the travel down – luckily I did not need to change my Hotel else that would have been even more disastrous.

Thursday came a bit of a mad panic at work about ensuring that I could take Friday off to travel down early and get sorted etc and relax a bit before the event. Luckily my manager was and is very accommodating for these things and had no problem with agreeing around it.

Then on Thursday came the first of a few mistakes that I made. Firstly I arranged my revised train ticket as a Single though I only really realised that this was my first mistake on Sunday when I was planning to come back earlier than another ticket I had already purchased.

Secondly I was in London for almost 2 days – So why did I feel it necessary to pack 2 Laptops, my tablet, 3 external hard drives with VM’s and videos etc and then pack 7 different shirts, 4 different pairs of trousers, 3 pairs of shoes and enough toiletries to last me in London a month. I also stupidly packed food & drink for the weekend – granted only things like crisps, sweets and a few cans for the trains, but in reflection this was unneeded and I will revisit it for any future events that I attend/present at.

The Third mistake that I made wasn’t really the third mistake – in fact I should really say that this was the Second mistake and it goes back well before last week.

In fact it would be simpler and more accurate to say that this mistake was the choice in the session.

I say this in hindsight as I knew that it was never going to be a very popular session – I even would go as far as to say that the session was pitched at the wrong event completely and wasn’t really a best fit for the event. However to have been chosen to present this session at all was an honour especially seeing as there was so many great sessions and I was lucky to get chance to get into a few of the ones that I had wanted to get into however there were a few that I had to miss due to timetable clashes – which is to be expected at events like this.

The final but more adequately described as the first mistake was that as a person that has badly suffered over the years with varying levels of social anxiety and is still very much struggling with it ( this is my first time admitting this openly in any form at all – I haven’t even verbally admitted this to anyone ) to put myself under the pressure of presenting at National event like this has been a strenuous and stressful experience for me and I was in panic mode all weekend though I’m sure that it didn’t come across that way – all I can say that the flow of drinks in the speakers do and the after SharePint certainly helped it not be at the forefront of my thoughts and helped me just enjoy the weekend.

I have been doing what I can over the last few months to help me to relax some of the social anxiety by attending more of the SUGUK user groups across the UK – I’ve been to all the NW events this year as well as attending Leeds & West Midlands too. I have also attended the LeanAgile meet up in Manchester as well as a smaller one in my current town of Macclesfield called Digital Edge.

I am intending to attend other events where I can as to help alliviate this being a pressing issue though it originated when I was at Secondary School – so its been an issue now for well over 10 years but its only recently started to become more managable and that is because I’m pushing myself to overcome it.

That being said the weekend has been one that I have enjoyed the whole way because everyone that I’ve met this weekend have all been fantastic and as I tweeted on Sunday – SPSLondon really reinforced the value of the community to me and I feel privileged to have been a part of the initial history of SPSLondon and have enjoyed meeting everyone involved and will continue to do so for many future events to come in which I hope that over time I will become more at ease at being around these events and be seen to be less “head in the clouds” and essentially being a disorganised chaotic mess as I was on Saturday.

I finally must give it up for all the Speakers, Sponsors, Volunteers & Organisers at SPSLondon that made it such a success and to all of them that I did not introduce myself to due to being in panic mode I hope that there will be other times to enjoy their company under better personal circumstances at future events.


But most importantly – Thanks to all of the attendees of SPSLondon including those that attended my session even though there were in my opinion better sessions to attend at the same time.

Events like SPSLondon wouldn’t be possible without the community having a desire for these events. So will you see me at SPSLondon 2016 ? And will I be putting forward to be a presenter ?

We will just need to wait and see!


My slide deck from my session is availble at SUGUK & SPSLondon Side deck

Late Callup – Presenting at SharePoint Saturday London

Monday was a pretty eventful day for me – and certainly the most eventful Monday I’ve had in a number of years.

It all started with up very early, like 3am early, getting ready for the day ahead and then realising I had managed to loose my house keys. So after a frantic half hour of searching for them – I gave up and left the house to go catch the 06:22 from Macclesfield to Manchester so that I could get into work super early and get cracking on with some of the help for the PowerShell functions of SPCSPS.

That was the plan – however that wasn’t the case  and for a number of not very interesting reasons I didn’t manage to get started with the help writing so hopefully after this weekend I will manage to get properly started with it.

However late Monday brought some interesting news about SharePoint Saturday and a opening for me to present my session which I have taken up and I am just finishing off the bits required for the session –  which I’m really looking forward to.

Saturday is going to be an amazing day with there being so many great speakers and so much amazing content and although i was already looking forward to the event as an attendee – I’m now looking even more forward to it as an attendee & presenter.

If you have the chance to get to SharePoint Saturday then I highly recommend it as it will be a great FREE event.

Details about SharePoint Saturday can be found on the following link SharePoint Saturday London


If you are there and see me about – come and say Hi as these events are a great networking opportunity and for me that is a key driver to wanting to attend and present at events like this.

Beware possible Email Loss – Dirsync and Unique Circumstances


Recently I had a Unique scenario – this was caused by a need to decommission an old server of mine that was running Server 2008 R2 (and was the only Domain Controller) and upgrade it to 2012 R2 – unfortunately on the existing hardware.

* Spoiler Alert  If possible always virtualise any DC that is either a SPOF or is to be upgraded so that you can in the worst case revert to it if required *

Now as I had to reuse the server I had a few months ago killed off DirSync from the server and carried on with “In Cloud” Identities – which was fine until this weekend when I rebuilt the Domain​ and had a few small changes that I needed to make – Mainly the FQDN of the Domain to remove an unnecessary .com addition (rushed deployment 3 years ago at night – I’ve learnt since then) and a change to the NetBIOS Domain Name – to shorten it.

All in all when I recreated the domain with the right users in the Domain – including the one for my main Email – this started throwing up errors due to the following attributes

  • Mail
  • UserPrincipleName
  • ProxyAddresses

Following an article online in regards to forcing a Cloud Identity to work out that there was an On-Premises replicated object it specifies that you should make sure that if the Online User has an Exchange Mailbox that you set the Proxy Address to be the Email Address for this mailbox

Well I did that – and it failed for almost 3 hours of forced DirSync replications.

So I renamed my Online User’s UPN to one that doesn’t exist in the On-Prem AD so that it would get around this issue and lost a lot of emails (which i should have exported but oh well)

Hopefully you won’t have this happen in your scenarios however this is just a be Forewarned type Blog post.

Thanks for reading 🙂

Published: 06/07/2015 13:30

SharePoint 2016 – MinRole or PS DSC?? My quickly jotted thoughts

​If your coming across to this blog then hopefully you are aware of the new features coming to SharePoint 2016 and in this case I’ll be looking at the new Min Role feature.


Now in essance this is a good thing however there is the seen arguement that this really will be for the Large Scale farms of anywhere between 10 – 100 SharePoint Servers.

The ease of being able to configure a New farm server – perhaps to replace another failing server or just to provide that additional capacity – and to from configuration tell it what role to perform has been available by utilising PowerShell Desired State Configuration or even using AutoSPInstaller and although this seems to have a similar purpose there are some fundamental differences


For MinRole

  • Built Directly into the SharePoint Code base – This provides a more natural feel to it and can be utilised by a Non-SharePoint admin (if SharePoint 2016 Foundation ever gets released – Though its not looking like it at all )
  • Role specific health monitoring – Now this is both a positive and a negative in my view – The positive is that this applies the right health monitoring rules that are specific to the role however, and I hope that the next few months when more announcements are made this worry will be put to sleep, this could Automatically cause issues when services are identified as running on a server that they shouldnt be and then will Automatically stop them. This was something that from what I’ve seen so far isnt particularly clear and therefore we will need to see how this pans out.


  • May actually be more beneficial for the Generic Windows Server admin – I’m thinking the smaller shops that maybe have a Foundation Install instead of being littered with Shared Drives
  • More Versitile than MinRole – as you could have a smaller farm and MinRole seems a very much Medium/Large Farm scaled solution.

For AutoSPInstaller

  • Overlooked but this is a good use case for the Dev/Non Production scaled farms – Talking here of a Half Capacity farm for Pre-Production.
  • Easier for the Non-SharePoint Admins to work with – Good for dev Environment set up for consistency with other devs in the Organisation

Overall I think that it is premature to determine the best solution going forward for all outfits


However the fact there is now further choice means that its a step in the right direction – Choice is always a good thing and I for one will look forward to hearing more about MinRole


Tracking updates to GamerScore – Xbox Live – Blowing My Housemates Mind

Well it had been an interesting few weeks and in my current house we have just had a new housemate move in who fits in really well with the rest of us.

We discussed in the initial few weeks what we all did and naturally it brought up that I work within IT and enjoy (when I can) to have a few games on the 360 – Mainly Call Of Duty and a few others (Guitar Hero is another favourite)

Naturally as time progress this brought up a state of competition when it comes to Xbox – He is amazing at Guitar Hero and I’m slowly getting better myself too.

However the point in this post is to detail about what he was upto currently.

So as we came into May we had discussed about Xbox 360 and Xbox One games and he told me that he was starting a Gamerscore Competition with a friend and that he wasn’t sure on who was currently winning.

So I said to him “I could write a script to track this for you and then email you with an update on whether you are winning or loosing and by how much”

His response was almost priceless – ” Really can that actually be achieved!!!”

My response was of course it can – I’ll just use my IT Techy Skills and we will see what we can achieve.

So as per my usual stance with things like this I get a few further requirements from him and these included


  • Getting a daily Email with the current standing – Who was winning and by how much
  • A daily tracker of the amount of Gamerscore achieved each day – this was for low level trend analysis.
  • The other guy wasn’t to be made aware of this tracking that was ongoing.


So I set off and looked about to see if there was a suitable Xbox Live API for pulling back Gamertag information and was surprised that there wasn’t an official one – Come on Microsoft!!!!

However I have in the past used sites like and for similar but not automated tracking systems for this purpose.

So once I realised that I couldn’t get the information via an API it was then apparent that I would need to move onto using Invoke-WebRequest to do the heavy work – A shout out to Heath Groves @Heath_Groves for demoing Invoke-WebRequest to me at the SharePoint User Group North West Developer Day in December 2014 (feels so long ago now)

So now we know the Method to get the information there are some standard Variables that we needed to define and these included

  • GamerTags
  • Starting Gamerscore – As they hadn’t used new Gamertags which meant the tracking had a starting point from which to calculate from.
  • SharePoint Site and List and Fields needed – I wouldn’t be a SharePoint Guy if I didn’t make use of SharePoint for this somewhere haha
  • Which Site we will be pulling the information from as until I can figure out passing my Xbox/Hotmail credentials via Invoke-WebRequest to I cannot make use of that site. (Only spent 2 minutes on this so will revisit another time)
  • Email Address to send from
  • Email Address to send to
  • Smtp Server to send the message via
  • Any needed Credentials to connect to any of the services as required – in this example I connect to my Office 365 Tenant for both the Email and SharePoint Site so I need to pass that credential across.

So I have all the Variables I need – so really how difficult is this in being able to get the information that I want and to then manipulate it correctly.

So I had decided on which Site I wanted to get this information from and now the key thing I needed from this point was to get the exact point where this information is stored

I chose to use to pull the information so I then needed to find the table used in the Site page that holds the GamerScore as can be seen below





And in a HTML view this is shown as the below



So to actually get this across from the Site into PowerShell we then will be running the following lines of PowerShell

$gt1html = Invoke-WebRequest -Uri$gt1/

[int32]$GT1GS = (($gt1html.ParsedHtml.getElementsByTagName(“P”) | Where-object {$_.classname -eq ‘rightGS’ } ).innertext).replace(“,”,“”).replace(” “,“”)

The Key to this is that we have got all the HMTL for the Page by running Invoke-WebRequest and have then stored this in a Variable $gt1html

We then on the next line where we will perform the manipulation of the Html to get the data we actually require. This is rather simply given to us by the Unique Element & Class used to style and provide the content to the Web Browser (although it could have been done all in 1 line instead of splitting into 2 here – however for readability I feel this is a better practice to get into for larger scripts)

So as you can see I have to Get all the Elements that have the Tag Name of “P” once I have this I then Pipe that across to Where-Object and specify at this point that I want back the Content that coincides with the Classname of “rightGS” and to do that as seen above I have encapsulated the whole query within the Brackets – in this case the 1st set – this is so that I can then ask for the innertext of that cell and as the data came back in a String Format with a space in front of the first number and a comma I have run a replace action to replace these unneeded punctuation to just give me the number that I need.

Once this is done I then store all that in a new Variable that I have hard defined to be a INT32 this is just for neatness but it easily could have stayed in a String format.

 Note at this point I already had a list created however for completeness I will create a new one with the script that you will be able to download

So from here to do the daily reporting on the updates to the GamerScore we need to Create an Item in a List with the starting points and to make this ambiguous I have thrown this all together into 1 single script with some amendable Variables which are all included at the top of the Script which will check if the list exists and if not will create it and also populate with a baseline item

To adapt this for yourself you will need to change the following Variables / Functions


  • SPUrl
  • GamerTag1
  • GamerTag2
  • To Email Address
  • From Email Address
  • CC Email Address – If you require it
  • SMTP Server Details
  • List title within the SharePoint Site
  • GamerTag 1 Starting GamerScore
  • GamerTag 2 Starting GamerScore



You can download the full Script from the following Xbox Live GamerScore Tracker Script


Once again you can follow me on Twitter – @ryanyates1990

Or reach out to me via the Office 365 Yammer Network –


* Please note – This was very quickly put together and doesn’t accommodate for Special Character encoding like spaces which in HTML is %20 or in FieldNames is _x0020_ *


Getting up and Running with SPPS for PowerShell and SharePoint Usage

I have seen some small confusion with SPPS and the background requirements? needed for it to run – So I have built an extensible set of Virtual Machines for me to further investigate this


Basically if you are Running any of the older Systems Windows XP Server 2003 or Vista then unless you update to at least PowerShell v2 then unfortunately SPPS will not be able to run.

This is down to the method for reusability and management where SPPS is run using the Module framework instead of the older style Snapin framework. This has a lot more benefits as this allows IT Admins to auto deploy these without an additional Program installation. It also allows IT users to grab updated versions as they are released and can be used across a variety of different systems – There are even ones out there for Twitter, Facebook & Yammer.


Personally I am really enjoying using PowerShell v4 which can be installed as part of the Windows Management Framework v4 for your OS – Remember this is a Client-Side tool so you do not need to run this on a server.

However the point in this Post is to show you the First steps as required to get “Up and Running” with SPPS so that you can achieve the results that you need.

So firstly if you are reading this I’ll assume that you have already downloaded SPPS and have the module files stored to a directory of your choice.

If not the Download link is SPPS – Download

The module files can be stored in one of the PowerShell default Directories of which you can find more information about them in this Post by the Scripting Guy or you can use a location of your own.

Hey, Scripting Guy! How Can I Install Windows PowerShell Modules on Multiple Users’ Computers?

Ok so now we have that out of the way what do we need to do now.

Firstly we need to open a New PowerShell window (or PowerShell ISE – which is what I will be using throughout this example post) – Remember here to ensure that if you are running a 64 bit version of Windows that you haven’t opened the x86 version of PowerShell or the ISE as this is a crucial item going forward.


Once we have done that we will then import the Module as seen below – I try and keep a SP folder in the Root of my C Drive and that is where we will be importing the Module from in this case – however this would be different for you if you have it in your User Directory.





Ok so the Module has imported – Remember that when a Command is Successful you typically get no output displayed – so I have stuck to this as not to add further level of Complexity.

Now we have Imported the main SPPS module you can run (Get-Command -Module spps).count to see how many functions are available to you.

As you can see below there are 85 functions currently available




To see all the Functions you would run Get-Command -Module spps – It is important to remember that SPPS is still evolving so there will likely be many more additions to this as time goes along and this is a useful way to see what can be achieved with SPPS as time goes on.


Ok so we have imported the SPPS Module and now what do we need to do to get SPPS working with either our On-Prem or Online Instances. Well out of the box with Windows there is no ability to connect to a SharePoint Site with PowerShell so we need to ensure that we have the correct Dll’s (Dynamic Link Libraries) so that PowerShell can understand our commands to connect to SharePoint.

To do this we will fun a function called Test-SPPS and in its current form it will check if you have the Dlls installed and if not will open Internet Explorer to the correct Download links for the Client Redistributables for each version.

Please note that I intend to Update this to provide some choice input as I am aware not everyone will have a need for 2010 2013 and SharePoint Online dlls installed on their system.


Once you have installed the needed dlls you can run the Test-SPPS function again and as you can see in the below screen shot this is now telling me I am ready to connect to SharePoint 2010 2013 and SharePoint Online




So now we will need to perform the connection to the SharePoint Online site which in the below sample I will connect to a Test CSOM site in my Tenant and i will be passing a PowerShell Credential to this as I am accessing from a different domain. For more information about PowerShell Credentials please see this article which does a good job of explaining the different levels of security with PowerShell Credentials Secure Password with PowerShell: Encrypting Credentials – Part 1







However you can also use the following parameters OnlineUsername, OnlinePassword or you can also leave it blank as long as you specify that IsOnline is 1 (which is Boolean for True)




I will also in the near future do another blog post on Credentials and some of the better practices available to use when storing passwords (preferably not in plaintext) as the below example is not a recommended scenario but is there to show you what you can do.

You can also connect to a SharePoint Online Site and not provide any Credentials in which the Initialize-SPPS function will prompt you for them as shown below





To connect to On-Prem this is even easier if you are connecting from a Domain Joined machine and are logged in as a Domain User and you can access a SharePoint Site as you can just connect with a much simpler command – Please note that Initialize-SPPS defaults to load the SharePoint 2013 Dlls (as I expect that this is becoming more common than 2010) so if you are running 2010 then you will need to add -Is2010 1 to the line as shown below as well



Once connected you will see that there has been 3 new Variables created in PowerShell for use throughout your session with a brief description of what these are for.


And that is all that is needed to be able to Connect to a SharePoint On-Prem or Online Site Collection. The ability to provide a Credential allows for you to perform any needed “Admin” tasks like you may already do just via Web Browsers – However this is limited to the Site Collection that you connect to.


If you have any Questions feel free to leave a Comment or message me on Twitter or Yammer and if you aren’t already a member of the Office 365 Network then request to join it as there are some amazing discussions going on in there and its not just SharePoint related either.

Office 365 Yammer Network

Reach me on Twitter

Presenting about Dynamic Kanban at Sharepoint User Group & SPPS Codeplex Release

I was very lucky to be able to give a presentation on how SharePoint can be used to help facilitate a Kanban board for detailing what tasks people are working on and it is something that is in use within my current team

For me the ability to put up exactly what work is going on (or needs to be planned for) was a big win and I am tweeking and reworking it almost on a Daily Basis to be a fully representative model for my team to work with

However I did say that I would post up a link to the content of the presentation and also the underlying script that will transform the data from the list into the correct format.

SugUk Manchester April 7th

Firstly – I would recommend that you download Spps from Codeplex as this contains a good set of PowerShell Functions for being able to automate certain tasks within SharePoint – and this is just going to continue to grow and grow as i start to further build functions in there for my own uses 🙂

SPPS release

I still very highly believe in automation of tasks where possible and especially when it is data held in SharePoint and I will be continuing to enhance and update SPPS when I get the opportunity to.


I was getting rather fed up with using National Rails IOS App to get the latest train times as it kept crashing on me so i wrote a small PowerShell function that will do the work for me 🙂

This uses the 3 character code for Manchester Piccadilly and Macclesfield and then creates a new instance of Internet explorer with the results – I did look to make use of Invoke-WebRequest but felt that this was the “quicker and dirtier” solution

function Get-NextTrain {

    $from = “MAN”

    $to = “MAC”

    $date = Get-date -Format ddMMyy

    $time = Get-date -Format HHmm

    $url = “$from/$to/$date/$time/dep/”

   start iexplore $url


I am currently trying to create another that will accept a Full Station name input and then switch it to the short 3 character code for each Station name. Hopefully by the end of the week 🙂


I’ve been really looking at enhancing some of my own personal security models as of late and for accounts that i have for internal only but typically can only be accessed with a web interface so I couldn’t make use of exported credential Passwords as I would prefer to.

So to get round this issue I built this nice little function, which takes a String input from you and a type definition Integer to determine whether you are passing the plaintext version and wanting the Hashed version of the Password returning or whether you want to get the plaintext version of a previously hashed password.

function Get-Password


   param (

    [Parameter(Mandatory=$true,HelpMessage=“Please Provide Password.”)][String]$Password,

    [Parameter(Mandatory=$true,HelpMessage=“1 = hashed 2 = unhashed.”)][INT]$Type


    If ($Type -eq “2”)


        $pwd = [System.Text.Encoding]::UTF8.GetBytes($Password)

        $Global:Hpwd = [system.convert]::ToBase64String($pwd)

        Write-Host Your Hashed password is $hpwd




        $global:uhpwd = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Password))

        Write-Host Your unhashed password is $uhpwd



What this will do is turn your normal phrase into as base64 encoded string – Although this only really adds a small further layer of security it could be used to simplify your password management – think of this as a level of Security by Obscurity

I know that it has simplified mine considerably.

So as an example to this Function you would run it as below specifying that the type is 2 as this will convert the password into a base64 encoded string

Get-Password -Password NaffPassword -Type 2

And it would output the following

Your hashed password is TmFmZlBhc3N3b3Jk

You can then also see that this stores this in a Global Variable which we can see is defined as $Hpwd

So as this is stored in a Variable this can then be fed either to the same function again or can be used within other script areas.

So for example you could then run the function as following using the type as 1 to return the unhashed Password

Get-Password -Password $Hpwd -Type 1

And the result would be

Your unhashed password is NaffPassword

Hopefully you may find this little Function useful or even have some suggestions on how this could be improved further.

The ability to add in the Scripts is thanks to this Brilliant PowerShell ISE Addon CopyToHtml created by Gary LaPointe which you can find at


Conquering Posting to Facebook and Twitter via Powershell


​Well this weekend has seen me look at whether it would be quite difficult to post to both Facebook and Twitter via PowerShell.

In short the answer is not really.

I have had very little exposure to Oauth in recent years and luckily for someone like me (little in practical experience but a base understanding of how it works) this has been relatively simple to get my head round

Now before I go into further detail i must give credit to the people that originally posted any adapted scripts – mainly Oauth Keys

So for FaceBook – Credit goes to John Newman and you can find his work at

For Twitter – Credit goes to this Powershell Workflow that was posted by Peter van der Woude on Technet Galleries –

Getting the Facebook one working was a tad more difficult than twitter – however this is due to how FaceBook manages “apps” more than anything else.


So Eventually it came down to having a New-FBFeed and a Send-Tweet function but what about when I wanted to Post the same thing to Both?


So i wrote a simple Function that calls both Send-Tweet and New-FBPost which i will post below



param (







And its as Simple as that.


Published: 08/02/2015 22:37