Назад | Перейти на главную страницу

Отправка сведений о пользователе AD через SMTP

Я использовал следующий сценарий PowerShell для создания новых пользователей AD, и после создания пользователя идентификатор пользователя и пароль отображаются в Powershell. Теперь я хочу, чтобы этот идентификатор пользователя и пароль автоматически отправлялись новому пользователю с вложением в формате pdf о том, как сбросить пароль с помощью SMTP-сервера.

# Import active directory module for running AD cmdlets
Import-Module activedirectory

#Store the data from user.csv in the $user variable
$ADUsers = Import-csv d:useraccount\user.csv

#Loop through each row containing user details in the CSV file 
foreach ($User in $ADUsers)
{
    #Read user data from each field in each row and assign the data to a variable as below

    $FirstName      = $User.FirstName
    $Initials       = $User.Initials
    $Surname        = $User.LastName
    $DisplayName    = $User.DisplayName
    $Path           = $User.Path 
    $SamAccountName = $User.SamAccountName
    $Password       = $User.Password
    $Description    = $User.Description

    if (Get-ADUser -F {SamAccountName -eq $SamAccountName})
    {
         #If user does exist, give a warning
         Write-Warning "A user account with Logon Name $SamAccountName already exist in Active Directory."
    }
    else
    {
        #User does not exist then proceed to create the new user account

        #Account will be created in the OU provided by the $OU variable read from the CSV file
        New-ADUser `
            -SamAccountName $SamAccountName `
            -UserPrincipalName "$SamAccountName@DCNAME" `
            -Name "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Surname $Lastname `
            -Initials $Initials `
            -DisplayName $DisplayName `
            -Description $Description `
            -AccountPassword (convertto-securestring $Password -AsPlainText -Force) -ChangePasswordAtLogon $True
             add-adgroupmember $MemberGroup $SamAccountName 


    }
}

Мой вопрос: есть ли у кого-нибудь такой пример сценария, на который я могу ссылаться для выполнения этой задачи. Я установил и настроил SMTP, но не совсем уверен, как добавить скрипт для отправки электронного письма при создании нового пользователя.

PowerShell имеет встроенную поддержку отправки SMTP-сообщений: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/send-mailmessage.

Базовый синтаксис:

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail'

Более подробный пример (взят из той же статьи), который также включает в себя вложение и почтовый сервер для использования:

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Sending the Attachment' -Body "Forgot to send the attachment. Sending now." -Attachments .\data.csv -SmtpServer 'smtp.fabrikam.com'

Кстати, вам не нужно устанавливать SMTP-сервер для отправки электронных писем, и он, вероятно, не будет работать, если вы не настроите его должным образом и несколько других вещей (например, SPF); намного проще использовать существующий.