Category Archives: PowerShell

How to connect to and manage Office365 using PowerShell


In this post I’ll look at how to connect to Office365 using PowerShell.

I’m working with a few more companies now who use Office365 so I thought I would look at how to connect to Office365 using PowerShell so that I can manage and maintain them more easliy.

Continue reading

Exchange PowerShell: How to Bulk Import/Create Mail Contacts

Exchange2013 PowerShell

I’ve been working a lot with Exchange 2013 recently so will be focusing my next few posts on some PowerShell I have used and found useful to help me setup an Exchange 2013 environment for a new company.

In this post I will look at the process I used to bulk create Contacts.

Continue reading

PowerShell: How to add all users in an OU to a Security Group using Get-ADUser and Add-ADGroupMember

PowerShellI’m currently setting up a new system for a client and wanted to add all users in a specific Organisational Unit (OU) to a specific Security Group.

I’ve written about Get-ADUser a few times before, so by combining that with another PowerShell cmdlet Add-ADGroupMember to add users to a group we should be in business!

In this example we’ll add users in the OU Head Office to the SSLVPN Users Security Group.

Continue reading

PowerShell: How to clean up the WinSxS folder in Windows Server 2012 R2

Windows Server 2012 R2

In this post we’ll look at how to use PowerShell to reduce the size of the WinSxS folder in Windows Server 2012 R2.

A customer has a very quick SSD based server at a cloud provider, but although it is SSD based it only has a tiny 40GB C:, which is a very small footprint for the OS, a couple of apps and logs files. So i was asked to take a look and see what i could do to make a bit of room.

The WinSxS folder contains the files for all the Windows Features you can install in the default operating system. Each time you run a windows update files in the WinSxS folder get update and the size will continue to grow.

Since Windows Server 2012 Microsoft have made it very easy to tidy the WinSxS folder up. They introduced a new feature called “Features on Demand”. Rather than the WinSxS containing all the binaries for all the features you could possibly install on the server, “Features on Demand” allows you to remove the files for features you aren’t using.

If at a later date you want to install a feature you have removed from the WinSxS folder you’ll need to specify a location for the source files.

Continue reading

Top 10 Blog posts of 2014

Happy New Year!

Following on from 2013’s success, 2014 was a busy blogging year, with 66 posts, 560,000 views and visitors from 218 countries! The blog has gone from strength to strength, there was no major redesign this year but subtle tweaks here and there to make it better. For a hobbyist blog its edging ever closer to the 1,000,000 views mark which is insane!

Below are the top ten articles in 2014

  1. How to install Exchange 2010 (SP3) on Windows Server 2012   (43,232 views)
  2. PowerShell: Get-ADUser to retrieve password last set and expiry information (40,199 views)
  3. How to open Internet Explorer 10 in Desktop Mode on Windows 8   (28,942 views)
  4. PowerShell: Get-ADComputer to retrieve computer last logon date – part 1 (24,922 views)
  5. Exchange PowerShell: How to list all SMTP email addresses in Exchange (21,600 views)
  6. How to display Celsius on the Outlook 2013 Weather Bar (21,108 views)
  7. PowerShell: Get-ADUser to retrieve logon scripts and home directories – Part 1 (20,128 views)
  8. Server 2012: “Your current security settings do not allow this file to be downloaded” (18,817 views)
  9. Exchange PowerShell: How to enumerate Distribution Lists, managers and members (17,954 views)
  10. How to open Internet Explorer 11 in Desktop Mode on Windows 8.1 (16,958 views)

Looking forward to 2015, I intend to work on some Sophos Certifications while trying to find time for a few more Microsoft exams.  I didn’t get around to the SBS migration to Windows / Exchange 2013 last year, but with a number of clients now on the cusp of migrating I’ll be looking at that sooner rather than later! The surprising success if 2014 was my PowerShell posts, these have been hugely popular and enjoyable to write so expect more this year.

I hope you have a great year!

PowerShell: Get-ADComputer to retrieve computer last logon date (and disable them) – part 2


In this article we’ll look at using Get-ADComputer and Set-ADComputer to list computer accounts which haven’t logged in for xx days, and then automatically disable them.

In part 1 we looked at how to use Get-ADComputer to list computers by name and sort them by their last logon date with the premise that we can use the information to remove historic computer accounts from the domain.

Now we know the computer accounts we want to work with we will look at modifying the PowerShell command to automatically disable them.

Continue reading

Exchange PowerShell: How to enumerate and modify Distribution Group properties

Exchange PowerShell

Here is another quick Exchange PowerShell post on distribution groups, in it we will look at how to check and modify a particular setting.

A client recently got in touch after a suspect email was sent to all staff in a particular distribution group. Usually only staff can send emails to distribution groups because you need to be authenticated, so I had a quick check of the distribution group’s settings to see what was going on.

Continue reading