Private/Clear-TestAccounts.ps1
|
function Clear-TestAccounts { # .SYNOPSIS # Cleanup script for test users and groups # .DESCRIPTION # This script removes all test users and groups from the local machine. # .EXAMPLE # Clear-TestAccounts # .NOTES # Run this as Administrator [CmdletBinding(SupportsShouldProcess = $true)] param () begin { $usersToRemove = @( 'ArrayUser1', 'ArrayUser2', 'ArrayUser3', 'ErrorUser1', 'IntegrationUser1', 'MemberUser1', 'PipelineUser1', 'SidUser1', 'TestUserMember2', 'TestUserNew1', 'TestUserRename2', 'WildcardUser1', 'WildcardUser2', 'WildcardUser3' ) $groupsToRemove = @( 'ArrayGroup1', 'ArrayGroup2', 'ArrayGroup3', 'MemberGroup1', 'PipelineGroup1', 'SidGroup1', 'TestGroupAddRemove', 'TestGroupRemoveMember2', 'TestGroupRename2', 'WildcardGroup1', 'WildcardGroup2', 'WildcardGroup3' ) } process { Write-Host "Cleaning up test users..." -ForegroundColor Cyan foreach ($u in $usersToRemove) { try { $user = Get-LocalUser $u -ErrorAction Stop Remove-LocalUser -SID $user.SID -ErrorAction Stop Write-Host " Removed user: $u" -ForegroundColor Green } catch { Write-Host " User '$u' not found or could not be removed: $($_.Exception.Message)" -ForegroundColor Yellow } } Write-Host "Cleaning up test groups..." -ForegroundColor Cyan foreach ($g in $groupsToRemove) { try { $group = Get-LocalUserGroup $g -ErrorAction Stop Remove-LocalUserGroup -SID $group.SID -ErrorAction Stop Write-Host " Removed group: $g" -ForegroundColor Green } catch { Write-Host " Group '$g' not found or could not be removed: $($_.Exception.Message)" -ForegroundColor Yellow } } } end { Write-Host "`nCleanup complete!" -ForegroundColor Cyan } } |