Свойство $ MyInvocation.MyCommand.Path доступно только в работающем скрипте.
Чтобы определить, работаете ли вы в ISE или нет, вы можете проверить переменную $psise
:
if ($psise) {
"Running in the ISE"
} else {
"Not running in the ISE"
}
Или посмотрите на $host.Name
свойство:
PS C:\Users\andy> $host
Name : Windows PowerShell ISE Host
PS C:\Users\andy> $host
Name : ConsoleHost