#powershell
Вопрос:
Я не очень хорошо разбираюсь в написании сценариев, но я пару часов пытался создать скрипт, который будет просматривать список пользователей.csv и выводить: 1. existingAccounts.txt 2.NotExistingAccounts.txt. Это работает, но я хотел бы получить 1. existingAccounts.txt чтобы включить также такие свойства,как: Описание, адрес электронной почты учетных записей.
сценарий:
Import-Module ActiveDirectory
$UserList = get-content E:UsersJohnDoeDesktopUserList.csv
Foreach ($Item in $UserList) {
$user = $null
$user = Get-aduser -filter {samAccountName -eq $Item}
if ($user)
{
$user | Out-File E:UsersJohnDoeDesktopexistingAccounts.txt -encoding default -append
}
else
{
"$item does not exist" | Out-File E:UsersJohnDoeDesktopNotExistingAccounts.txt -encoding default -append
}
}
existingAccounts.txt
производит:
DistinguishedName : CN=John DOE,OU=BOF
Management,OU=Privileged,OU=BOF,OU=Accounts,OU=KADEN,DC=DRUI,DC=PASXO,DC=com
Enabled : True
GivenName : John
Name : John Doe
ObjectClass : user
SamAccountName : john.doe
Surname : Doe
UserPrincipalName : john.doe@BOF.kaden.com
NotExistingAccounts.txt
производит
user does not exist
пожалуйста, помогите 😊
Комментарии:
1. Его лучше использовать
Import-Csv
для чтения данных CSV (если это действительно CSV — CSV означает «значения, разделенные запятыми», и, хотя текст находится в определенном формате).2. В дополнение к комментарию Билла, лучшим типом вывода будет Csv для найденных пользователей.
Ответ №1:
Существует определенный набор свойств, которые Get-ADUser
будут отображаться для пользователя рекламы по умолчанию, вам необходимо указать другие свойства, которые вы хотите отобразить с помощью -Properties
параметра (например, Description
и mail
).
Этот пример кода должен содержать те свойства, которые вы ищете, и экспортировать пользователей в файл CSV. Попробуй это.
Удалите Select-Object samAccountName, Description, Mail
в конце, если вы хотите добавить свойства по умолчанию плюс те, которые вам нужны.
Import-Module ActiveDirectory
$UserList = Get-Content E:UsersJohnDoeDesktopUserList.csv
$hash = @{
Properties = 'Description','mail'
}
$foundUsers = foreach($Item in $UserList)
{
$hash.LDAPFilter = "(|(samAccountName=$item)(name=$item))"
Get-ADUser @hash
if ($user)
{
$user
continue
}
"$item does not exist" |
Out-File E:UsersJohnDoeDesktopNotExistingAccounts.txt -encoding Default -Append
}
$foundUsers | Select-Object samAccountName, Description, Mail |
Export-Csv E:UsersJohnDoeDesktopexistingAccounts.csv -NoTypeInformation