43 lines
1.4 KiB
PowerShell
43 lines
1.4 KiB
PowerShell
|
|
<#
|
||
|
|
Author: Gabe Kerntke
|
||
|
|
Date: 4/8/24
|
||
|
|
|
||
|
|
.Requirements
|
||
|
|
Needs to be run on a Domain Controller or where the "Active Directory module for Windows Powershell" Feature is installed. Also
|
||
|
|
Need to be running under credentials with Domain Admin rights.
|
||
|
|
|
||
|
|
.Synopsis
|
||
|
|
Script will query all computers in the domain for local users.
|
||
|
|
|
||
|
|
#>
|
||
|
|
#Import Module
|
||
|
|
Import-module ActiveDirectory
|
||
|
|
|
||
|
|
#Set default error action
|
||
|
|
$ErrorActionPreference = "SilentlyContinue"
|
||
|
|
|
||
|
|
#Variables for paths
|
||
|
|
$OutputDirectory = "C:\Temp\Script Cache"
|
||
|
|
$CSVOutput = "$OutputDirectory\Local_Users.csv"
|
||
|
|
|
||
|
|
#Variable to find all AD computers
|
||
|
|
$Computers = Get-ADComputer -filter * | Select-Object -ExpandProperty Name
|
||
|
|
|
||
|
|
#Region Script Start
|
||
|
|
|
||
|
|
#Create output directory if it doesn't exist
|
||
|
|
If ((Test-Path $OutputDirectory) -eq $False) { New-Item -ItemType directory -Path $OutputDirectory }
|
||
|
|
|
||
|
|
#Remove existing CSV output file to prevent issues
|
||
|
|
If ((Test-Path $CSVOutput -ErrorAction SilentlyContinue) -eq $True) { Remove-Item $CSVOutput -Force }
|
||
|
|
|
||
|
|
foreach ($Computer in $Computers) {
|
||
|
|
$Computer | Foreach-Object {
|
||
|
|
If ((Test-Connection $Computer -Quiet) -eq $true) {
|
||
|
|
Get-WmiObject -ComputerName $Computer -Class Win32_UserAccount -Filter "LocalAccount=True" | Select-Object PSComputerName, Name, Disabled
|
||
|
|
}
|
||
|
|
|
||
|
|
} | Export-Csv -Path $CSVOutput -Append -NoType
|
||
|
|
}
|
||
|
|
Write-host "Script Output: $CSVOutput"
|
||
|
|
#Region Script End
|