Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Спасибо, сработало!!!! еще просьба подскажите насколько правильно составлен скрипт и что еще можно добавить?
полная версия скрипта:
Код: Выделить весь код
[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 ругнется, но скрипт продолжает работать и в конце отправляет сообщение о том что заявка исполнена, хотелось бы что бы скрип останавливался и выводил на консоль ошибку, и тд.
Да, еще не получается написать нормально условия для отправки сообщения только директору (если он присутствует в группе, куда дабовляется новый пользователь) или начальнику (если директора в данной группе нет)

Последний раз редактировалось ejik_off, 13-09-2012 в 15:21.


Отправлено: 15:15, 13-09-2012 | #3