Test/get-IncidentPriority.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$PriorityData = (get-scsmobject System.WorkItem.Incident.GeneralSetting).PriorityMatrix
if ( $PriorityData )
{
    $matrix = [xml]$PriorityData
}
$Impact  = Get-SCSMEnumeration System.WorkItem.TroubleTicket.ImpactEnum. | sort Ordinal
$Urgency = Get-SCSMEnumeration System.WorkItem.TroubleTicket.UrgencyEnum. | sort Ordinal
$count=1
foreach($U in $Urgency)
{
    $UOrdinal = $U.Ordinal
    foreach($I in $Impact)
    {
        $IOrdinal = $I.Ordinal
        $UN = $U.DisplayName; $IN = $I.DisplayName
        $UID = $U.ID; $IID = $I.ID
        $xpath = "Matrix/U[@Id='$UID']/I[@Id='$IID']/P"
        if ( $ProrityData )
        {
            $value = $Matrix.SelectSingleNode($xpath)."#text"
        }
        else
        {
            $Value = $count++
        }
        new-object psobject | 
            add-member -pass NoteProperty UrgencyImpact "${UN}${IN}" |
            add-member -pass NoteProperty Value $value |
            add-member -pass NoteProperty Ordinal ($UOrdinal * $IOrdinal)
    }
}