Functions/Get-ePoTaskLogHistory.ps1

Function Get-ePoTaskLogHistory 
{
    <#
        .SYNOPSIS
            Gets the task log history from the McAfee server.
         
        .DESCRIPTION
            Gets the task log history from the McAfee server. Uses the tasklog.listTaskHistory api command.
            This function is still a Work in Progress.
         
        .PARAMETER taskId
            The Id of the task to search the logs for.
             
        .PARAMETER maxRows
            The maximum number of rows to return.
 
        .PARAMETER age
            The age of the logs to search for.
 
        .PARAMETER unit
            The unit of measurement for the age parameter
         
        .EXAMPLE
            Get-ePoTaskLogHistory
             
            Gets the ePoTask log history from the McAfee server.
             
 
        .NOTES
            This function is still a work in progress.
            Parameters are still a work in progress for this function. Please only use it without the parameters.
             
    #>

    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory=$False,
        ValueFromPipeline=$True, ValueFromPipelinebyPropertyName=$true)]
        $taskId,
        [Parameter(Mandatory=$False,
        ValueFromPipelinebyPropertyName=$true)]
        $maxRows,
        [Parameter(Mandatory=$False,
        ValueFromPipelinebyPropertyName=$true)]
        $age,
        [Parameter(Mandatory=$False,
        ValueFromPipelinebyPropertyName=$true)]
        $unit
    )
    Begin
    {
        If(!($epoServer))
        {
            Write-Warning "Connection to ePoServer not found. Please run Connect-ePoServer first."
            break
        }  
    }
    Process 
    {
        If($taskId -and $maxRows -and $age -and $unit)
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory" -Parameters "taskId=$($taskId)&maxRows=$($maxRows)&age=$($age)&unit=$($unit)"
        }
        ElseIf($taskId)
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory" -Parameters "taskId=$($taskId)"
        }
        ElseIf($maxRows -and $age -and $unit)
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory" -Parameters "maxRows=$($maxRows)&age=$($age)&unit=$($unit)"
        }
        ElseIf($maxRows -and $age)
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory" -Parameters "maxRows=$($maxRows)&age=$($age)"
        }
        ElseIf($maxRows -and $unit)
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory" -Parameters "maxRows=$($maxRows)&unit=$($unit)"
        }
        ElseIf($age -and $unit)
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory" -Parameters "age=$($age)&unit=$($unit)"
        }
        else
        {
            $results = Invoke-ePoCommand -Command "tasklog.listTaskHistory"    
        }
        $TaskLogHistory = ForEach($result in $results.result.list.taskLogEntry)
        {
            $props = @{taskLogId=$result.id
                        TaskName=$result.name
                        startDate=(Get-Date ($result.startDate))
                        endDate=(Get-Date ($result.endDate))
                        UserStartedTask=$result.userName
                        taskSource=$result.taskSource
                        taskDuration=$result.duration         
            }
            New-Object -TypeName psobject -Property $props
        }
        $TaskLogHistory
    }
    End{}
}