Я пытался написать сценарий, чтобы я мог создать New-Mailcontact, используя файл CSV, если он еще не существует в ActiveDirectory.
Если он уже существует в Active Directory, пропустите команду New-MailContact и просто запустите Set-MailContact.
Проблема в сценарии: -
Создается новый Mailcontact, если он еще не существует в AD, тогда, если mailcontact не существует в качестве члена группы, добавить учетную запись в группу. Если он уже существует, пропустите. Кроме того, новый почтовый контакт может состоять из 4 или 5 почтовых групп, в него будут добавлены 4 почтовые группы, называемые «1100-контакт», как показано ниже. будет добавлено 5 почтовых групп, называемых «1000-контактными», как показано ниже.
, если они уже существуют в Active Directory, например, я говорю как «contact2@contoso.com», как показано ниже. если это требуется, потому что уже может быть неправильное отображаемое имя в AD. он будет обновлять отображаемое имя на основе файла CSV снова, а затем уже контакт может быть членом Group-Mail1 и Group-Mail2, который он добавит в группы, если контакт не является членом какой-либо из этих групп Group-Mail5 и Group-Mail9.
CSV:
Name,ExternalEmailAddress,group1,group2,group3,group4,group5
1000-contact,contact1@contoso.com,Group-Mail1,Group-Mail2,Group-Mail3,Group-Mail4,Group-Mail5
1100-contact,contact3@contoso.com,Group-Mail1,Group-Mail2,Group-Mail3,Group-Mail4
1200-contact,contact2@contoso.com,Group-Mail1,Group-Mail2,Group-Mail5,Group-Mail9
Я уже пробовал скрипт:
Import-Csv C:\temp\ExternalContacts.csv|
foreach-object{
if (Get-MailContact -anr $_.ExternalEmailAddress)
{
write-host $_.name 'is a duplicate entry!!!'
Set-MailContact -Identity $_.ExternalEmailAddress -DisplayName $_.Name -ForceUpgrade -Confirm:$False
Add-DistributionGroupMember -Identity "$($_.group1)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group2)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group3)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group4)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group5)" -Member $_.ExternalEmailAddress
}
else {
New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -OrganizationalUnit "OU=company_Contacts,OU=Contacts,DC=contoso,DC=com"
Add-DistributionGroupMember -Identity "$($_.group1)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group2)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group3)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group4)" -Member $_.ExternalEmailAddress
Add-DistributionGroupMember -Identity "$($_.group5)" -Member $_.ExternalEmailAddress
}
}
ОБНОВЛЕНИЕ:
Я хочу следить для пробелов в вашем CSV. Так что это будет считать пустым, если group5 пуст. Я прав?
if ($_.group5) {
Add-DistributionGroupMember -Identity $_.group5 -Member $ExternalEmailAddress
}