a
This commit is contained in:
25
scripts/NetUser.ps1
Normal file
25
scripts/NetUser.ps1
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
$daysInactive = 14 # Specify the number of days of inactivity
|
||||||
|
$inactiveDate = (Get-Date).AddDays(-$daysInactive)
|
||||||
|
$homeDirectoryPath = "C:\Users" # Path to user home directories
|
||||||
|
|
||||||
|
# Get all user profiles
|
||||||
|
Get-WmiObject Win32_UserProfile | ForEach-Object {
|
||||||
|
$profile = $_
|
||||||
|
$userFolder = $profile.LocalPath
|
||||||
|
$userName = $profile.LocalPath.Split('\')[-1] # Get the username from the folder path
|
||||||
|
|
||||||
|
# Get the last logon time for the local user
|
||||||
|
$userLogon = Get-WmiObject -Class Win32_NetworkLoginProfile -Filter "Name='RPBLUEJAYS\\$userName'" | Select-Object -Property LastLogon
|
||||||
|
|
||||||
|
if ($userLogon) {
|
||||||
|
$lastLogonDate = [Management.ManagementDateTimeConverter]::ToDateTime($userLogon.LastLogon)
|
||||||
|
|
||||||
|
# Check if the user's last local logon date is older than the specified inactive date
|
||||||
|
if ($lastLogonDate -lt $inactiveDate) {
|
||||||
|
Write-Host "Deleting user profile: $($profile.LocalPath) Last Logon: $lastLogonDate" -ForegroundColor Red
|
||||||
|
|
||||||
|
# Remove the user profile
|
||||||
|
$profile.Delete()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user