Целью является возможность протестировать сценарий PowerShell без интерактивного взаимодействия с минимальной церемонией. Он намеренно запускается по-разному на сервере CI, чем при запуске в интерактивном режиме, и я бы хотел его отладить. В идеале я мог бы проверить это, не настраивая запланированную задачу. Утилита командной строки была бы фантастической.Как запустить неинтерактивный процесс с интерактивного сеанса
Различия между CI-сервером (сборка TFS, неинтерактивная) и моей машиной (работает в интерактивном режиме) - это значение [Environment]::UserInteractive
. Когда я набираю powershell -c [Environment]::UserInteractive
в командной строке, я получаю True
, как и ожидалось. Цель состоит в том, чтобы иметь возможность набирать someutility powershell -c [Environment]::UserInteractive
и распечатывать его False
, так же как и печать под управлением TFS.
Я хочу написать someutility
на C++, если кто-то может описать, как это работает. Я исследую, но час ничего не принес. Все уже работают не интерактивно или хотят запускать интерактивные, и я вхожу в точный обратный сценарий. Кажется, что должен быть способ сделать это из командной строки, отличной от администратора, поскольку запущенный процесс должен иметь одинаковые права пользователя, но быть ограничен неинтерактивным.
До сих пор я мог получить это желаемое [Environment]::UserInteractive
= ложное поведение с использованием запланированной задачи и выбор «Запустить, включен ли пользователь или нет». Но это боль, и я не вижу, что неинтерактивный stdout, который я знаю, возможен, потому что сборка TFS показывает это вживую. Кроме того, запланированная задача не заканчивается, когда выполняется не интерактивно, поэтому трудно сказать, когда это будет сделано.
Это потрясающе! У меня есть доказательство работы! – jnm2