Posts tagged with "Automation"


Active Directory User Lockout and Password Report

A PowerShell script that generates an HTML diagnostics report for user lockouts in Active Directory, including password age, expiration details, and account status.

Published: May 30, 2024 | Last Modified: May 13, 2025


Gmail Photo Downloader

A Google Apps Script that automatically downloads embedded images from specific emails and organizes them into a Google Drive folder.

Published: September 11, 2023 | Last Modified: May 13, 2025


QR Code Generator with Python

A Python script using the qrcode library to generate customizable QR codes with error correction, including options for masking specific areas of the code.

Published: June 24, 2023 | Last Modified: May 13, 2025

Microsoft LAPS (Local Administrator Password Solution) Guide

Microsoft LAPS (Local Administrator Password Solution) is a tool designed to securely manage local administrator account passwords on Windows domain-joined computers. It automates password generation and rotation, and stores passwords in a secure manner, providing greater control and security over local accounts.

Published: February 23, 2023 | Last Modified: May 13, 2025

Microsoft Teams PowerShell Management Guide

PowerShell scripts for Microsoft Teams stuff.

Get all owners of all teams and team channels

## Documentation: https://learn.microsoft.com/en-us/powershell/module/teams/?view=teams-ps
 
# Run the following command to install the latest PowerShellGet:
Install-Module -Name PowerShellGet -Force -AllowClobber
 
# Install the Teams PowerShell Module.
Install-Module -Name MicrosoftTeams -Force -AllowClobber
 
# To start working with Microsoft Teams PowerShell module, sign in with your Azure credentials.
Connect-MicrosoftTeams
 
$user =Read-Host -Prompt 'Input the user name'
$teams = Get-Team -User $user
$teamMemberships=@()
$teamChannels=@()
$teamChannelMemberships=@()
 
$i = 1

$teamMemberships = foreach ($team in $teams) {
    $GroupId = $team.GroupId   
    
    Get-TeamUser -GroupId $GroupId | Select-Object *,@{Name="GroupId";Expression={$GroupId}}
    $channels = Get-TeamAllChannel -GroupId $GroupId | Select-Object *,@{Name="GroupId";Expression={$GroupId}}
    $teamChannels += $channels

    $teamChannelMemberships += foreach ($channel in $channels) {
        $channelDisplayName = $channel.DisplayName
        Get-TeamChannelUser -GroupId $GroupId -DisplayName $channelDisplayName | Select-Object *,@{Name="GroupId";Expression={$GroupId}}
    }

    $percent = [Math]::Round((100 * $i) / $teams.Length)
    Write-Progress -Activity "Search in Progress" -Status "$percent% complete"
    $i++
    }

$teams | Export-Csv -Path "teams.csv" -NoTypeInformation
$teamMemberships | Export-Csv -Path "team-memberships.csv" -NoTypeInformation
$teamChannels | Export-Csv -Path "team-channels.csv" -NoTypeInformation
$teamChannelMemberShips | Export-Csv -Path "team-channel-memberships.csv" -NoTypeInformation

Published: February 23, 2023 | Last Modified: May 13, 2025

PowerShell Script for Azure AD Synchronization Management

This PowerShell script performs the following actions:

  1. It retrieves the Windows identity and security principal of the current user account.
  2. It then retrieves the security principal for the Administrator role.
  3. It checks if the current user is running as an administrator. If the user is not running as an administrator, the script relaunches itself as an elevated process.
  4. If the user is running as an administrator, the script displays a menu with three options: “Delta Sync”, “Full Sync”, and “Exit”. The user is prompted to select an option by entering the corresponding number.
  5. Based on the user’s selection, the script runs the appropriate command using the Start-ADSyncSyncCycle cmdlet with either the Delta or Initial policy type. If the user selects “Exit”, the script exits.
  6. Finally, the script displays a message indicating that it is running and to check the “miisclient” to confirm. It then pauses for 10 seconds using the Start-Sleep cmdlet.
$myWindowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$myWindowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($myWindowsID)
$adminRole = [System.Security.Principal.WindowsBuiltInRole]::Administrator

if (-not $myWindowsPrincipal.IsInRole($adminRole)) {
    $newProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell"
    $newProcess.Arguments = $myInvocation.MyCommand.Definition
    $newProcess.Verb = "runas"
    [System.Diagnostics.Process]::Start($newProcess)
    exit
}

Write-Host '1) Delta Sync (Recommended, unless told to do a full sync)'
Write-Host '2) Full Sync'
Write-Host '3) Exit'

$selected_menu_item = Read-Host 'Which number would you like to run (1 or 2)? (Enter Number and Press Enter)'

switch ($selected_menu_item) {
    1 { Start-ADSyncSyncCycle -PolicyType Delta }
    2 { Start-ADSyncSyncCycle -PolicyType Initial }
    3 { Write-Host 'Exit'; exit }
    default { Write-Host 'Incorrect Input' -ForegroundColor Red }
}

Write-Host 'Running Now.... Check miisclient to confirm'
Start-Sleep -s 10

Published: February 9, 2023 | Last Modified: May 13, 2025

Stable Diffusion Scripts

A comprehensive collection of utility scripts for automating image processing tasks with Stable Diffusion outputs, including batch file renaming, color grading, pixel art conversion, and video processing tools.

Published: February 5, 2023 | Last Modified: May 13, 2025

PowerShell Script to Export WiFi Network Credentials

A PowerShell script that automates the extraction of stored WiFi network credentials using netsh commands, exporting SSIDs and passwords to a CSV file for easy management and reporting.

Published: April 11, 2022 | Last Modified: May 13, 2025


Windows Settings URI Reference

A comprehensive reference guide to Windows ms-settings URI schemes, enabling direct access to specific Windows Settings pages through command-line or scripting interfaces.

Published: January 1, 2021 | Last Modified: May 13, 2025