Полностью безопасный способ запуска веб-страницы

Полностью безопасный способ запуска веб-страницы

На моем компьютере (Windows 10) есть один администратор и один стандартный пользователь.

Я запускаю Chrome в учетной записи администратора. Затем я блокирую свою учетную запись и вхожу в учетную запись обычного пользователя. Затем я запускаю cmd как администратор и получаю запрос UAC. Когда я запускаю Chrome (запустить Chrome), ничего не происходит. Я прикрепил ниже трассировку стека из --enable-logging --v=1. Я все еще могу запустить Chrome, когда запускаю cmd без повышенных привилегий как обычный пользователь.

[1044:4904:0723/141901.799:ERROR:disk_cache.cc(184)] Unable to create cache
[1044:4904:0723/141901.799:ERROR:shader_disk_cache.cc(606)] Shader Cache Creation failed: -2
[1044:10988:0723/141901.800:ERROR:process_singleton_win.cc(411)] Lock file can not be created! Error code: 32
[1044:10988:0723/141901.800:ERROR:chrome_browser_main.cc(1292)] Failed to create a ProcessSingleton for your profile directory. This means that running multiple instances would start multiple browser processes rather than opening a new window in the existing process. Aborting now to avoid profile corruption.

На высоком уровне мне нужен полностью защищенный способ запуска веб-страницы. Очевидно, что пользователи используют много браузеров, поэтому решение только для Chrome нежизнеспособно. Я запускаю свою веб-страницу из cmd с помощью starthttps://www.stackoverflow.com/. Насколько я понимаю, используется браузер по умолчанию (в моем воспроизводимом примере это Chrome)

Реальный пример использования — стандартный пользователь устанавливает какое-то программное обеспечение. Установщик программного обеспечения использует UAC для запуска с привилегиями администратора, поэтому установщик теперь работает под учетной записью администратора. Установщик запускает веб-страницу с подробной информацией о программном обеспечении. Веб-страница на самом деле не запускается, потому что администратор оставил открытым Chrome в своей учетной записи Windows. Так что это пограничный случай, который даже не применим к большинству машин с одной учетной записью Windows.

решение1

import subprocess
url = "https://stackoverflow.com/"
args = ["start", "/wait", url, "&", "exit", "/b", "%errorlevel"]
completed = subprocess.run(args, stdout=subprocess.PIPE, shell=True)
print("exit status", completed.returncode)

Связанный контент