Я пытаюсь перенаправить вывод скрипта .bat в файл.Сценарий запускается на другом компьютере.
Комментированная строка работает.Файл t.txt создается в ожидаемом месте.Я не могу убедить PowerShell создать выходной файл при использовании ScriptBlock.
Текущий результат заключается в том, что текст $ sb выводится на консоль PowerShell, выполняющую этот сценарий.На сервере SERVER2 не создается файл.Что мне нужно, чтобы выходные данные были записаны в файл, указанный в блоке скриптов?
$cn = 'SERVER2'
$Logfile = "D:\DBA\Scripts\monlogs\monlog_$(Get-Date -Format 'yyyy-MM-ddTHH-mm-ss').txt"
$sb = [scriptblock]::Create("{ & cmd.exe /C D:\DBA\Scripts\mon_test_001.bat >`"$Logfile`" }")
### Invoke-Command -ComputerName $cn -ScriptBlock { & D:\DBA\Scripts\mon_test_001.bat >D:\DBA\Scripts\monlogs\t.txt 2>&1 }
Invoke-Command -ComputerName $cn -ScriptBlock $sb
EDIT
После комментария BenH я обнаружил, что следующее работает какожидается.Обратите внимание, что параметр должен был экранировать $.
$sb = [scriptblock]::Create("param(`$Logfile) & cmd.exe /C D:\DBA\Scripts\mon_test_001.bat >`"$Logfile`"")