Спасибо, сработало!!!! еще просьба подскажите насколько правильно составлен скрипт и что еще можно добавить?
полная версия скрипта:
Код:

[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
$account,
[Parameter(Mandatory=$true)]
$al,
[Parameter(Mandatory=$true)]
$gname,
[Parameter(Mandatory=$true)]
$sname,
[Parameter(Mandatory=$true)]
$OrUn,
[Parameter(Mandatory=$true)]
$Dep
)
$fname = $sname + " " + $gname
$password = ConvertTo-SecureString "Password" -AsPlainText -Force
#------------------ Создание учетной записи -------------------#
New-Mailbox -Name $fname `
-Alias $al `
-OrganizationalUnit "npfcapital.kz/NPFCapital/Users/$OrUn" `
-UserPrincipalName "$account@corp.loc" `
-SamAccountName $account `
-FirstName $gname `
-Initials '' `
-LastName $sname `
-Password $password `
-DisplayName ($sname + ' ' + $gname)`
-ResetPasswordOnNextLogon $true
import-module ActiveDirectory
#------------------ Добавляем учетную запись в группу Restrict участие в этих группах не дает возможность получать\отправлять за пределы предприятия----------#
$group = Get-ADGroup -Filter {Name -like "DG-CAP-Restrict-*"}
Foreach ($DG in $group)
{
Add-ADPrincipalGroupMembership $account -MemberOf $DG
}
#------------------ Добавляем учетную запись в группу OpenFire ----------#
Add-ADGroupMember GRP-OpenFire -Members $account
#------------------ Добавляем учетную запись в группу соответствующего региона или департамента ----------#
$regname = Get-ADGroup -Filter {cn -like $Dep } -Properties cn | `
Where {$_.GroupCategory -eq "Security"}
Add-ADGroupMember $regname -Members $account
#----------------- Вытаскиваем из текущей группы Директора или Начальника и отпровляем сообщения----------#
$user = $regname | Get-ADGroupMember | Get-AdUser -Properties Description, mail | `
%{ If ($_.Description -like '*Директор*')
{
Write-Host 'Сообщение ушло на адрес' $_.mail
$mail=$_.mail
# Формируем уведомление для начальника или директора
# его отдела с данными для авторизации нового пользователя
#$Attach = new-object System.Net.Mail.Attachment("d:\list.txt")
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
#$Msg.Attachments.add($Attach)
$Msg.To.Add("$mail")
$Msg.from="Admin@corp.loc"
$Msg.Subject="Заявка на предоставление доступа"
$Msg.Body="Заявка на предоставление доступа к информационным ресурсам фонда для пользователя $fname - исполнена.
Имя для входа в компьютер: $account
Пароль: Password"
$SMTPClient.Host="mailserver"
$SMTPClient.Send($Msg)
}
elseif ($_.Description -like '*Начальник*')
{
Write-Host 'Сообщение ушло на адрес' $_.mail
$mail=$_.mail
# Формируем уведомление для начальника или директора
# его отдела с данными для авторизации нового пользователя
#$Attach = new-object System.Net.Mail.Attachment("d:\list.txt")
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
#$Msg.Attachments.add($Attach)
$Msg.To.Add("$mail")
$Msg.from="Admin@corp.loc"
$Msg.Subject="Заявка на предоставление доступа"
$Msg.Body="Заявка на предоставление доступа к информационным ресурсам фонда для пользователя $fname - исполнена.
Имя для входа в компьютер $account
Пароль Password"
$SMTPClient.Host="mailserver"
$SMTPClient.Send($Msg)
}
}
Так же хотелось бы корректная обработка ошибок, допустим если пользователь уже существует в ад с таким именем, PS ругнется, но скрипт продолжает работать и в конце отправляет сообщение о том что заявка исполнена, хотелось бы что бы скрип останавливался и выводил на консоль ошибку, и тд.
Да, еще не получается написать нормально условия для отправки сообщения только директору (если он присутствует в группе, куда дабовляется новый пользователь) или начальнику (если директора в данной группе нет)