Есть ли способ использовать runasoriginaluser в uninstallrun in inno setup?
Я написал приложение, используя docker-toolbox и скрипт inno setup для установки приложения в Windows 10.
И я хочу удалить виртуальную машину docker-toolbox, в то время как я удаляю свою программу. Однако виртуальная машина не может удалить полностью, следуя сценарию inno setup.
[Setup]
PrivilegesRequired=none
[UninstallRun]
Filename: "{cmd}"; Parameters: "/C ""docker-machine rm -y myDocker"""
Команда "docker-machine rm -y myDocker" всегда работает всякий раз, когда запускается в моем пользовательском cmd, но не работает в inno setup uninstallrun.
И я проверил и обнаружил, что docker-toolbox основан на VirtualBox. VirtualBox использует среду для каждого пользователя. Становление root (или любого другого пользователя) не дает вам доступа или дополнительных полномочий к виртуальным машинам исходного пользователя. ВСЕГДА выполняйте операции с ВМ как пользователь, который фактически создал ВМ. Следовательно, я должен запустить команду как оригинальный пользователь в uninstallrun, но я не могу найти способ сделать это.
В ожидании помощи и поддержки я провел много раз в этой проблеме.
Есть ли способ использовать runasoriginaluser в uninstallrun in inno setup?
1 ответ
Вы не должны изменять определенный профиль пользователя из (не) установщика, который работает с правами администратора (устанавливает программное обеспечение для всех пользователей).
runasoriginaluser
флаг не поддерживается в UninstallRun
раздел. Вероятно, потому, что там все равно не будет никакой пользы. Что делает флаг в Run
раздел заключается в том, что он выполняет программу с правами, с которыми первоначально выполнялся установщик. Но деинсталлятор (для установщика с повышенными правами администратора) выполняется сразу с правами администратора, когда выполняется из панели управления / приложения настроек.