PowerShell Script to check if certain Azure AD users are in certain Azure AD groups

A bit of a mouthful that heading! Basically, we use Azure AD groups to manage certain aspects of our MEM deployment. The script requires the AzureAD module (It will check for and prompt you to install it if you run the script as Admin) and a csv file with the users UPNs in a column …

Read more

Log On hours with powershell

We had a requirement recently to set logon hours for a specific set of users. To achieve this, we set up one user through the AD User and computers snap-in: Simply run the script, input the username of the user you have already configured logon hours for, then when prompted, enter the group name you …

Read more

Powershell GEOIP Lookup using IPWhois.io

Sometimes, you want to look at a bunch of IPs and figure out where they are coming from. It could be firewall logs, maybe some web host logs. This script was originally developed for a very specific use case, it takes a bunch of IPs in a CSV (with a column header of ‘IP’) and …

Read more

Remove Secondary Admins from Onedrive

The script below can be used to remove secondary admins from or add secondary admins to, Onedrive for Business sites. Ideally, you need to be either a global admin or SharePoint admin to run this, and you will need the SharePoint PowerShell module installed. This will run for ALL Onedrive sites in your organisation.

Tail -f in windows

This is a simple PowerShell function that attempts to replicate the Unix command “tail -f” The only downside is that it outputs from the beginning of the file until it reaches the end, then updates the output as new lines are added to the text file. Or you could simply do this with:

Check Domain Controllers for Failed logins

Occasionally, you may have a user whose account is constantly getting locked out. In order to do this, it is necessary to “follow the breadcrumbs” starting with looking on the DCs to see where the authentication request came from. This can be a pain if you have several DCs, so I wrote a little script …

Read more

Office 365 – Report on Shared Mailboxes

A quick one-liner, which pulls back a list of shared mailboxes, last logon time, size in MB and item count. Connect to your EXO with connect-exchangeonline then run the below (This can take a while of you have a large amount of shared mailboxes) Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited | get-mailboxstatistics | select displayname,lastlogon*,@{name=”TotalItemSize (MB)”; expression={[math]::Round(($_.TotalItemSize.ToString().Split(“(“)[1].Split(” …

Read more

AWS Workspaces – Clean up orphaned Managed AD objects

If you manage a large number of AWS workspaces, chances are you will end up with orphaned computer AD objects cluttering up your domain. This script pulls a list of workspaces, compares it to the list of machines in AWS managed AD and removes any AD computer object without a corresponding workspace. This script requires …

Read more