向powershell的mailcontact添加mailalias时遇到问题

向powershell的mailcontact添加mailalias时遇到问题,powershell,Powershell,我在exchange中将邮件别名(辅助邮件地址?)添加到邮件联系人中。我可以添加主SMTP和所有其他属性,但由于某些原因,我对alias感到困惑 这是我正在运行的命令。如果我将变量替换为手动键入的字符串(例如),则该命令工作正常test@test.com“而不是$someAddress),您将在下面的示例中看到。此命令不起作用(甚至找不到联系人): 但是,这很管用: Get-Mailcontact -filter {WindowsEmailAddress -eq "test.test@test.

我在exchange中将邮件别名(辅助邮件地址?)添加到邮件联系人中。我可以添加主SMTP和所有其他属性,但由于某些原因,我对alias感到困惑

这是我正在运行的命令。如果我将变量替换为手动键入的字符串(例如
),则该命令工作正常test@test.com“
而不是
$someAddress
),您将在下面的示例中看到。此命令不起作用(甚至找不到联系人):

但是,这很管用:

Get-Mailcontact -filter {WindowsEmailAddress -eq "test.test@test.com"} -Domaincontroller $domainController | Set-Mailcontact -EmailAddresses @{ Add = "smtp:test.alias@test.com","SMTP:test.primary@test.com" } -domaincontroller $domainController
我还尝试这样添加它:

$script:ADContact_attrib = @{
    'Name' = $contact_CN
    'Displayname' = $fullName
    'PrimarySMTPAddress' = $completeMailAddress
    'Emailaddresses' = $SomeAddress
    'ExternalEmailAddress' = $forwardMailAddress
    'FirstName' = $tb_f.txt
    'LastName' = $tb_e.txt
    'OrganizationalUnit' = $OU
}
New-MailContact @ADContact_attrib -verbose -domaincontroller $domainController
这实际上适用于主smtp,即使它在一个变量内,但它不会将
电子邮件地址
部分添加到mailcontact

(Powershell studio 2016)

根据您不能在同一命令中使用
PrimarySMTPAddress
EmailAddresses

PrimarySmtpAddress参数指定主要返回电子邮件 用于收件人的地址。如果这个网站上有 cmdlet,您不能使用EmailAddresss和PrimarySmtpAddress 同一命令中的参数。默认情况下,主地址是 与ExternalEmailAddress参数值相同

所以我建议你做一些

Set-MailContact -Identity "$tb_l, $tb_f" -emailaddresses @{add=$someaddress}

尽管身份将根据您的环境而变化。在我看来,一切都是最后的,第一的

您从哪里获得
$someaddress
?我是否遗漏了它?我不确定是否必须添加它,因为我想保持代码简短。这只是示例变量。我从表单中填写的文本框中收集变量。它类似于
$script:SomeonesWindowsEmailAddress=$name.text+'.+$lastname.text+'@'+'测试。否'
$name和$lastname是文本框。这与我获取$SomeAddress的方式非常相似。它是抛出错误还是不添加错误?没有错误。如果我在powershell 1中仅键入此部分,
$user=”test@test.com“
then 2)
Get-Mailcontact-filter{WindowsEmailAddress-eq$user}-Domaincontroller$Domaincontroller
它甚至不会列出用户,即使我确定变量现在包含正确的信息。另一方面,编写
getmailcontact-filter{WindowsEmailAddress-eq“test@test.com}-Domaincontroller$Domaincontroller
工作正常。我不明白。抱歉,我错过了阅读您文章的一部分。您不能在同一个命令中使用PrimarySMTPAddress和EmailAddresses。我建议在创建内容后,只需添加一行代码
set-mailcontact-identity$identity-EmailAddresses@{add=$someaddress}
删除主服务器并更改标识确实有效。删除主服务器而不更改筛选器/标识(
Get-Mailcontact-filter{WindowsEmailAddress-eq$variable}
)由于某些原因仍然无效…我将坚持您的解决方案-谢谢,尼克!
Set-MailContact -Identity "$tb_l, $tb_f" -emailaddresses @{add=$someaddress}