我的目标:
使用Powershell批量创建邮件联系人。我的程序要求我手动输入ExternalEmailAddres。当我这样做的时候,程序就工作了。我不能这样做,因为要创建大量的邮件联系人。
我只是不知道我的错误在哪里。有人能帮忙吗?请
我的代码:
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://xxx.yyy.com/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking
Import-Module ActiveDirectory
$User = Import-CSV C:CREATE-MAIL-CONTACT.csv
$Params = @{
Name = $user.Name
ExternalEmailAddress = $User.PrimarySmtpAddress
OrganizationalUnit = "OU=Mail Contacts,DC=xxx,DC=com"
}
New-MailContact @Params
My CSV:
------
Displayname Name PrimarySmtpAddress
John Smith John Smith john.smith@abc.com
您的代码缺少的是对CSV的每一行进行迭代,其中一种方法是使用ForEach-Object
:
Import-CSV C:CREATE-MAIL-CONTACT.csv | ForEach-Object {
try {
$Params = @{
Name = $_.Name
ExternalEmailAddress = $_.PrimarySmtpAddress
OrganizationalUnit = "OU=Mail Contacts,DC=xxx,DC=com"
}
New-MailContact @Params
}
catch {
# error handling here
Write-Warning $_.Exception.Message
}
}