PowerShell пользователи Active Directory в группе

Предлагаю рассмотреть PowerShell скрипт который выгружает в CSV файл данные активных пользователей (не отключенных) состоящих в группе Active Directory.

Для того, что бы получить данные нужно:

  1. Запустить скрипт
  2. Указать имя группы из AD
  3. Указать директорию для выгрузки. Если директорию не указывать, то выгрузка будет выполнена на диск D:\ с именем файла идентичным указанной группе AD.

PowerShell скрипт для выгрузки в CSV файл данных активных пользователей состоящих в группе Active Directory

Do {

    cls

    Write-host "
    ==============================
    Автор: Николаев Олег Николаевич
    Site: 3dlan.ru
    Version: 1.1
    ==============================
    " -foregroundcolor DarkGray

    Write-host "Экспорт активных пользователей из указанной группы
    " -foregroundcolor DarkGray

    $groupname = Read-Host -Prompt "Введите группу"
    If ($groupname -eq "") {
        Write-host "Группа не указана.
        Работа скрипта завершена." -foregroundcolor Red
        break
    }

    $i = 1
    
    try {
        $users = Get-ADGroupMember -Identity $groupname | ? {$_.objectclass -eq "user"}
        Write-host "Группа найдена" -foregroundcolor Green
    }
    Catch  { # Выход по ошибке Группа не нашлась
        Write-host "Группа не найдена" -foregroundcolor Red
        break
    }

    foreach ($activeusers in $users) {
    $user = (Get-ADUser -Identity $activeusers -Properties Name, SamAccountName, displayname, department, title | ? {$_.enabled -eq $true} | Select-Object Name, SamAccountName, Department, Title | ForEach-Object {$_.Name + ";" + $_.SamAccountName + ";" + $_.Department + ";" + $_.Title} | Out-String).Trim()

    If (![string]::IsNullOrEmpty($user)) { #$user -ne ""
            "№$i " + $user
            $export += $user + "; `n"
            $i += 1
        }
    }
  
    #cls
    $folder = Read-Host -Prompt "Введите URL
        Нажмите Enter если хотите продолжить экспорт по умолчанию
        Пример: D:\"

    If ($folder -eq "") { $folder = "D:\" }
    Write-host "Экспортировано в: D:\$groupname.csv" -foregroundcolor Yellow
    $export > "$folder$groupname.csv"

    $export = ""
    $folder = ""
    $user = ""
    $groupname = ""
    
    $RepairReinstall = Read-Host -Prompt "
    1: Завершить
    2: Перезапустить
    Введите число:"

        If ($RepairReinstall -eq 1) {
            Write-Host "Завершить" 
            break
        }

        If ($RepairReinstall -eq 2) {
            Write-Host "Перезапуск скрипта" 
        }
}
While ($true)

 


Рейтинг: 0/5 - 0 голосов

Комментарии ()