powershell - 将 ProxyAddresses 添加到单独的脚本
问题描述
目标:附加脚本以添加三个不同的 SMTP 地址。
脚本:https ://thesysadminchannel.com/how-to-create-o365-mailboxes-hybrid-exchange/
代码片段:
Write-Host "Continuing will create the AD account and O365 Email." -ForegroundColor:Green
Write-Host
$Proceed = $null
$Proceed = Read-Host "Continue? (y/n)"
if ($Proceed -ieq 'y') {
Write-Host "Creating the O365 mailbox and AD Account."
New-RemoteMailbox -Name $fullname -FirstName $firstname -LastName $lastname -DisplayName
$fullname -SamAccountName $logonname -UserPrincipalName $logonname@$domain -PrimarySmtpAddress
$logonname@$domain -Password $password -OnPremisesOrganizationalUnit $OU -DomainController $Server
Write-Host "Done..."
Write-Host
Write-Host
Sleep 5
Write-Host "Adding Properties to the new user account."
Get-ADUser $logonname -Server $Server | Set-ADUser -Server $Server -Description $Description -
Office $Office -StreetAddress $StreetAddress -City $City -State $State -PostalCode $PostalCode -
Country $Country -Title $Title -Department $Department -Company $Company -Manager $Manager -
EmployeeID
$EmployeeID
Write-Host "Done..."
Write-Host
Write-Host
if ($MemberOf) {
Write-Host "Adding Membership Groups to the new user account."
Get-ADUser $logonname -Server $Server | Add-ADPrincipalGroupMembership -Server $Server -
MemberOf $MemberOf
Write-Host "Done..."
Write-Host
Write-Host
}
}
Get-PSSession | Remove-PSSession
我要添加的是这三个值:
SMTP:user@domain.com
smtp:user@domain.mail.onmicrosoft.com
smtp:user@domain.onmicrosoft.com
这与我想出的思路一致:
Write-Host "Adding Properties to the new user account."
Get-ADUser $logonname -Server $Server | Set-ADUser -Server $Server -Description $Description
-Office $Office -StreetAddress $StreetAddress -City $City -State $State -PostalCode $PostalCode -
Country $Country -Title $Title -Department $Department -Company $Company -Manager $Manager -
EmployeeID $EmployeeID
Write-Host "Done..."
Write-Host
Write-Host
Write-Host “Setting up TCS E-mail Standard”
$userinfo.ProxyAddresses = "SMTP:" + ($FirstInitial.Add(1)) + ($userinfo.sn) +
"@DOMAIN.COM"
#$userinfo.ProxyAddresses += "smtp:" + ($userinfo.givenname) + "." + ($userinfo.sn) +
"@domain.mail.onmicrosoft.com"
$userinfo.ProxyAddresses += "smtp:" + ($FirstInitial.Remove(1)) + ($userinfo.sn) +
"@domain.onmicrosoft.com"
$userinfo.targetAddress = "SMTP:" + ($userinfo.sAMAccountName) +
"@domain.mail.onmicrosoft.com"
Write-Host "Done..."
Write-Host
然后我得到这个错误:
You cannot call a method on a null-valued expression.
At C:\Users\Temp\CreateStudentEmail.ps1:233 char:21
+ ... $userinfo.ProxyAddresses = "SMTP:" + ($FirstInitial.Add(1 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
You cannot call a method on a null-valued expression.
At C:\Users\Temp\CreateStudentEmail.ps1:235 char:21
+ ... $userinfo.ProxyAddresses += "smtp:" + ($FirstInitial.Rem ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
The property 'targetAddress' cannot be found on this object. Verify that the property exists and can
be set.
At C:\Users\Temp\CreateStudentEmail.ps1:236 char:21
+ ... $userinfo.targetAddress = "SMTP:" + ($userinfo.sAMAccou ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
只是想找到一种方法来合并代理地址部分,这样我就不必担心额外的步骤。
我从几年前使用的另一个 PowerShell 中提取了代码,然后对其进行了一些调整,但它确实将 SMTP 地址字段输入到 AD 字符中。它仍然会抛出错误。
解决方案
这是您需要做的:
set-Aduser $samaccountname -Add @{ proxyAddresses = "SMTP:user@domain.com","smtp:user@domain.mail.onmicrosoft.com","smtp:user@domain.onmicrosoft.com" }
推荐阅读
- azure - Azure 应用服务 - 用户没有足够的权限来收集 Windows 性能计数器
- flask - flask-sqlalchemy distinct + where 返回空集
- python-3.x - 无法在考拉中加载 JSON 文件,出现连接被拒绝错误
- javascript - D3.js 和弦图:避免相邻(非交叉)和弦重叠
- sql-server - r2dbc-mssql generatedKey 返回类型 numeric
- node.js - 无法在 webos 中使用 Nodejs 的“fs”模块
- c - switch 子句中的 C while 语句
- windows - psql \copy 命令在 Windows 上不起作用
- bpf - eBPF 数据包过滤器没有给我正确的数据
- python - Paramiko exec_command() 不在远程 Linux 服务器上执行命令