我正在使用以下Powershell代码在组织中创建新邮箱。
$users = Import-CSV C:\mailboxes.csv
$users| foreach {
$Password = convertto-securestring $_.password -asplaintext -force
new-mailbox -name $_.name -alias $_.alias -FirstName $_.Firstname -LastName $_.Lastname -userPrincipalName $_.userPrincipalName -PrimarySmtpAddress $_.PrimarySmtpAddress -Database $_.database -RetentionPolicy "b3a83dc4-e471-4d05-b357-25535aa027af" -OrganizationalUnit $_.OrganizationalUnit -Password $Password –ResetPasswordOnNextLogon:$false
}
是否有办法在与该邮箱一起创建的新的活动目录用户上,向此“邮政编码”和“邮政信箱”框中插入静态文本/值?
例如,邮政编码应包含:“ 0101010101”,邮政信箱应包含“ 000”
非常感谢您的协助
答案 0 :(得分:1)
一种选择是使用\s
模块中的Set-ADUser
。在脚本的开头(在任何循环之前),如果您的模块可用于当前会话,则可以运行以下命令。
ActiveDirectory
在Import-Module ActiveDirectory
命令之后,您可以添加New-Mailbox
命令:
Set-ADUser
有时,AD复制可能会导致针对AD对象的多个命令不一致。为了解决这个问题,通常可以使用Set-ADUser -Filter "UserPrincipalName -eq '$($_.userprincipalname)'" -PostalCode "01010101" -POBox "000"
参数来始终将目标域控制器定位为将看到所有读和写操作的域控制器。另一种方法(较慢的一种方法)是在创建所有邮箱并将数据复制到您要定位的AD站点后,运行AD用户修改。
答案 1 :(得分:0)
AdminOfThings-感谢您的答复。
所以告诉我
考虑到您对我可能会发生的AD用户修改冲突的最后评论, 我认为某种“时间延迟”代码可以解决此类问题。
添加“ Start-Sleep”命令之类的延迟时间以增加延迟时间是否合乎逻辑? 您所建议的“新邮箱”和“ Set-ADUser”命令?
如果可以的话...您可以写下我的脚本的确切样式,请将所有内容加在一起吗?
谢谢。