Не удается удалить папки, созданные службами Windows, с помощью деинсталлятора моего приложения? - PullRequest
2 голосов
/ 12 февраля 2011

Мой установщик MSI регистрирует несколько служб Windows NT в SCM.Службы записывают данные во временную папку, которая по умолчанию становится владельцем учетной записи SYSTEM.Во время удаления процесс удаления не может удалить папки, поскольку временные папки принадлежат Администратору с правами чтения / записи.Текущий пользователь является администратором, но не имеет явных разрешений на чтение / запись для этих папок.Что еще хуже, это приложение Java, которое управляется службой Windows.

Какая лучшая стратегия для деинсталлятора?Стоит ли использовать нативный код для изменения прав доступа к папкам?- Как это будет работать с включенным UAC? ​​

Ответы [ 3 ]

2 голосов
/ 26 февраля 2011

В итоге я запросил повышение прав администратора для удаления папок. Оставление папок вокруг отключает обновление, так что нет, я не могу оставить их, как это было предложено постером.

1 голос
/ 14 февраля 2011

Я думаю, что вы пытаетесь решить неправильную проблему с установщиком. Подумайте немного шире - отвечает ли программа установки за данные, созданные программным обеспечением, которое она устанавливает? Ответ - нет. Когда вы удаляете Microsoft Office, он удаляет все созданные вами файлы * .doc или собственные журналы в TEMP? Я так не думаю.

Временные папки хороши для хранения такого рода временных данных, и, как правило, можно оставить их там. Если это не конфиденциальные данные, вы всегда можете удалить их в кучу. Многие рекомендации по очистке ОС в целом рекомендуют очищать папки TEMP.

Итак, вместо того, чтобы придумывать сложные способы и обходные пути с разрешениями, я бы рекомендовал оставить все как есть.

0 голосов
/ 14 февраля 2011

Если у вас есть установщик для каждой машины, процесс удаления должен использовать учетную запись TrustedInstaller, которая имеет полные права. Попробуйте создать журнал удаления, чтобы определить, почему папки не удаляются.

Если это действительно проблема с разрешениями, решение будет состоять в том, чтобы настроить вашу службу таким образом, чтобы она устанавливала соответствующие разрешения для создаваемой папки.

...