PowerShell Как определить выполнение скрипта?

#powershell

#powershell

Вопрос:

Мне было интересно, как можно определить, был ли запущен сценарий PowerShell из ISE Windows PowerShell, нажав кнопку Воспроизведения, или он был запущен запланированной задачей или чем-то еще?

Путем поиска я нашел переменную $MyInvocation.CommandOrigin , это что-то, что могло бы сработать? Спасибо за ваш совет.

Я также нашел следующее отсюда, но на самом деле это не определяет, выполняется ли оно в ISE или нет:

 if ($MyInvocation.InvocationName -eq ‘amp;‘) {
    “Called using operator“
} elseif ($MyInvocation.InvocationName -eq ‘.‘) {
    “Dot sourced“
} elseif ((Resolve-Path -Path ` 
    $MyInvocation.InvocationName).ProviderPath -eq `
    $MyInvocation.MyCommand.Path) {
    “Called using path $($MyInvocation.InvocationName)“
}
  

Ответ №1:

Вы можете проверить наличие переменной $PSISE . Он присутствует только в ISE и имеет значение $null или undefined в консоли.

 #In the console this will output False
#In the ISE this will output True
if($PSISE){$true}else{$false}
  

Комментарии:

1. Я полагаю, что из запланированной задачи это также приведет к выводу False. Спасибо 🙂