PowerShell пользователи Active Directory в группе
Предлагаю рассмотреть PowerShell скрипт который выгружает в CSV файл данные активных пользователей (не отключенных) состоящих в группе Active Directory.
Для того, что бы получить данные нужно:
- Запустить скрипт
- Указать имя группы из AD
- Указать директорию для выгрузки. Если директорию не указывать, то выгрузка будет выполнена на диск 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)
Рейтинг:
/5 -
голосов
Комментарии ()