La fonction Obtiennent-DatabaseStatus
{
Param (
[Corde []] $Server
)
$Server | ForEach-Objet {
# exposition quelques indicateurs de progrès
Écrire-Centre serveur « commençant la boucle pour $_ »
Écrire-Hôte « exécutant la question de WMI »
$wmiServer = Obtiennent-Wmiobject Exchange_Server - `de _ de $ d'ordinateur
- #-ErrorAction racine \ MicrosoftExchangeV2 SilentlyContinue de namespace
L'Écrire-Hôte « créant CDOEXM objecte »
$cdoexmIExchangeServer = Nouveau-Objet - COM CDOEXM.ExchangeServer
$cdoexmIStorageGroup = Nouveau-Objet - COM CDOEXM.StorageGroup
$cdoexmIMailboxStoreDB = Nouveau-Objet - COM CDOEXM.MailboxStoreDB
Écrire-Centre serveur « point d'émission de serveur d'échange d'ouverture »
$cdoexmIExchangeServer.Datasource.Open ($_)
Écrire-Hôte « vérifiant StorageGroups »
$cdoexmIExchangeServer.StorageGroups |
Où-Objet {Ne 0 de $_.IndexOf (« groupe de stockage de CN=Recovery ») -} |
ForEach-Objet {
Écrire-Hôte « groupe $_ de stockage d'ouverture »
$cdoexmIStorageGroup.DataSource.Open ((« LDAP : / » + $_))
$cdoexmIStorageGroup.MailboxStoreDBs | ForEach-Objet {
Écrire-Centre serveur « magasin $MailStore d'ouverture »
$cdoexmIMailboxStoreDB.DataSource.Open ((« LDAP : / » + $_))
$cdoexmIMailboxStoreDB | Nom de Choisir-Objet,
@ {e= de n='Status'; {si ($_.Status - eq 0) {« monté »} autrement {« démonté »}}}
}
}
}
}
}
Obtenir-DatabaseStatus « server1 », « server2 » | ConvertTo-HTML
|