У меня есть сценарий PowerShell, который отлично работает из строки cmd, но сильно сбивается при запуске из планировщика задач.
Поэтому мне нужно видеть весь вывод консоли от всех команд.
Скрипт выполняет множество внешних команд (net use, robocopy и т. Д.). Результат этих команд - это то, что мне нужно больше всего.
Мы не хотим инструментировать каждую команду, потому что она уродлива и потому что нам нужно запускать ее в интерактивном режиме (и смотреть, что происходит).
Я пробовал PowerShell "Start-Transcript" с -Verbose, но НИКАКАЯ из команд не записывается в файл транскрипции. Даже когда мы следовали эта директива от парня из команды powershell: | Out-Default (например, ipconfig.exe | Out-Default), мы ВСЕ ЕЩЕ не видим вывода в расшифровке.
Что дальше?
Настройте ведение журнала в рамках запланированной задачи с помощью перенаправления вызова PowerShell:
cmd /c powershell.exe -noninteractive -file c:\temp\script.ps1 > c:\temp\some.log 2>&1
Если ROBOCOPY
log выполняет более 10 файлов, я бы оставил это отдельно с /LOG:c:\temp\robo.log
опция, которую поддерживает команда.
Что ж, даже если бы не самое красивое решение, вы могли бы сделать что-то вроде следующего?
net use z: \\my\path >> mylogfile.txt 2>&1
И вы можете сделать то же самое с возможностями ведения журнала robocopy, просто добавив в тот же файл.