Add Find-EmptySecurityGroups.ps1 script

This commit is contained in:
Petr Štěpán
2024-10-20 13:24:29 +02:00
parent 5f4dcbc554
commit 6f7da7583a

90
Find-InactiveUsers.ps1 Normal file
View File

@@ -0,0 +1,90 @@
<#
.SYNOPSIS
Tento skript vypíše všechny uživatele v Active Directory, kteří se nepřihlásili více jak 90 dní (ve výchozím nastavení).
.DESCRIPTION
Tento skript používá Active Directory cmdlety pro nalezení všech uživatelů a následně kontroluje datum jejich posledního přihlášení.
Pokud uživatel neměl aktivní přihlášení déle než nastavený počet dní (ve výchozím stavu 90 dní), jeho informace se vypíší.
.PARAMETER None
Skript nevyžaduje žádné vstupní parametry.
.EXAMPLE
.\Find-InactiveUsers.ps1
Tento příkaz zobrazí seznam uživatelů, kteří nebyli aktivní déle než 90 dní.
.EXAMPLE
.\Find-InactiveUsers.ps1 | Sort-Object LastLogonDate | Format-Table -AutoSize
Tento příkaz zobrazí seznam uživatelů, kteří nebyli aktivní déle než 90 dní a zároveň je seřadí podle data posledního přihlášení.
.EXAMPLE
.\Find-InactiveUsers.ps1 -Days 180
Tento příkaz zobrazí seznam uživatelů, kteří nebyli aktivní déle než 180 dní.
.EXAMPLE
.\Find-InactiveUsers.ps1 -Days 365 -IncludeDisabled
Tento příkaz zobrazí seznam uživatelů, kteří nebyli aktivní déle než 365 dní a zároveň vypíše i DISABLED uživatele.
.EXAMPLE
.\Find-InactiveUsers.ps1 -SearchBase "OU=Users,DC=example,DC=com"
Tento příkaz zobrazí seznam uživatelů, kteří nebyli aktivní déle než 90 dní a vyhledává pouze v zadané OU.
.EXAMPLE
.\Find-InactiveUsers.ps1 | Export-Csv -Path .\Export_InactiveUsers.csv -NoTypeInformation -Encoding UTF8
Exportuje všechny neaktivní uživatele v Active Directory do CSV.
.NOTES
Autor: Petr Štěpán
Datum vytvoření: 20.10.2024
Verze: 1.0
.LINK
https://git.totalservice.cz/public/AD-Tools
#>
param (
[Parameter(Mandatory=$false, HelpMessage="Počet dní, po které se uživatel považuje za neaktivního.")]
[ValidateRange(15, [int]::MaxValue)]
[int]$Days = 90,
[Parameter(Mandatory=$false, HelpMessage="Vypsat i DISABLED uživatele?")]
[switch]$IncludeDisabled = $false,
[Parameter(Mandatory=$false, HelpMessage="Vyhledat uživatele pouze v určené OU.")]
[string]$SearchBase
)
# Vyžaduje modul Active Directory
Import-Module ActiveDirectory
# Výpočet data, které je o $Days dní starší než aktuální datum
$inactiveDate = (Get-Date).AddDays(-$Days)
# Inicializace prázdného pole pro ukládání neaktivních uživatelů
$inactiveUsers = @()
# Pokuď je nastaveno, vyhledej i DISABLED uživatele
if ($IncludeDisabled) {
$parameters = @{
Filter = {
LastLogonDate -le $inactiveDate
}
}
} else {
$parameters = @{
Filter = {
LastLogonDate -le $inactiveDate -and Enabled -eq $true
}
}
}
# Pokud je nastavena OU, přidej ji do filtru
if ($SearchBase) {
$parameters.SearchBase = $SearchBase
}
# Vyhledání uživatelů na základě dynamického filtru
$inactiveUsers = Get-ADUser @parameters -Properties Name, SamAccountName, LastLogonDate, Enabled, PasswordNeverExpires, CanonicalName, DistinguishedName
# Výpis neaktivních uživatelů
$inactiveUsers | Select-Object Name, SamAccountName, LastLogonDate, Enabled, PasswordNeverExpires, CanonicalName, DistinguishedName