Ответ 1
Вам нужно сделать:
$test = & $Env:WinDir\system32\inetsrv\appcmd.exe
Если вы хотите также перенаправить ошибку, добавьте 2>&1
в конец.
Это записывает вывод в файл журнала:
& $Env:WinDir\system32\inetsrv\appcmd.exe >test.log
Но что, если я хочу сохранить вывод в строковой переменной, чтобы использовать его в теле письма?
Я пробовал это без везения.
$test = ""
& $Env:WinDir\system32\inetsrv\appcmd.exe >$test
Write-Host $test
Вам нужно сделать:
$test = & $Env:WinDir\system32\inetsrv\appcmd.exe
Если вы хотите также перенаправить ошибку, добавьте 2>&1
в конец.
Захват вывода исполняемого файла так же просто, как
$cmdOutput = &"Application.exe" 2>&1
2 > & 1 - Включает поток ошибок в выходном файле
Тип возвращаемого файла в PowerShell - массив строк. В случае регистрации таких выходов
Write-Host $cmdOutput
выводит строки в массиве в выходной поток, разделенный пробелами
Чтобы напечатать их в строке в строке, выберите
Write-Output $cmdOutput
или
$cmdOutput = &"Application.exe" | Out-String
Write-Host $cmdOutput