Powershell: Get return result from Powershell Script called from Within other PS Script
Solution 1
Any uncaptured output is returned in Powershell.
So something like
return $returnRollBackObj
is equivalent to
$returnRollBackObj
return
So, since script2 is returning these objects, as long as these objects are not captured in script1, they will be returned by script1 as well. So you not have to do anything about "returning undefined number of objects"
Try running the scripts from console first, to see if you are getting the intended behaviour.
Solution 2
How's your IIS setup?
Just thinking , if you hve eimpersonation on, tha it might not have access to the second script's location due to the double hop issue.
Something else that may help is the transcript functionality. Add a start-transcript at the top of yu script/code and you'll get a dump of everything, comands and output (inc. Errors and warnings).
Edit:
Just realised your not assigning the returned values from script2 to aaything in script1.
You may need something like this:
$ret = & $script2 ...
Do something with $ret...
OR put it in an array $ret = @()
For loop...
$temp = & $script2 ... $ret = $ret + $temp
Then return $ret after the for loop.
Matt
Evan Layman
Updated on August 10, 2020Comments
-
Evan Layman over 3 years
Background: I have a powershell script:
script1
that takes in asourceDirectory
and two destinations (call themdest1Directory
anddest2Directory
).The sourceDirectory is structured like this:
\Source\dest1\STUFF1
and
\Source\dest2\STUFF2
script1
calls another script:script2
,foreach
STUFF (soscript2
may be run 10 times for example), providingscript2
with the necessary destination parameter, which creates backups of all of the contents "STUFF" is replacing ondest1Directory
anddest2Directory
, and then copies all of STUFF to the corresponding destination.Script1
:foreach ($folder in $STUFF1) { & $script2 -stuffParameter $folder -destDrive $dest1Directory -backUpDrive $BackUpDirectory }
The issue I'm having is:
I'm calling
script1
from a visual studio website and would likescript2
to output all of the backup directory paths it creates so I have references to them for later. I have tried this inside ofscript2
:$returnRollBackObj = New-Object Object Add-Member -memberType NoteProperty -name "RollBackLocation" -value $folderobj -inputObject $returnRollBackObj return $returnRollBackObj
But it doesn't seem to return the objects since they are subscript calls. I don't know how to return an undefined number of these objects from
script1
so I'm at a loss. Can someone help me out?