functions/Get-DbaAgentAlert.ps1
FUNCTION Get-DbaAgentAlert { <# .SYNOPSIS Returns all SQL Agent alerts on a SQL Server Agent. .DESCRIPTION This function returns SQL Agent alerts. .PARAMETER SqlInstance SqlInstance name or SMO object representing the SQL Server to connect to. This can be a collection and receive pipeline input. .PARAMETER SqlCredential PSCredential object to connect as. If not specified, current Windows login will be used. .NOTES Author: Klaas Vandenberghe ( @PowerDBAKlaas ) Tags: Agent, SMO Website: https://dbatools.io Copyright: (C) Chrissy LeMaire, clemaire@gmail.com License: GNU GPL v3 https://opensource.org/licenses/GPL-3.0 .PARAMETER Silent Use this switch to disable any kind of verbose messages .LINK https://dbatools.io/Get-DbaAgentAlert .EXAMPLE Get-DbaAgentAlert -SqlInstance ServerA,ServerB\instanceB Returns all SQL Agent alerts on serverA and serverB\instanceB .EXAMPLE 'serverA','serverB\instanceB' | Get-DbaAgentAlert Returns all SQL Agent alerts on serverA and serverB\instanceB #> [CmdletBinding()] param ( [parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $True)] [Alias("ServerInstance", "Instance", "SqlServer")] [DbaInstanceParameter[]]$SqlInstance, [PSCredential] $SqlCredential, [switch]$Silent ) process { foreach ($instance in $SqlInstance) { try { Write-Message -Level Verbose -Message "Connecting to $instance" $server = Connect-SqlInstance -SqlInstance $instance -SqlCredential $sqlcredential } catch { Stop-Function -Message "Failure" -Category ConnectionError -ErrorRecord $_ -Target $instance -Continue } Write-Message -Level Verbose -Message "Getting Edition from $server" Write-Message -Level Verbose -Message "$server is a $($server.Edition)" if ($server.Edition -like 'Express*') { Stop-Function -Message "There is no SQL Agent on $server, it's a $($server.Edition)" -Continue } $defaults = "ComputerName", "SqlInstance", "InstanceName", "Name", "ID", "JobName", "AlertType", "CategoryName", "Severity", "IsEnabled", "DelayBetweenResponses", "LastRaised", "OccurrenceCount" $alerts = $server.Jobserver.Alerts foreach ($alert in $alerts) { $lastraised = [dbadatetime]$alert.LastOccurrenceDate Add-Member -Force -InputObject $alert -MemberType NoteProperty -Name ComputerName -value $server.NetName Add-Member -Force -InputObject $alert -MemberType NoteProperty -Name InstanceName -value $server.ServiceName Add-Member -Force -InputObject $alert -MemberType NoteProperty -Name SqlInstance -value $server.DomainInstanceName Add-Member -Force -InputObject $alert -MemberType NoteProperty Notifications -value $alert.EnumNotifications() Add-Member -Force -InputObject $alert -MemberType NoteProperty LastRaised -value $lastraised Select-DefaultView -InputObject $alert -Property $defaults } } } } |