Untitled
unknown
plain_text
2 years ago
1.9 kB
9
Indexable
Function Run-ProgramwithStdout {
param($Command)
$detail = [System.Collections.ArrayList]@()
[string]$TextReturn = ''
$StdOutputFile = "$($ENV:TEMP)\$($pid)-stdout.log"
$StdErrorFile = "$($ENV:TEMP)\$($pid)-stderr.log"
$Detail += New-Object PSObject -Property @{
"Attribute"= "Command line"
"Value" = "$Command"
"Result" = "Success"
}
$ts = Measure-Command {
$processInfo = New-Object System.Diagnostics.ProcessStartInfo
$processInfo.FileName = "powershell"
$processInfo.Arguments = "-NoProfile -ExecutionPolicy Bypass -Command $Command"
$processInfo.RedirectStandardOutput = $true
$processInfo.RedirectStandardError = $true
$processInfo.UseShellExecute = $false
$processInfo.CreateNoWindow = $true
$process = New-Object System.Diagnostics.Process
$process.StartInfo = $processInfo
$process.Start() | Out-Null
$process.WaitForExit()
$stdOutput = $process.StandardOutput.ReadToEnd()
$stdError = $process.StandardError.ReadToEnd()
$Detail += New-Object PSObject -Property @{
"Attribute"= "Return code"
"Value" = "$($process.ExitCode)"
"Result" = "Success"
}
# Standard output
$detail += New-Object PSObject -Property @{
'Attribute' = "StdOut"
'Value' = $stdOutput
'Result' = "Success"
}
# Standard Error
$detail += New-Object PSObject -Property @{
'Attribute' = "StdErr"
'Value' = $stdError
'Result' = "Success"
}
}
$ht = @{
'Text' = $detail
'ExecutionTime' = [math]::Round($ts.TotalSeconds, 0)
'ExitCode' = $process.ExitCode
}
return $ht
}
Editor is loading...
Leave a Comment