Cкрипт предназначен для поиска компьютеров в Active Directory, которые были активны (т.е., которые были использованы в течение последних 30 дней) и выводит информацию о них.
Подробно:
- Import-Module ActiveDirectory - Эта команда импортирует модуль Active Directory PowerShell, который позволяет управлять объектами Active Directory.
- $inactiveDays = 30 - Эта команда определяет количество дней, которые могут быть неактивными.
- $currentDate = Get-Date - Эта команда получает текущую дату.
- $lastActiveDate = $currentDate.AddDays(-$inactiveDays) - Эта команда вычисляет дату, которая была 30 дней назад.
- $activeComputers = Get-ADComputer -Filter {LastLogonDate -gt $lastActiveDate} -Property Name,LastLogonDate - Эта команда получает список компьютеров, которые были активны в течение последних 30 дней.
- foreach ($computer in $activeComputers) - Это цикл, который проходит по каждому компьютеру в списке активных компьютеров.
- Write-Host "Компьютер: $($computer.Name)" - Эта команда выводит имя компьютера.
- Write-Host "Последний вход в систему: $($computer.LastLogonDate)" - Эта команда выводит дату последнего входа в систему компьютера.
- Write-Host "------------------------" - Эта команда выводит разделительную строку.
- $activeComputers | Select-Object Name, LastLogonDate | Export-Csv -Path "C:\Script\pc.csv" -NoTypeInformation - Эта команда сохраняет информацию о компьютерах в CSV-файл.
Таким образом, скрипт позволяет получить список компьютеров, которые были активны в течение последних 30 дней, и сохранить эту информацию в CSV-файл.
# Импортируем модуль Active Directory
Import-Module ActiveDirectory
# Определение времени неактивности в днях (например, 30 дней)
$inactiveDays = 30
# Получаем текущую дату
$currentDate = Get-Date
# Вычисляем дату, которая была $inactiveDays дней назад
$lastActiveDate = $currentDate.AddDays(-$inactiveDays)
# Получаем список компьютеров в домене, которые были активны в течение последних $inactiveDays дней
$activeComputers = Get-ADComputer -Filter {LastLogonDate -gt $lastActiveDate} -Property Name,LastLogonDate
# Выводим информацию о каждом активном компьютере
foreach ($computer in $activeComputers) {
Write-Host "Компьютер: $($computer.Name)"
Write-Host "Последний вход в систему: $($computer.LastLogonDate)"
Write-Host "------------------------"
}
# Опционально, можно сохранить информацию в файл
$activeComputers | Select-Object Name, LastLogonDate | Export-Csv -Path "C:\Script\pc.csv" -NoTypeInformation