To create an enumeration in powershell:
$msgTypeEnum = "
namespace MessageTypes
{
public enum MessageType
{
NEW_JOB = 4,
FAILED_JOB = 5,
JOB_REMOVED = 6,
JOB_SCHED_CHANGE = 7,
SERV_NOT_REACHABLE = 8,
CLUST_FAILOVER = 9,
LOW_DRIVE_SPACE = 10,
LONG_RUNNING_JOB = 11
}
}
"
Add-Type -TypeDefinition $msgTypeEnum -Language CSharpVersion3
To pass said enumeration to a function (notice the parentheses around the enumeration value):
SendMessage $server.ServerName ([MessageTypes.MessageType]::LONG_RUNNING_JOB) "Long Running Job Alert" $msg
And, in the function (if you’re inserting the value into sql server) you’ll need to convert it to an int:
function SendMessage([string]$ServerName, [MessageTypes.MessageType]$MessageTypeID, [string]$Subject, [string]$Message)
{
#Write-Host "EXEC dbo.usp_AddMessage @ServerName='$ServerName', @MessageTypeID=$MessageTypeID, @Subject='$Subject', @Message='$Message'"
$nMsgType = [int]$MessageTypeID
SaveData "EXEC dbo.usp_AddMessage @ServerName='$ServerName', @MessageTypeID=$nMsgType, @Subject='$Subject', @Message='$Message'"
}