Avec le script suivant, mon intention était d'atteindre les objectifs suivants:Exportation au format CSV basé sur la date et la fixation de ce fichier à un e-mail
- Créez un fichier CSV à partir d'une série de commandes Exchange avec le fichier être nommé en fonction de la date et l'heure.
- Joignez le même fichier à un courrier électronique.
L'itération actuelle de mon script est la suivante:
$ems = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri `
http://exchangehubcas.mydomain.com/powershell
Import-PSSession $ems -DisableNameChecking
function getRepQ {
Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus |
Sort-Object mailboxserver |
Select-Object -Property mailboxserver, name, status, copyqueuelength,
replayqueuelength, contentindexstate |
Export-Csv -Path "c:\admin\scripts\exchange\ExchangeReplication_$((Get-Date).ToString('yyyy-mm-dd_hh-mm-ss')).csv"
}
function qchk {
$nowfile = getRepQ
$data = Get-Content -Path $nowfile | Select-Object -Skip 1 |
Out-String | ConvertFrom-Csv |
Select-Object -Property status -Unique
$repStat = $data.Status
foreach ($_ in $repStat) {
if ($_ -eq "Healthy") {
Send-MailMessage -Attachments $nowfile -From [email protected] `
-To [email protected] -Subject "Database replication failed" `
-Body "Review attached CSV file for more details." `
-SmtpServer exchangehubcas.mydomain.com
}
}
}
qchk
En fin de compte « santé » sera remplacé par « Échec », mais alors que le fichier .csv est généré correctement, il échoue sur le qchk
fonction indiquant que le chemin pour Get-Content
est null.
Qu'est-ce que je fais de mal et quelle est la bonne façon d'atteindre mon objectif?
Merci! Pour une raison quelconque, il échoue encore sur la ligne get-content avec path est null. La fonction qchk commence en appelant getRepQ. J'ai essayé d'ajouter une ligne de variable supplémentaire $ nowfile = $ csv, mais dans les deux cas, cela ne semble pas fonctionner dans la commande get-content. Le csv est en effet créé correctement. –
Umm ... ça marche, ou ça ne marche pas? Si cela ne fonctionne pas: veuillez ajouter le code modifié et tout nouveau message d'erreur à votre question. –
Désolé pour la réponse différée. Oui, cela fonctionne selon vos suggestions. Merci encore pour votre aide. –