Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $daysInactive = 7 # 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
- Write-Host $userFolder
- # Get the last logon time for the local user
- $userLogon = Get-WmiObject -Class Win32_NetworkLoginProfile -Filter "Name='$userName'" | Select-Object -Property LastLogon
- Write-Host $userLogon
- 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 Local Logon: $lastLogonDate" -ForegroundColor Red
- # Remove the user profile
- $profile.Delete()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement