Мне нужно перезапустить приложение, используя службу, работающую в учетной записи SYSTEM. Проблема в том, что тогда приложение также запускается под учетной записью SYSTEM. По разным причинам, не зависящим от меня, система перезапуска немного сложна, но в результате ее сложности (c) я уверен, что должен быть хотя бы один этап, на котором можно указать учетную запись, на которой в конечном итоге запускается приложение.
Сервис вызывает bounce.bat, который содержит следующее:
@echo off
cscript "C:\Program Files\myApp\bounce.vbs"
Соответствующий раздел bounce.vbs:
Set oProcess = oWMIService.Get("Win32_Process")
Set oProgram = oProcess.Methods_("Create").InParameters.SpawnInstance_
oProgram.CommandLine = sPath & sExe
Set sShell = oWMIService.ExecMethod("Win32_Process", "Create", oProgram)
Если умных предложений нет, попробую этот подход, но я уверен, что должен быть более чистый способ.
Примечание. Перекрестная публикация из ТАК поскольку оригинал не получал никаких действий.
Может ли ваш командный файл использовать беги как?