From 02fd5cb537d9011613da7484fd1f29ea3aad7065 Mon Sep 17 00:00:00 2001 From: Demonic Date: Thu, 3 Feb 2022 16:15:23 +0100 Subject: [PATCH] Add files via upload --- POWERSHELL/SCOM/List_Grey_Agent_SCOM.ps1 | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 POWERSHELL/SCOM/List_Grey_Agent_SCOM.ps1 diff --git a/POWERSHELL/SCOM/List_Grey_Agent_SCOM.ps1 b/POWERSHELL/SCOM/List_Grey_Agent_SCOM.ps1 new file mode 100644 index 0000000..3da604c --- /dev/null +++ b/POWERSHELL/SCOM/List_Grey_Agent_SCOM.ps1 @@ -0,0 +1,65 @@ +#Import the OperationsManager module +Import-Module OperationsManager + +#Set date +$Date = Get-Date -Format "dd/MM/yyyy" + +#Set CSV location +$CSVLoc = "C:\Temp\grey_state_scom_agents.csv" + +#Set Mail adresses +$MailFrom = "noreply@domain.com" +$MailTo = @("team@domain.com", "masterchief@domain.com") +$MailCc = "beermaster@domain.com" + +#Set Mail Subject +$MailSubject = "[SCOM][AUTO] Liste Agents Offline - $Date" + +#Set SMTP Server +$SMTPSrv = "smtp.domain.com" + +#Get SCOM agents in grey state +$Agent = Get-SCOMClass -Name Microsoft.Windows.Computer +$Objects = Get-SCOMMonitoringObject -class:$Agent | Where-Object {$_.IsAvailable –eq $false} + +# Setup array +$SCOMArray = @() + +# Loop through the servers +ForEach ($Object in $Objects) +{ + Write-Host "Processing: " -NoNewline + Write-host $object.DisplayName -ForegroundColor Green + + # Checking primary managemnt server + $Mgmt = (Get-SCOMAgent -Name $object.DisplayName).PrimaryManagementServerName + + # Create a custom object + $SCOMObject = New-Object PSCustomObject + $SCOMObject | Add-Member -MemberType NoteProperty -Name "Server" -Value $object.DisplayName + #$SCOMObject | Add-Member -MemberType NoteProperty -Name "AD Site" -Value $object."[Microsoft.Windows.Computer].ActiveDirectorySite" + #$SCOMObject | Add-Member -MemberType NoteProperty -Name "Primary Management Server" -Value $Mgmt + #$SCOMObject | Add-Member -MemberType NoteProperty -Name "Last Modified" -Value $object.LastModified + #$SCOMObject | Add-Member -MemberType NoteProperty -Name "IsAvailable" -Value $object.IsAvailable + #$SCOMObject | Add-Member -MemberType NoteProperty -Name "Health state" -Value $object.HealthState + #$SCOMObject | Add-Member -MemberType NoteProperty -Name "In Maintenance Mode" -Value $object.InMaintenanceMode + + # Add custom object to our array + $SCOMArray += $SCOMObject +} + +# Display results in console +$SCOMArray | Sort-Object -Property Server | Format-Table -AutoSize -Wrap + +# Open results in pop-up window +#$SCOMArray | Out-GridView -Title "Unhealthy SCOM Agents" + +# Save results to CSV +$SCOMArray | Sort-Object -Property Server | Export-Csv -Path "$CSVLoc" -NoTypeInformation -Force + +#Set Body content +$BodyList = $SCOMArray | Sort-Object -Property Server | Format-Table -AutoSize -Wrap | Out-String +$Body = "Bonjour, `n`nVoici la liste des Agents SCOM Offline :`n$BodyList`n`nMail hebdomadaire automatique via le script C:\Scripts\grey_state_scom_agents.ps1 sur HOST" + +#Send results + CSV by mail +Send-MailMessage -Attachments "$CSVLoc" -Body $Body -From "$MailFrom" -To $MailTo -Cc "$MailCc" -Subject "$MailSubject" -priority High -dno OnSuccess, OnFailure -SmtpServer "$SMTPSrv" \ No newline at end of file