Корисні скрипти powershell

Вивантаження списку користувачів з AD у файл CSV

$OUPath = 'OU=User,DC=domain,DC=local,DC=com'
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -SearchBase $OUPath -Properties SamAccountName,DisplayName,Department,Title,MobilePhone,OfficePhone,EmailAddress,City,StreetAddress | Select-Object SamAccountName,DisplayName,Department,Title,MobilePhone,OfficePhone,EmailAddress,City,StreetAddress | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter ";" $env:C:\users_list.csv

У цьому прикладі йде вивантаження списку користувачів із певного підрозділу $OUPath. Обов’язково потрібно вказати поле “SamAccountName” при вивантаженні, інакше неможливо буде завантажити файл назад в AD. Застосовуємо фільтр mail -ne “null” для вивантаження користувачів із заповненим полем E-mail у властивостях облікового запису. Та фільтр Enabled -eq “true” для вивантаження не вимкнених облікових записів. У -Properties ми вибираємо необхідні поля для вивантаження з властивостей облікового запису користувача. У -delimiter ставимо роздільник полів “;” для того щоб потім можна було розділити текст за стовпцями в MS Excel:

Завантаження списку користувачів із файлу CSV в AD

Import-Csv C:\users_list.csv -Delimiter ";" | foreach {Set-ADUser -Identity $_.SamAccountName -DisplayName $_.DisplayName -Surname $_.Surname -MobilePhone $_.MobilePhone -OfficePhone $_.OfficePhone -City $_.City -StreetAddress $_.StreetAddress}

Тут ми робимо завантаження властивостей користувачів AD з файлу и вказуємо поле, за яким ми будемо шукати користувача в AD і це “SamAccountName“. Далі йде зіставлення полів з файлу csv з полями у властивостях облікового запису AD. Наприклад, у файлі csv “-DisplayName”, а в AD “$_.DisplayName”

Скрипт вивантаження списку користувачів із AD зі стандартними паролями

$outputFile = "C:\ad_users_standart_password.csv"<br>Get-ADUser -Filter {Enabled -eq $true} -SearchBase "OU=User,DC=domain,DC=local,DC=com" | ForEach-Object {<br>$samAccountName = $_.SamAccountName<br>$passwordCheck = (New-Object DirectoryServices.DirectoryEntry "", ("domain\" + $samAccountName), "Qwerty1").psbase.name -ne $null<br>$resultObject = [PSCustomObject]@{<br>'Username' = $samAccountName<br>'PasswordCheck' = $passwordCheck<br>}<br>$resultObject | Export-Csv -Append -Path $outputFile -Delimiter ";" -NoTypeInformation<br>}

У цьому прикладі йде вивантаження списку користувачів із певного підрозділу -SearchBase. Застосовуємо фільтр Enabled -eq “true” для вивантаження не вимкнених облікових записів.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *