Functions/Invoke-ePOCommand.ps1
Function Invoke-ePOCommand { <# .SYNOPSIS Sends the command specified to the McAfee EPO server. .DESCRIPTION Sends the command specified to the McAfee EPO server. Connect-ePoServer has to be run first, as this function uses the epoServer global variable created by that functions connection to the server. This function is the main piece of the entire POSH-ePoAPI module. .PARAMETER Command The command to send to the McAfee EPO API. .EXAMPLE $CurrentPC = Invoke-ePOCommand -Command "system.find" -Parameters "searchText=$($env:computername)" $CurrentPC.result.list.row Retruns the output of the system.find API command with a search paramter for the current computer. .NOTES Added support for -Whatif #> [CmdletBinding(SupportsShouldProcess=$true)] param ( [Parameter(Mandatory=$True, ValueFromPipeline=$True, ValueFromPipelinebyPropertyName=$true)] [string]$Command, [string[]]$Parameters ) Begin { If(!($epoServer)) { Write-Warning "Connection to ePoServer not found. Please run Connect-ePoServer first." break } } Process { If(!($Parameters)) { If($PSCmdlet.ShouldProcess("$Command","Sending command to McAfee ePo API")) { $url = "$($epoServer)/remote/$($Command)?&:output=xml" } } else { If($PSCmdlet.ShouldProcess("$Command","Sending command with $($Parameters) to McAfee ePo API")) { $url = "$($epoServer)/remote/$($Command)?$($Parameters)&:output=xml" } } If($PSCmdlet.ShouldProcess("$Command","Downloading data in xml from commands sent to McAfee ePo API")) { [xml](($wc.DownloadString($url)) -replace "OK:`r`n") } } End{} } |