Blog

Disclaimer

You will not hold me responsible for any inconvenience, incompatibility, damage, or lack of satisfaction that you experience by undertaking any or all of the steps mentioned in this blog.

Although I have a positive personal experience with everything I have written here, I cannot guarantee the same results for you, whether due to inadvertent actions, hardware,software, or any other issues.

I shall not be liable in any event of any damages, incidental or consequential in connection with or arising out of the advice, scripts or suggestions provided by me.

Only use the scripts that you find online once you fully understand what they are doing and if you have questions or want advice please contact me and I will try and help. Any advice provided will be bound by the same terms above.

Auditing: Format Active Directory Email Addresses

Perhaps this is just my own OCD but I think email addresses should all be formatted in the same way in active directory but inevitably some will put john@company.com and others will put John@company.com and all variations in between. 

The below can be run to fix the formatting as you like it and will change all email addresses to your desired format.

$users = Get-ADUser -filter * -Properties name,samaccountname,mail  | Select-Object name,samaccountname,mail
foreach ($user in $users) {

    $Name = $user.name
    $UserID = $user.samaccountname
    $Email = $user.mail
    $NewEmail = (Get-Culture).TextInfo.ToTitleCase("$email")
try {
set-aduser $UserID -EmailAddress $NewEmail 
}
catch {write-host "The email field for $Name is blank" -ForegroundColor Red}
}
$users.Count

GUI: LAPS Password Recovery Tool

The below LAPS Password Recovery Tool For Deleted Objects and those still in AD is created to allow you also recover the Microsoft LAPS administrator password of objects that have been deleted but that are still within the tombstone period of your Active Directory Forest.

This is the only advantage over Microsofts own GUI but is useful if you were to delete lots of machines from Active Directory and subsequently need to get in to it without restoring the object.

It will need to be run as an account that has permissions to ready the ms-Mcs-AdmPwd property and requires the Active Directory PowerShell module to be available (RSAT)

Read more “GUI: LAPS Password Recovery Tool”

Function: Internet Radio Control – Frontier Silicon

The below uses the PowerShell invoke web request cmdlet to control a Roberts Internet Radio using the Frontier Silicon API. I have tied this in with my home automation to turn the radio on and off as feedback what is playing.

 

 

Read more “Function: Internet Radio Control – Frontier Silicon”

Auditing: Report and Disable Inactive AD User Accounts

The below can be run as a scheduled task to detect and disable accounts that have not been used for a specified amount of days or for accounts which have never been used.

Report outputs to a CSV and is displayed as follows:

Read more “Auditing: Report and Disable Inactive AD User Accounts”

Auditing: Reset Passwords That Expire Today

The below can be run as a scheduled task to detect Active Directory User accounts that have passwords that expire today. Any objects where the password is due to expire today will automatically have the “Change password at next logon” ticked meaning that they wont suddenly lose connection to things such as mapped drives at the original expiry time.

Credit to Andrew Lyonette for turning my “Why dont you solve it like this” in to the script below.
https://www.linkedin.com/in/andylyonette/

Read more “Auditing: Reset Passwords That Expire Today”

Auditing: Report and Disable Inactive AD Computer Accounts

The below can be run as a scheduled task to detect and disable accounts that have not been used for a specified amount of days or for accounts which have never been used.

Report outputs to a CSV and is displayed as follows:

Read more “Auditing: Report and Disable Inactive AD Computer Accounts”

Auditing: Audit AD Groups

This script will perform AD group member auditing by fetching all AD Groups and their members and then email the owner of that group a list to be checked to ensure they are still correct.

It utalises the Description field for the group name e.g Sales File Share or Sales Distribution Group and the MangedBy property to then fetch the owners name and email address from the Mail field of the user.

For any group that does not have a ManagedBy user a separate email will be sent to an address of your choosing stating that there is no owner and to check the members and find an appropriate owner.

Read more “Auditing: Audit AD Groups”

Function: Get AD User Password Expiry Date/Time

This is a PowerShell Function written to obtain a users password expiry date and time in a friendly format. It allows you to search using a username, first name or surname. This may be useful on a helpdesk to ascertain if the issue a user is experiencing is due to password expiry.

Read more “Function: Get AD User Password Expiry Date/Time”