Upload files to "/"
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# CleanUserProfiles.ps1
|
||||
# Wymaga uruchomienia z uprawnieniami Administratora
|
||||
#Requires -RunAsAdministrator
|
||||
|
||||
# 1. Lista SID-ów systemowych do wykluczenia
|
||||
$ExcludedSIDs = @(
|
||||
"S-1-5-21-3670944717-3182157424-105470765-500", # Główny Administrator
|
||||
"S-1-5-18", # Local System
|
||||
"S-1-5-19", # Local Service
|
||||
"S-1-5-20" # Network Service
|
||||
)
|
||||
|
||||
# 2. Lista kont egzaminacyjnych i pracownianych do wykluczenia
|
||||
$ExcludedAccounts = @(
|
||||
"inf03",
|
||||
"inf04",
|
||||
"teoria",
|
||||
"aud"
|
||||
)
|
||||
|
||||
Write-Host "Rozpoczynam skanowanie i czyszczenie profili użytkowników..." -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# Pobieramy profile, pomijając systemowe wbudowane (np. folder Default)
|
||||
$profiles = Get-CimInstance -Class Win32_UserProfile | Where-Object { $_.Special -eq $false }
|
||||
|
||||
$deletedCount = 0
|
||||
|
||||
foreach ($profile in $profiles) {
|
||||
$sid = $profile.SID
|
||||
$path = $profile.LocalPath
|
||||
$folderName = Split-Path $path -Leaf
|
||||
|
||||
# Próba przetłumaczenia numeru SID na przyjazną nazwę konta
|
||||
$accountName = ""
|
||||
try {
|
||||
$sidObj = [System.Security.Principal.SecurityIdentifier]::new($sid)
|
||||
$ntAccount = $sidObj.Translate([System.Security.Principal.NTAccount])
|
||||
# Wynik to np. DOMENA\inf03 lub NAZWAKOMPUTERA\inf03, więc odcinamy przedrostek
|
||||
$accountName = $ntAccount.Value.Split('\')[-1]
|
||||
} catch {
|
||||
# Jeśli konto domenowe zostało usunięte z AD i nie da się go przetłumaczyć
|
||||
$accountName = $folderName
|
||||
}
|
||||
|
||||
# Sprawdzamy, czy SID, nazwa konta lub nazwa folderu znajdują się na listach wykluczeń
|
||||
if ($sid -in $ExcludedSIDs -or $accountName -in $ExcludedAccounts -or $folderName -in $ExcludedAccounts) {
|
||||
Write-Host "[Pominięto] $path (Konto na liście wykluczeń)" -ForegroundColor DarkGray
|
||||
continue
|
||||
}
|
||||
|
||||
Write-Host "[Info] Próba usunięcia: $path (SID: $sid)..." -NoNewline
|
||||
|
||||
try {
|
||||
Remove-CimInstance -InputObject $profile -ErrorAction Stop
|
||||
Write-Host " SUKCES" -ForegroundColor Green
|
||||
$deletedCount++
|
||||
} catch {
|
||||
Write-Host " BŁĄD" -ForegroundColor Red
|
||||
Write-Host " Szczegóły: $_" -ForegroundColor Red
|
||||
Write-Host " (Profil może być w użyciu.)" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "[Podsumowanie] Usunięto profili: $deletedCount" -ForegroundColor Cyan
|
||||
Reference in New Issue
Block a user