PowerShell的 - 检查交换DB的状态
问题描述:
我新的PowerShell的,我写这个剧本,检查数据库的状态:PowerShell的 - 检查交换DB的状态
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
$null = Get-MailboxDatabaseCopyStatus | Where-Object {$_.status -match "Mounted" } -outvariable dbstatus
$null = $dbstatus.status
if (-not $dbstatus.status -eq "Mounted"){
Write-Host "OK"
}
Else {Write-Host $dbstatus.name status: $dbstatus.status}
它的工作好。唯一的问题是,如果我有超过1dB卸载,我得到这样的:
db1 db2 status: Unmounted Unmounted
我怎样才能解决这个问题?
答
由于$dbstatus
是DatabaseCopyStatusEntry
的集合对象,你要遍历它在一个循环中得到每一个人DB的状态:
foreach($db in $dbstatus){
if ($db.Status -eq "Mounted"){
Write-Host $db.Name "OK"
}
else {
Write-Host $db.Name status: $db.Status
}
}
你期望的输出? –