Я хочу сделать некоторую домашнюю работу перед выполнением любых внешних консольных приложений (настройка некоторых переменных среды).
В моем веб-исследовании похоже, что переопределение NotifyBeginApplication () в $ host может помочь. К сожалению, я не могу понять, как это сделать.
Вот по сути то, что я хочу сделать ...
$host = $host | `
Add-Member -force -pass -mem scriptmethod NotifyBeginApplication `
{ $env:_startTime = [datetime]::now; $env:_line = $myInvocation.Line }
Это не работает, так как $ host является константой, и в любом случае это может быть неправильный подход.
Документация, которую я смог найти, гласит, что эта функция вызывается до того, как будет выполнено любое "устаревшее" консольное приложение, но в другой записи блога говорится, что она вызывается только для консольных приложений, которые не имеют перенаправления ввода / вывода. 1010 *
Итак, это правильный способ сделать это? Если так, как бы я переопределил функцию?
Если нет, то как это можно сделать?
Единственная альтернатива, которую я видел, может сработать - это полностью реализовать собственный PSHost. Это кажется возможным с существующим доступным исходным кодом, но помимо того, что я хочу попробовать.