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(‘http://bit.ly/Win10RSATinstall2’)

And if you want to look at the Script then direct link is http://bit.ly/Win10RSATinstall2

Hope this is useful for you

PS credit (again) goes to @lee_holmes for the idea from following tweet https://twitter.com/lee_holmes/status/318799702869041153

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 PowerShell.org 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 powershell.org 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 Powershell.org 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 PowerShell.org 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 PSConf.eu 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 www.get-psuguk.eventbrite.co.uk

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 www.psconf.eu

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 – https://haveibeenpwned.com – 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 ‘bar@foobar.com’ and you’ll either get back 1 of 2 messages – A warning if it is found like the below

WARNING: We have your account foo@bar.com 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 bar@foobar.com 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 bar@foobar.com 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 http://bit.ly/1MbnFTD

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 http://bit.ly/PSFindModule

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