Public/Export-MSBackupSessionNode.ps1

Function Export-MSBackupSessionNode {
    <#
        .SYNOPSIS
            Export session nodes to file.
        .DESCRIPTION
            Export session nodes to file.
        .PARAMETER Datasource
            Datasource to export nodes for. Possible values are BareMetalRestore, Exchange, FileSystem, MySql,NetworkShares, Oracle, SystemState, VMware, VirtualDisasterRecovery, VssHyperV, VssMsSql or VssSharePoint.
        .PARAMETER Format
            Output format. Possible values are "xml" or "csv".
        .PARAMETER OutputFile
            Write output to specified file. Default is to use standard output stream, which could also be specified
            explicitly with "-" value.
        .PARAMETER Time
            Start time of backup session. Value must be provided in format "yyyy-mm-dd hh:mm:ss". Default is to print nodes
            of the most recent session.
        .INPUTS
            None
        .OUTPUTS
            None
        .EXAMPLE
            Export-MSPBackupSessionNode
        .LINK
            about_functions_advanced
        .LINK
            about_CommonParameters
    #>

    [CmdletBinding()]
    [OutputType('System.String')]
    Param(
        [Parameter(Mandatory = $true)]
        [String]$Datasource,
        [String]$Format,
        [String]$OutputFile,
        [DateTime]$Time
    )
    Begin {
        Write-Verbose ('{0}:: Function started' -f $MyInvocation.MyCommand)
        $stdOutTempFile = [System.IO.Path]::GetTempFileName()
        $stdErrTempFile = [System.IO.Path]::GetTempFileName()
    }
    Process {
        Write-Verbose ('{0}:: Getting status' -f $MyInvocation.MyCommand)
        $Status = & $Script:CmdPath -machine-readable control.session.node.export
    }
    End {
        Write-Verbose ('{0}:: Function ended' -f $MyInvocation.MyCommand)
        Return $Status
    }
}