Автоматизация управления неактивными компьютерами в Active Directory с помощью PowerShell

03.04.25

Администрирование - Информационная безопасность

Скрипт на PowerShell предназначен для автоматизации управления неактивными компьютерами в Active Directory. Он ищет компьютеры, которые не использовались в течение последних 90 дней, и перемещает их в указанную организационную единицу (OU). Скрипт также ведет логирование действий, что позволяет отслеживать процесс и обеспечивать прозрачность операций. Использование данного скрипта помогает сократить время на рутинные задачи, снизить количество ошибок и повысить уровень безопасности IT-инфраструктуры.

В современных организациях управление IT-ресурсами, такими как компьютеры и пользователи, становится все более важным для обеспечения безопасности и оптимизации работы. Один из ключевых аспектов управления — это удаление или перемещение неактивных компьютеров из Active Directory (AD). В этом контексте PowerShell предоставляет мощные инструменты для автоматизации таких задач. В данной статье мы рассмотрим скрипт, который помогает выявлять и перемещать неактивные компьютеры в определенную организационную единицу (OU) в Active Directory.

 

Задачи и цели скрипта

Основная задача нашего скрипта — найти компьютеры, которые не были активны в течение последних 90 дней, и переместить их в указанную организационную единицу. Это позволяет упростить управление ресурсами и повысить безопасность, исключая неиспользуемые компьютеры из основного списка.

 

Структура скрипта

Скрипт состоит из нескольких ключевых частей:

1. Определение переменных:

   $ou = "OU=OLD  PC,DC=yourdomain,DC=com"

   $inactiveDays = 90

   $timeSpan = New-TimeSpan -Days $inactiveDays

   $logFilePath = "C:PathToYourLogFile.log"

   Здесь мы задаем путь к OU, количество дней неактивности и путь к лог-файлу.

2. Создание лог-файла:

Скрипт проверяет, существует ли лог-файл, и создает его, если он отсутствует. Это важно для сохранения информации о выполненных действиях и возможных ошибках.

3. Функция записи логов:

   function Write-Log {

       param (

           [string]$message

       )

       $timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")

       "$timestamp - $message" | Add-Content -Path $logFilePath

   }

Эта функция упрощает процесс логирования, добавляя временную метку к каждому сообщению.

4. Поиск неактивных компьютеров:

Используя командлет Search-ADAccount, скрипт получает список компьютеров, которые были неактивны в течение заданного времени. Обработка ошибок позволяет избежать сбоев в случае проблем с доступом к AD.

5. Перемещение неактивных компьютеров:

Если находятся неактивные компьютеры, они перемещаются в указанную OU с помощью Move-ADObject. Каждое действие также логируется, что позволяет отслеживать процесс.

6. Обработка результатов:

Скрипт выводит сообщения о статусе выполнения операций как в консоль, так и в лог-файл, что делает его удобным для мониторинга.

 

Преимущества использования PowerShell для автоматизации

• Экономия времени: Автоматизация рутинных задач освобождает IT-специалистов для более важных дел.

• Снижение ошибок: Человеческий фактор часто приводит к ошибкам. Автоматизация помогает минимизировать этот риск.

• Улучшение безопасности: Удаление неактивных ресурсов снижает вероятность несанкционированного доступа.

 

Заключение

Скрипт на PowerShell для перемещения неактивных компьютеров в Active Directory — это отличный пример того, как автоматизация может помочь в управлении IT-ресурсами. Он обеспечивает простоту использования, надежность и возможность быстрого реагирования на изменения в инфраструктуре. Внедрение подобного подхода может значительно улучшить эффективность работы IT-подразделений и повысить уровень безопасности организации.

 

Сам скрипт

# Задаем переменные

$ou = "OU=OLD PC,DC=yourdomain,DC=com"  # Замените на ваш путь к OU

$inactiveDays = 90  # Количество дней неактивности

$timeSpan = New-TimeSpan -Days $inactiveDays

$logFilePath = "C:\PathToYourLogFile.log"  # Укажите путь к файлу для логирования

# Проверяем, существует ли лог-файл, и создаем его, если нет

if (-not (Test-Path $logFilePath)) {

    New-Item -Path $logFilePath -ItemType File -Force | Out-Null

}

# Функция для записи логов

function Write-Log {

    param (

        [string]$message

    )

    $timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")

    "$timestamp - $message" | Add-Content -Path $logFilePath

}

# Получаем список неактивных компьютеров

try {

    $inactiveComputers = Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan $timeSpan

} catch {

    Write-Log "Ошибка при получении списка неактивных компьютеров: $_"

    exit

}

# Проверяем, есть ли неактивные компьютеры

if ($inactiveComputers.Count -eq 0) {

    $message = "Нет неактивных компьютеров за последние $inactiveDays дней."

    Write-Host $message

    Write-Log $message

} else {

    foreach ($computer in $inactiveComputers) {

        try {

            Move-ADObject -Identity $computer.DistinguishedName -TargetPath $ou -ErrorAction Stop

            $message = "Успешно перемещен компьютер: $($computer.Name) в $ou"

            Write-Host $message

            Write-Log $message

        } catch {

            $errorMessage = "Ошибка при перемещении компьютера: $($computer.Name). Ошибка: $_"

            Write-Host $errorMessage

            Write-Log $errorMessage

        }

    }

}

PowerShell Active Directory Неактивные компьютеры Автоматизация Организационная единица (OU) Логирование IT-инфраструктура Удаление Срок неактивности Снижение ошибок Безопасность Управление компьютерами Системный

См. также

Информационная безопасность Пароли Платформа 1С v8.3 Бесплатно (free)

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    8006    kamisov    19    

62

Информационная безопасность Программист Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    11007    PROSTO-1C    10    

40

Информационная безопасность Программист Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    2923    platonov.e    1    

23

Информационная безопасность Системный администратор Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    6708    22    soulner    8    

33

Информационная безопасность Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    8015    56    Silenser    12    

24

Информационная безопасность Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    11659    Tavalik    46    

118
Оставьте свое сообщение