Как я добираюсь, текущие пользователи называют в пользовательском действии для установщика Windows?

Я должен получить имя пользователя пользователя, запускающего установщик для моего действия заказной установки. Поскольку установщик получает специальный priviledges, Среду. UserName просто дает "СИСТЕМУ".

Среда. SpecialFolders. ApplicationData возвращает текущих пользователей appdata папка, но я не могу надежно вырыть имя пользователя из него.

Больше специфических особенностей случая:

Используя Visual Studio Установка 2008 года Предполагает, что пользовательское действие является классом установщика, бежит за установкой, и единственный в проекте.

11
задан Septih 22 December 2009 в 08:35
поделиться

3 ответа

Use WindowsIdentity.GetCurrent().Name from the System.Security.Principal namespace. This will include the domain portion as well so if you don't need that add a split to the end of it. WindowsIdentity.GetCurrent().Name.Split('')[1].

using System.Security.Principal;

this.nametext = WindowsIdentity.GetCurrent().Name.Split('')[1];
2
ответ дан 3 December 2019 в 07:12
поделиться

First, make sure you have the Impersonate bit set to OFF. Here is how.

Unfortunately, there is not a way to directly set this flag for a custom action in the UI for the setup project in the Visual Studio IDE. In Visual Studio 2005, you can use a post-build step that modifies the MSI to set this bit using a strategy previously described in this blog post.

Second, I assume you are running Vista because people seem to have this problem with Vista and someone asked this question on MSDN and his solution was to follow the blog post linked here.

Robert Flaming's Blog post on UAC in MSI Notes: The NoImpersonate Bit Mistake also gives some insight into these issues.

2
ответ дан 3 December 2019 в 07:12
поделиться

Я никогда не касался проектов настройки VS (играл с WiX, но могу порекомендовать). Глядя на вашу проблему, кажется, что ваше CA работает с отложенными (и с повышенными привилегиями).

При поиске в сети проектов настройки VS я наткнулся на длинную статью 1, в которой содержался этот абзац (поиск "отложенных"):

Другими словами, дизайн Visual Studio ограничивает вас пользовательскими действиями, которые вызываются, когда ваши файлы находятся в системе (отложенные пользовательские действия), что означает, что вы должны использовать свойство CustomActionData. Другие инструменты, которые генерируют MSI файлы, часто более гибкие, так что если вы предполагаете сложные настройки, изучите эти инструменты.

1: http://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/

2
ответ дан 3 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: