Показать полную графическую версию : Автоматическая установка QuickSFV
Vanadiy777
17-10-2023, 12:05
нифига не проканало, все равно, работает только при отключении uac »
Wu-Tang,
Попробуйте как-то так:
ICACLS "%SystemDrive%\Program Files\quicksfv" /T /grant "%UserName%":M
Vanadiy777,
да, понимаете в чем дело, я потом уже начал ручками менять права на эту папку, дал и пользователю и учетке и всему чему можно полные права, но файл настроек так и не захотела она писать в нее, но как отключаешь uac, то сразу пишет, я теперь не пойму, какого уровня блок идет со стороны оси.
Vanadiy777
17-10-2023, 19:18
но файл настроек так и не захотела она писать в нее, но как отключаешь uac, то сразу пишет, я теперь не пойму, какого уровня блок идет со стороны оси. »
Wu-Tang,
А сейчас, если эту команду в командной строке от Админа применить, тоже не сохраняет?
Vanadiy777,
попробовал - все также (((
не поленился, протестил на каждом отключенном ключе в ветке по uac, и скажу, меняешь только один.
;Отключить
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000
и начинает писать и читать в папку.
вот как бы это обойти, если кто-то будет юзать прогу с включенным uac.
ps самое крайнее, что приходит в голову, инсталлить ее в корень, но как-то не кошерно уже будет имхо
стоит отключить uac, то сразу нормально записывает »
Не правильное направление. Не стоит менять права.
программа пишет в свою папку файл настроек ini »
А вариант замены дефолтного файла на настроенный?
Дайте ссылку на вашу сборку, потестю на досуге.
Vanadiy777
18-10-2023, 19:20
Дайте ссылку на вашу сборку, потестю на досуге. »
Присоединяюсь к коллеге... :)
sov44,
вариант замены дефолтного файла на настроенный? »
сразу же положил его в инсталлер, но начинает его читать, пока только после отключения uac.
https://dropmefiles.com/9jC9U
Vanadiy777
19-10-2023, 19:54
Wu-Tang,
На чистой Windows 11, где никакие права не затрагивались. На полностью включенной UAC.
Изначально не читает и не пишет...
После применения команды:
ICACLS "%SystemDrive%\Program Files\quicksfv" /T /grant "%UserName%":M
все пишет и читает с включенным UAC.
Как-то так... :)
Как еще проверить?
Vanadiy777,
как так :o
я проверял на 4-х системах, двух 10 и двух 7.
у вас сохраняется настройка, что просчитать md5, а не sfv по дефолту?
http://ipic.su/img/img7/fs/2023-10-19_21-25-00.1697739934.jpg
у меня каждый раз там sfv и сохраняет, что нужно md5 только после выключения uac.
ps тестовые оси чистые, на виртуалке.
ps2 перепроверил еще на одной свежеустановленной 7-ке, не сохраняет.
причем icacls отрабатывает
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
C:\Windows\system32>ICACLS "%SystemDrive%\Program Files\quicksfv" /T /grant "%Us
erName%":M
обработанный файл: C:\Program Files\quicksfv
обработанный файл: C:\Program Files\quicksfv\history.txt
обработанный файл: C:\Program Files\quicksfv\QSFVShll.dll
обработанный файл: C:\Program Files\quicksfv\QSFVUNST.EXE
обработанный файл: C:\Program Files\quicksfv\QuickSFV.EXE
обработанный файл: C:\Program Files\quicksfv\QuickSFV.ini
Успешно обработано 6 файлов; не удалось обработать 0 файлов
C:\Windows\system32>
но права на запись у пользователя на эту папку в свойствах папки не появляются.
http://ipic.su/img/img7/fs/2023-10-19_22-00-26.1697742039.jpg
а на одной из 10 вообще выдало:
ICACLS "%SystemDrive%\Program Files\quicksfv" /T /grant "%UserName%":M
DESKTOP-I9516T8$: Сопоставление между именами пользователей и идентификаторами безопасности не было произведено.
Успешно обработано 0 файлов; не удалось обработать 1 файлов
ну что есть какие-н мысли у кого насчет этого?
nibble74
25-10-2023, 08:04
ну что есть какие-н мысли у кого насчет этого? »
Мысли:
Первая) Распакуйте архив в папку пользователя %UserProfile% вместо Program Files.
Вторая) Отказаться от SFX архива и юзать как портабелку. Потребуется подкорректировать батники.
Wu-Tang, попробуйте мою сборку https://disk.yandex.ru/d/r2fUYsiwtDg-Eg
При запуске Total Commander от имени администратора с включенным UAC в контексте хэши делаются по умолчанию в md5. В контексте проводника по прежнему в sfv. Пользователю с помощью SetAcl даны полные права на папку установки программы. При желании способ можно заменить на штатный с помощью ICACLS. Проблему удаления QSFVShll.dll попытался решить без убийства explorer, но 100% гарантии этот способ не даёт.
sov44,
потестил, ну да, из проводника так и предлагает sfv, вот зараза, почему она не хочет читать ini, где четко прописано md5.
то что из тотала работает, это логично, тк он видимо пункт из контекста запускает с повышенными правами.
у меня есть мысль, но как реализовать не знаю, а что если в ключи реестра, которые отвечают за запуск из контекста, добавить повышение прав?
типа runas.
тк задумка ставить ее и юзать полнофункционально не выходит.
ps кстати, после удаления вашей сборки, проводник сам не запустился.
nibble74,
я заметил особенность, что некоторые свежие проги ставятся на 10-ке по дефолту в %appdata/local% - опера, дискорд и тд может это связано как раз с такой петрушкой в плане записи/чтения из program files?
nibble74
30-10-2023, 10:50
Wu-Tang, Разработчик не доработал свою прогу. Ведь даже после установки оригинальным установщиком настройки расширения не сохраняются.
Помнится мне очень давно пользовался этой прогой, давал полные разрешения пользователю на INI файл и размещал папку... куда не помню ). Может в корень папки пользователя или в общую папку и тогда настройки начинали сохраняться, даже запоминало последнее выбранное расширение. Что тут скажешь... надо экспериментировать.
проводник сам не запустился »
taskkill /F /IM explorer.exe & ping -n 3 localhost & start explorer.exe
проводник сам не запустился. »
В моей сборке предусмотрено только убийство приложения, использующего QSFVShll.dll, без последующего запуска. В вашем случае QSFVShll.dll пользовался explorer.exe. Наверное нужно будет сделать запуск убиваемого приложения.
у меня есть мысль, но как реализовать не знаю, а что если в ключи реестра, которые отвечают за запуск из контекста, добавить повышение прав? »
Можно попробовать.
nibble74,
да, я тоже думаю, что это косяк в коде, не добавил обход этого блока.
может собрать инсталлер, чтобы ставилась в какую-то системную папку, где полные права, я попробовал переписать пути в %localappdata%, поставилась, ini читает, но в контекст не встроилась и анинсталлер не работает, может и я где ошибся, а у program data резанные права, если туда ставить?
или, как вы говорите, в %users%
вообще, конечно, хотелось бы ее научить из program files работать.
sov44,
было бы неплохо, если бы вы нашли решение.
ps я пока попробую переписать пути на %users%
nibble74
31-10-2023, 08:00
Wu-Tang, Пробовали написать разработчику ? Там на сайте два адреса, один для отчетов об ошибках. Может разработчик исправит дело с ini файлом.
nibble74,
была такая мысль, но меня терзают смутные сомнения, что он уже не занимается своей программой, но попробовать можно.
кажется я нашел решение насчет прав доступа, может рано радуюсь, поэтому хочу посоветоваться.
в коде exe и dll есть строка:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
описание нашел - https://learn.microsoft.com/ru-ru/cpp/build/reference/manifestuac-embeds-uac-information-in-manifest?view=msvc-170#remarks или http://www.heaventools.ru/rt-how-to-add-requested-level-to-manifest.htm
только не знаю, что попробовать поменять level или uiaccess?
Vanadiy777
18-11-2023, 21:48
что попробовать поменять level или uiaccess? »
Для начала достаточно изменить level на level='requireAdministrator', ИМХО, и проверить.
P.S. Проверять на включенном UAC.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.