Я создал образ для контейнера на основе Windows Server 1709. Во время сборки образа я запускаю скрипт powershell (в dockerfile)
RUN powershell -NoProfile "& ""C:\...\Install.ps1"""
Внутри этого скрипта я пытаюсь запустить исполняемый файл с аргументами
& "$PSScriptRoot\example.exe" /install /q
Проблема в том, что аргументы не применяются к исполняемому файлу.Но если я запускаю эту команду вручную в powershell внутри контейнера, то она работает отлично.Поэтому я попытался сделать это разными способами
Start-Process -FilePath "$PSScriptRoot\example.exe" -ArgumentList @("/install", "/q")
cmd /c "C:\...\example.exe" /install /q
cmd.exe /c "$PSScriptRoot\example.bat"
Все работает во время ручного выполнения через powershell, и никто не во время выполнения скрипта.Было много разных вариантов, которые не вошли в этот список.
Примечание!Процесс внутри контейнера выполняется всегда, но он не настраивается аргументами, когда мы делаем это через выполнение скрипта.
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.16299.431
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.16299.431
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1