Не ответ, просто примечание.
Я искал объяснение параметра -file
. Большинство источников говорят только «Выполнить файл сценария». На http://technet.microsoft.com/en-us/library/dd315276.aspx я читаю
Runs the specified script in the local scope ("dot-sourced"), so that the functions
and variables that the script creates are available in the current session. Enter
the script file path and any parameters.
После этого я попытался назвать это:
powershell -command ". c:\temp\aa\script.ps1"
powershell -file c:\temp\aa\script.ps1
powershell -command "& c:\temp\aa\script.ps1"
Обратите внимание, что первые два останавливаются после Get-Foo
, а последний - нет.
Проблема, которую я описал выше, связана с модулями - если вы определите Get-Foo
внутри script.ps1, все 3 описанных мною вызова останавливаются после вызова Get-Foo
.
Просто попробуйте определить его внутри script.ps1 или поставьте файл с Get-Foo
и проверьте его. Есть шанс, что это сработает:)