I have written a script to query my NCM database (currently in lab environment) to run some show commands on our switches/firewalls. This part works no problem and i have been using the ExecuteScript verb which does output a GUID wrapped in XML.
Unless I am just tired and blind I am not seeing why this is eroring out.
Code is here:
#connecting to SolarWinds API on localhost
$swis = connect-swis -username $username -password $password
#build the query to get scope of nodes from NCM
$ciscoQuery = @"
SELECT NodeID, NodeCaption, AgentIP, StatusText, Vendor
FROM Cirrus.Nodes
WHERE Vendor Like 'Cisco'
$paloQuery = @"
SELECT NodeID, NodeCaption, AgentIP, StatusText, Vendor
FROM Cirrus.Nodes
WHERE Vendor Like 'Palo Alto%'
#execute the query and put into parameter for later use with sub properties to use
$ncmNodesCisco = Get-SwisData $swis $ciscoQuery
$ncmNodesPalo = Get-SwisData $swis $paloQuery
$ciscoIds = @($ncmNodesCisco.NodeID)
$paloAltoIds = @($ncmNodesPalo.NodeID)
$ciscoScript = "show ip interface brief`nshow vlan br"
$paloAltoScript = "show interface logical"
$ciscoScriptExecuteScript = Invoke-SwisVerb $swis Cirrus.ConfigArchive ExecuteScript ($ciscoIds, $ciscoScript) # | Out-Null
$ciscoScriptTransferID = "'" + ($ciscoScriptExecuteScript.guid) + "'"
$paloAltoScriptExecuteScript = Invoke-SwisVerb $swis Cirrus.ConfigArchive ExecuteScript ($paloAltoIds, $paloAltoScript) # | Out-Null
$paloAltoScriptTransferID = "'" + ($paloAltoScriptExecuteScript.guid) + "'"
$ciscoScriptExecuteScript
$ciscoScriptTransferID
Get-SwisData $swis "SELECT Status, Error FROM NCM.TransferResults WHERE TransferID='$ciscoScriptExecuteScript.guid'" #@{ transferCisco = $ciscoScriptTransferID }
<#
do {
Start-Sleep -Seconds 1
$ciscoStatus = Get-SwisData $swis "SELECT T.Status, T.Error FROM NCM.TransferResults T WHERE T.TransferID=@transferCisco" @{ transferCisco = '$ciscoScriptTransferID' }
Write-Output $ciscoStatus.Status
}
while (($ciscoStatus.Status -ne 'Complete') -and (-not $ciscoStatus.Error))
do {
Start-Sleep -Seconds
$paloStatus = Get-SwisData $swis "SELECT T.Status, T.Error FROM NCM.TransferResults T WHERE T.TransferID=@transferPalo" @{ transferPalo = $paloAltoScriptTransferID }
Write-Output $paloStatus.Status
}
while (($paloStatus.Status -ne 'Complete') -and (-not $paloStatus.Error))
$ciscoOutput = Get-SwisData $swis "SELECT T.DeviceOutput FROM NCM.TransferResults T WHERE T.TransferID=@transferCisco" @{ transferCisco = $ciscoScriptTransferID }
$paloOutput = Get-SwisData $swis "SELECT T.DeviceOutput FROM NCM.TransferResults T WHERE T.TransferID=@transferPalo" @{ transferPalo = $paloAltoScriptTransferID }
Write-Output $ciscoOutput
Write-Output $paloOutput
#>
Run output is here:
Id : 1
Size : 1
xmlns : http://schemas.datacontract.org/2004/07/SolarWinds.InformationService.Contract
d1p1 : http://schemas.microsoft.com/2003/10/Serialization/Arrays
i : http://www.w3.org/2001/XMLSchema-instance
z : http://schemas.microsoft.com/2003/10/Serialization/
guid : bb0f251b-7a49-4279-ac75-f6e870561474
'bb0f251b-7a49-4279-ac75-f6e870561474'
Get-SwisData : Cannot resolve property Error
At C:\Users\*username*\Desktop\TestingNCM.ps1:39 char:1
+ Get-SwisData $swis "SELECT Status, Error FROM NCM.TransferResults WHE ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-SwisData], FaultException`1
+ FullyQualifiedErrorId : SwisError,SwisPowerShell.GetSwisData
I am trying to see how the transfer results output looks in a variable before i can continue with what I am designing.
Would LOVE any assistance much more knowledgeable folks than me can bring. Thank you for your time.