Ryan YatesConsultant
Just a person in their 30's doing things in Tech & trying to break the stigma's around talking about Mental Health
This is the personal blog site of Ryan Yates
In IT - Specialising in PowerShell, Automation, DevOps, Azure & Office 365
Outside of IT - Music, Psychology/Mental Health, Science, Law & Politics
|
There are a number of posts on this blog
There are currently many drafts in progress & have been for a long time
|
So this year the MVP program had a bit of a change to how it handled the renewal and awarding process, a change that I fully supported, as it would allow for the program to become, in my own opinion, more agile and therefore recognise more and more memebers of the amazing community on a more reasonable, and sustainable, cycle process. My only gripe, and this is so minor that I can look at it and laugh at it, as it only really affected me in a personal manner, was that the change to the renewal cycle meant that this year I got a free extension of 3 months from April till July (yay) but I lost the receiving the award as an early birthday present from Microsoft like I had for my 26th last year.
This week has been a busy week for me with the SQLRelay and SQLSat Munich events. It has been full of fun especially seeing as for SQL Relay we had the fun bus for travels between the different venues all across the UK.
The week started of as most other weeks do and that was with me at home in Derby on Monday Morning. This was followed by me jumping on the train to Birmingham around 11am Monday Morning for the first leg in the SQL Relay tour where I presented a completely new and fully non-technical session, something that is a little bit out of my comfort zone of the typical more heavily technically focused sessions that I’m used to delivering.
Proud to announce that Speaker Submissions are being accepted for PSConfEU 2017 – you can submit your session proposals via the following form
A few things to note about this year’s submission and selection process
We have a hard cut of date of the end of Sunday December 1st – submissions must be in by this time or will not be accepted. This is because we will have a selection committee gathering during the week commencing Monday 2nd December The members of the selection committee we all vote for our favourite sessions.
Today I’m going to share with you a little but simple tip to enable you to do more Side by Side testing of PowerShell v6 with you current installed version in a simpler and less error prone manner.
Firstly we will create a new environmental variable which we can do in a number of ways but I quite doing it this way as its easy enough to script
Function Update-PS6Path {
So last October I attended the first SharePoint Saturday in Munich which was great event and if you want to you can read up about my experience in this previous post.
However it seems that in October this year I’ll be returning to Munich for the SQL Saturday event where I’ll be delivering my Why & how to implement PowerShell DSC for SQL Server session.
There has been a number of changes to the xSQLServer Resource over at https://github.
**Updated August 23rd 2016 as there was a change between 6.0.0.8 & 6.0.0.9 to PSModulePath that I had missed – I will be blogging about this in more detail in a future post but for now check the updated section at the bottom of this post! **
If your like me and you want to test out PowerShell Core on you Windows machines as well as other *nix machines then you may get caught out with this like I did in the upgrade from 6.
If you’ve been under a rock the last few days (or for days/weeks/months depending on when your reading this blog post) then you would have missed that on Thursday August 18th 2016 - Microsoft Open Sourced PowerShell!
Not only did they Open Source PowerShell they have released a Cross-Platform alpha version that can be installed on a variety of Linux Distros as well as a Mac OSX version.
You can read about it in more detail from the Jeffery Snover himself from over at https://azure.
This Sunday I set out to force my blog hosted on Azure to be Https by Default and I mainly made use of the following Article by Troy Hunt on the underlying implementation which makes use of Cloudflare but I’ve also decided to get it set up ready for if I may want to move away from CloudFlare to Azure CDN in future.
There really isn’t to difficult to do this especially if you follow Troy’s post.
So in this blog post I’m going to cover why there is a need to create Functional & Non-Functional Pester Tests for your PowerShell Modules but before I get into the nitty gritty into the whys behind creating both let me explain what the real differences are between the two because it may not be something that you have previously thought about or considered in your journey up until this point.
I had intended that I would be doing a recap type post at the end of every month however I’ve been very busy so haven’t been able to do so for a number of months – that and I had an issue with my blog being offline for a few weeks.
Let us start with a recap on the amount of events that I managed to attend and I think that you can see that I did a lot of travelling and attending a number of different user groups.
I have long thought of a way to Automagically create some Pester Tests for the Functions contained in a module that perhaps was developed before Pester was really well known.
At that Point we may have been creating psm1 files that contained a number of nested functions within them. I know for one that I am one that did this / added to existing modules that were built this way – have a look at SPCSPS on Github or aka SharePointPowerShell on CodePlex as one of the first projects that I got involved with in the Open Source world.
I had a discussion last night via twitter with one of the attendees that I met at the Microsoft Cloud Roadshow in London earlier this year and the outcome of the conversation was that although I find it easy to find out about events – this isn’t all that common for others.
So I decided that I would quickly jot down some of the places that can be useful to search to find events that are going on around you.
There will be a time where you are attempting a new task, whether that is personally or professionally and you find yourself having to resort to the documentation of the product to get to the end goal, whether that be to put together a new piece of furniture, preparing an exquisite meal or bashing different bits of software together from different companies or more commonly the same company.
One thing that is common in all these scenarios is that if the documentation is completely missing then you are forced down the road where you take the “pot luck”/”educated” guess to get to the desired end result and sometimes that can lead to some hilarious results, especially if it is in relation to cooking or building furniture.
Warning – this post is over 3800 words long and perhaps should have been split into a series – however I felt it best to keep it together – Make sure you have a brew (or 2) to keep you going throughout reading this
In this post we will be looking at how you can build a VM Lab environment from pretty much scratch. This maybe for testing SharePoint applications, SQL Server, Exchange or could be for additional peace of mind when deploying troublesome patches.
The MVP Award is defined by Microsoft as the below
Microsoft Most Valuable Professionals, or MVPs, are community leaders who’ve demonstrated an exemplary commitment to helping others get the most out of their experience with Microsoft technologies. They share their exceptional passion, real-world knowledge, and technical expertise with the community and with Microsoft.
This means that within the different areas of the Microsoft Stack there are those out there that really believe that the world can be a better place when we come together as a united front and share the knowledge that we have.
This is just a very quick post to give my Congratulations to all the New and Renewed MVP’s that have and continue to make the community a much better place.
I wasn’t one of them this time around but perhaps that will change in the future
Well only if you read this post
This is an exceptional honour to have been awarded the MVP for Cloud and DataCentre Management and to me this kinda feels like an early birthday present from Microsoft (my birthday is on Monday)
This isn’t something that I ever expected to achieve however it is a recognition from Microsoft themselves of the work that I have previously done for the community.
I started off down the community path only last year in that time I have made some amazing friends and met a number of other MVP’s along the way.
This is a quick walkthrough on how you can get output from PSScriptAnalyzer rules in your Pester tests.
So you’ll need
Pester ( Version 3.4.0 or above ) PSScriptAnalyzer ( Version 1.4.0 or above ) Please note this is shown running on PowerShell v5 as part of Windows 10 Build 14295 – results may vary on other PowerShell Versions
In the nature of the way we want to work we may have new ScriptAnalyzer rules in the near future (new version / additional community additions / your own custom ScriptAnalyzer rules etc) and we would want ensure that we test for them all without having to change much of the below code
After yet more changes in my housing see my previous post for a bit of background link – I have decided to settle in Derby and this has been for a few very good reasons.
I’ve got a good group of friends here. Manchester, London, Nottingham, Birmingham & Wolverhampton are all short train journeys away and I’m expecting to spend more time between them in the coming months ahead. I almost moved here back in January – but I decided to try and give Manchester another go from the work perspective and this seemingly wasn’t to be the case However I made a good group of friends in Manchester at the various events I’ve been to there over the last 2 years (more so the last year – see this page for more details) and I’ll still be trying to attend some of the amazing events there when it is feasible.
In a discussion that started on Twitter a while back with June Blender about the quality of the Modules being posted to the PowerShell Gallery I had an Idea on a way that we could help improve this from the community – using the tools that we have available to us and more importantly the expertise of the rest of the community to help shape and guide the direction for modules.
Disclaimer This isn’t a fun post (to read or to write) and nor is it a technical post – this is a reflection on the last few years and is in its very nature quite a personal post. I expect that there will be some kick backs about this post in future and I would humbly ask that you try and imagine yourself having been in my shoes at the time of these events happening and also at the time of writing this post.
Update 9th March 2016 - PowerShell Team released an updated version of the PackageManagement modules today and I’ve updated the Script accordingly and will install the latest PackageManagement modules for you with a little verbose output
Updated Microsoft blog is at https://blogs.msdn.microsoft.com/powershell/2016/03/08/package-management-preview-march-2016-for-powershell-4-3-is-now-available/
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 http://blogs.
In working on the PSWordPress Module that Stephen Owen (@foxdeploy) has started I came across an interesting issue after running my Pester tests which calls - $ModuleFunction.Definition.Contains(’.Synopsis’) | Should be True to check for comment based help - and it was failing even though I had Comment Based help in there. The problem was that the Help was Above the Function Keyword - so this means that it wasn’t carried through to the $ModuleFunction.
UPDATE 25/12/2015 - Due to WMF5 Install issues the InstallWMF5.ps1 Script has been removed from GitHub until the PowerShell Product Team re-release the WMF5 installers. Once re-released I will re-release the InstallWMF5.ps1 script
UPDATE 24/02/2016 - WMF5 was re-released today and the below scripts should still work
This is a very very quick post about installing WMF5 on Windows 8.1 or Server 2012 / Server 2012 R2 via this function script I created
Today I’m off to London for the 5/6 time already this year. This time I’m off to present at the WinOps Meetup and then attend the Chef Users Meetup the following day. My Presentation at WinOps will be the one that I gave for the Mississippi PowerShell User Group.
Looking forward to seeing old faces and new ones there as well!
I recently presented to the Mississippi PowerShell User Group via Skype for Business on Tuesday 9th (well Wednesday as it was 2:30am that I presented for them)
The video from that session is now online at https://youtu.be/z3CmI73LnyI
My session was around my Script & Module Creation Workflow and the Tight integration with Git & Pester that I have included in a module that is an Addon to the PowerShell ISE - Called ISE_Cew
January was a month where I did a lot of travelling and attending different user groups.
I attended the following events
12th - PASS SQL London Chapter 14th - Microsoft UKITCAMP event - What’s New in Windows 10 Enterprise 14th - WinOps Meetup - London 19th - SharePoint User Groups - Leeds 20th - Microsoft UKITCAMP event - What’s New in Server 2016 - Manchester 20th - LeanAgile Meetup - Manchester 26th - .
If you have been involved in the #PSTweetChat events that have been running with Adam Bertram (@adbertram) & Jeffery Hicks (@JeffHicks) and a number of others, then you would be aware of just how awesome these 1-hour open discussion sessions truly are.
A number of PowerShell Questions get asked and answered from members of the PowerShell community worldwide so they can become a valuable resource to getting a right answer to an issue quickly or even just learning more about the people that make the awesome community and what they are currently up to this week.
The UK PowerShell User Groups (Get-PSUGUK) are undergoing an expansion with some new User Groups being sprung up across the UK over the upcoming months.
If you have been able to attend any of the previous events (Manchester & London) then you will know that I’m a big advocate for making a real community out of the User Group Meet ups – one where there is the opportunity for those from all differing IT backgrounds to rise up and present a topic to their local User Group.
So this is Part 3 of a series of Blog Posts on my (currently ever changing) Workflow with Git, Github & PowerShell.
Hopefully you have had chance to look at the previous posts in this series if not they are
Part 1
Part 2
However, for this post we will be concentrating on Script & Module Creation and how we can make the overall experience more efficient with the PSISE_Addons module that I’m releasing on Github https://github.
Ok so If you didn’t already know then this happened
I got bored so have Created an Auto-Bot for Tweeting about Releases in the PowerShell Gallery
cc @jsnover https://t.co/QgfMhTaGDu
— Ryan (@ryanyates1990) December 31, 2015 And although it has been interesting it has also brought up some issues (mainly data which is one of my biggest bug bears in all things IT) with the PowerShell Gallery and these include and is not limited to
This is just a post on my own recent reflections of the events throughout 2015.
Each month in 2015 came with its ever more increasingly difficult obstacles to overcome and for the first 6 months of the year a lot of the obstacles had come about in the previous year or two and a lot of it was predominantly centred around my children.
People close to me will know just how hard 2015 was for me & how at one point it wasn’t looking like I might actually have gotten through it.
** UPDATE 25/12/2015 Due to WMF5 Install issues the InstallWMF5.ps1 Script has been removed from GitHub until the PowerShell Product Team re-release the WMF5 installers. Once re-released I will re-release the InstallWMF5.ps1 script **
This is a very very quick post about installing WMF5 on Windows 8.1 or Server 2012 / Server 2012 R2 via this function script I created
And what better way than a simple 1 liner to grab and run the script
So this is the Second 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.
As we left off the last part I had opened up the thoughts to the next stages of the process – the actual automation of the workloads and in this post I will go into detail about the integration between GitHub & Exchange to create New Inbox Folders and Inbox Rules for any newly followed Repo’s
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).
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 goes to @lee_holmes for the idea from following tweet iex (iwr http://t.
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.
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.
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
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 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 available for PowerShell v3 & v4 as detailed in this link http://blogs.msdn.com/b/powershell/archive/2015/10/09/package-management-preview-for-powershell-4-amp-3-is-now-available.aspx
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
So this post is a fair bit overdue and that’s because I’ve been far far too 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!
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.
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
Beginner 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
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.
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’m gonna try and keep this one short - the main reason is that there is a lot of pain points within this post that I could delve into some very deep detail and this could easily end up being long enough to be a book.
So to cut it short but to set the scene this post has to look back 13 years ago - to when I was only 12 and even back then I was a highly optimistic person about what I could achieve and have believed that holding back opportunity to those with potential
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.
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.
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.