Add Find-EmptySecurityGroups.ps1 script
This commit is contained in:
90
Find-InactiveUsers.ps1
Normal file
90
Find-InactiveUsers.ps1
Normal 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
|
||||
Reference in New Issue
Block a user