我正在尝试使用PowerShell从我们的云托管Exchange服务器中删除100+邮箱,但我一直收到此错误:
无法执行该操作,因为对象'...‘在'...‘上找不到
这些空格显然是来自数组和Exchange服务器的对象。我正在从一个标题为'mailbox‘的.csv文件中拉出对象(我已经尝试了电子邮件地址和显示名称)。我使用了Disable-Mailbox和Remove-Mailbox,但都没有用。
下面是我的脚本:
Import-Csv "C:\temp\array.csv" | ForEach-Object {
Remove-Mailbox -identity $_.mailbox -confirm:$false
}
我已经搜索了一整天,似乎找不到为什么找不到这些对象的原因,这些对象实际上是我们Exchange环境中的邮箱。
发布于 2018-12-06 04:41:17
我假设发生的情况是mailbox
的CSV列与邮箱的identity
不匹配
您可以使用条件来确保在实际邮箱上运行Remove-mailbox
:
#assuming that "array.csv" has a column named mailbox
Import-Csv "C:\temp\array.csv" | ForEach-Object {
if((Get-Mailbox -Identity $_.Alias | Measure).Count -eq 1)
{
Write-Host "Removing "$_.mailbox -ForegroundColor Green
Remove-Mailbox -Identity $_.mailbox -Confirm:$false #Here you should add -Whatif before running
}
else
{
Write-Host $_.mailbox " not found or not unique" -ForegroundColor Yellow
}
}
或者,如果您确信查询是正确的,则可以通过坚持使用原始脚本并在Remove-Mailbox
上放置和-ErrorAction
来忽略该错误
例如:
Import-Csv "C:\temp\array.csv" | ForEach-Object {
Remove-Mailbox -identity $_.mailbox -confirm:$false -ErrorAction SilentlyContinue
}
要测试csv列mailbox
是否与邮箱的identity
匹配,可以运行简单的Get-Mailbox
Import-Csv "C:\temp\array.csv" | ForEach-Object {
Get-Mailbox -identity $_.mailbox
}
https://stackoverflow.com/questions/53639664
复制相似问题