У меня есть Powershell, который каждое утро запускается на сервере моей компании (используя планировщик задач). Я заметил, что иногда он сталкивается с ошибками и выдает сообщение об ошибке, когда я запускаю его вручную, но, поскольку я запускаю его утром, прежде чем кто-либо входит в офис, у меня в настоящее время нет возможности проверить, правильно ли он работает. В идеале я хотел бы, чтобы он отправил мне электронное письмо, содержащее текст из журнала консоли (или что-нибудь еще с описанием ошибки, если у кого-то есть идея получше). Я также был бы в порядке, если бы он просто сохранял журнал консоли в текстовом файле, пока я могу проверить его позже. Кто-нибудь может помочь?
Не видя кода вашего скрипта, сложно сказать наверняка. Но знаете ли вы о встроенной переменной $Error? Это может быть то, что вы ищете.
https://bobcares.com/blog/powershell-error-clear/
$Error.Count — проверяет количество ошибок, находящихся в данный момент в списке.
$Error[0] — предоставляет информацию о самых последних ошибках.
$Error.Clear() — удаляет все ошибки из списка.
Вы можете изменить свой скрипт, чтобы сначала очистить переменную с помощью $Error.Clear()
, а затем запустить код и в конце проверить $Error.Count
, а если больше нуля, проверить $Error[0]
и записать ошибку в журнал.
Но опять же, все зависит от кода вашего скрипта. Если ваш скрипт выполняет внешние/не PowerShell команды, я не уверен, будут ли эти ошибки зафиксированы в этой переменной.
Если это не дает вам то, что вам нужно, взгляните на это:
Start-Transcript
- Это запишет все, что пишется в консоль, в файл.
Stop-Transcript
- Очевидно, что это остановит запись.
PS C:\Users\smith\Documents> Start-Transcript
Transcript started, output file is C:\Users\smith\Documents\PowerShell_transcript.NEWT.v842NPjk.20221122174909.txt
PS C:\Users\smith\Documents>
или укажите свой собственный путь с помощью
PS C:\Users\smith\Documents> Start-Transcript -Path .\PST.txt
Transcript started, output file is .\PST.txt
PS C:\Users\smith\Documents>
-NoClobber
предотвратит перезапись существующих файлов.
-Append
будет добавлен к существующему файлу.
Этот вопрос нуждается в дополнительной информации, прежде чем мы сможем помочь или определить, относится ли вопрос к теме здесь. Скорее всего, это проблема «суперпользователя», когда вы сталкиваетесь с проблемой или ограничением, специфичным для планировщика заданий (например, вы не можете запускать по требованию задачи, которые настроены на «запуск независимо от того, вошел ли пользователь в систему или нет").