У меня есть скрипт ps1 со следующим импортом (большая часть этого была отладкой для этой проблемы):
$scriptPath = Split-Path $MyInvocation.MyCommand.Path -Parent;
Write-Host "Importing Modules:";
try {
Write-Host " $($scriptPath)\modules\functions-logging.psm1... " -NoNewline
Import-Module "$($scriptPath)\modules\functions-logging.psm1";
Write-Host "Done";
} catch {
Write-Host "ERROR: $($_.Exception.Message)"
}
Подмодуль functions-logging.psm1
делает очень мало, кроме нескольких Write-Host
строк.
Если я обычно открываю Powershell и запускаю команду, она работает как положено, и я вижу все выходные данные. Однако, если я запускаю powershell от имени администратора, сценарий, похоже, работает правильно, но я не вижу никакого вывода из подмодуля.
Обычный вывод:
PS P:\!Scripts\Dev> .\ops-healthcheck.ps1
Importing Modules:
P:\!Scripts\Dev\modules\functions-logging.psm1... Done
Getting checkin URL... Found URL
Task not installed.
PS P:\!Scripts\Dev>
Выходные данные администратора:
PS P:\!Scripts\DEV> .\ops-healthcheck.ps1
Importing Modules:
P:\!Scripts\DEV\modules\functions-logging.psm1... Done
PS P:\!Scripts\DEV>
Что вызывает это?
Обновление: похоже, это связано с запуском сценария с подключенного сетевого диска.
Вот некоторые результаты запуска точно таких же сценариев, скопированных на диск C: против сопоставленного диска (оба с правами администратора):
PS C:\!Scripts\DEV> .\ops-healthcheck.ps1
Importing Modules:
C:\!Scripts\DEV\modules\functions-logging.psm1... Done
Getting checkin URL... Found URL
Checking in... Success
PS C:\!Scripts\DEV> p:
PS P:\!Scripts\DEV> .\ops-healthcheck.ps1
Importing Modules:
P:\!Scripts\DEV\modules\functions-logging.psm1... Done
PS P:\!Scripts\DEV>
Дискбыл сопоставлен с контекстом администратора, поэтому я не уверен, почему это может вызвать проблему.