Имя пользователя:
Пароль:
 

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

Ветеран


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

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


Код: Выделить весь код
Import-Module ActiveDirectory

$FContacts = Import-Csv -Delimiter ";" -Path "C:\SCRIPTS\CreateContactsCSV\ContactsList.csv" | Foreach {
	$_ | Add-Member -Type NoteProperty -Name Name -Value ($_.FN +" "+ $_.LN) -PassThru
}
$AContacts = Get-ADObject -LDAPFilter "objectCLASS=contact" -SearchBase 'OU=Contacts,DC=domain,DC=local' -Property proxyAddresses,mobile,title

Compare-Object $FContacts $AContacts -Property Name -IncludeEqual -PassThru | Foreach {
	if($_.SideIndicator -eq "==") {
		$T = $_.T
		$M = $_.M
		$E = $_.E
		$N = $_.Name
		$AContacts | Where {Name -eq $N -and proxyAddresses -match $E -and (Mobile -ne $M -or Title -ne $T)} | Foreach {
			Set-ADObject -Identity $_.DistinguishedName -Replace @{mobile=$M;title=$T}
		}
	}
	
	if($_.SideIndicator -eq "=>") {
		Remove-ADObject -Identity $_.DistinguishedName -Confirm:$false
	}
	
	if($_.SideIndicator -eq "<=") {
		$FN = $_.FN
		$LN = $_.LN
		$N = ($_.FN +" "+ $_.LN)
		$A = ($_.FN +"."+ $_.LN)
		$T = $_.T
		$M = $_.M
		$OU = $_.OU
		$SMTP = 'SMTP:' + $_.E

		New-MailContact `
			-FirstName $FN `
			-LastName $LN `
			-Name $N `
			-Alias $A `
			-OrganizationalUnit $OU `
			-ExternalEmailAddress $SMTP
		
		Get-ADObject -LDAPFilter "(&(objectClass=contact)(name=$N))" -SearchBase 'OU=Contacts,DC=domain,DC=local' | Foreach {
			Set-ADObject $_ -Replace @{mobile=$M;title=$T} 
			Add-DistributionGroupMember -Identity "MY_GROUP" -Member $_.DistinguishedName
		}

	}
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:44, 07-06-2014 | #2