Basically, I'm loading the XML from my local machine, and then I'm trying to save it on a remote machine using Invoke-Command.
I know I can use Copy-item via UNC path, but it takes too long on some machines, and Invoke-Command is faster - I tested this already.
However, I think I'm passing the argument wrong?
The error I get is:
Method invocation failed because [System.String] does not contain a method named 'Save'.
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound
    + PSComputerName        : -
This is how I'm passing it:
    foreach ($serverPath in $serverLocations) {
        if ($null -ne $serverPath) {
            $generatedPath = "$(Get-Location)\Generated.ManageSQLJobs.xml" 
            [Xml]$generatedFile = Get-Content $generatedPath
            Write-Log "INFO" "Checking on $serverPath" $ExecutionLogFullPath
            $testPath = Invoke-Command -ComputerName "$serverPath" -ArgumentList [Xml]$generatedFile -ScriptBlock {
                param (
                    $value
                )
                Test-Path -Path "C:\AppData\MonitoringConfig\" 
                if (!$testPath) {
                    $destinationPath = New-Item -Path "C:\AppData\" -Name "MonitoringConfig" -ItemType Directory
                }
                if ($testPath) {
                    $destinationPath = "C:\AppData\MonitoringConfig"
                    #Write-Log "INFO" "Exists on $serverPath." $ExecutionLogFullPath 
                }
                $GetPathToDeleteXML = "C:\AppData\MonitoringConfig\Generated.ManageSQLJobs.xml" 
                if (Test-Path -Path $GetPathToDeleteXML) {
                    Remove-Item -Path * #-Filter Generated.ManageSQLJobs.xml
                }
                $GetPathForXML = "C:\AppData\MonitoringConfig\Generated.ManageSQLJobs.xml" 
                $value.Save($GetPathForXML.fullname)
            }
        }
    }