Я пытаюсь собрать Firefox из исходного кода, и у меня возникли проблемы. Я считаю, что причина в UAC в Vista.

Этот вопрос похож на другие вопросы о UAC, но мне интересно, можно ли отключить UAC на определенный период времени (пока я создаю) или до выхода из системы.

Кто-то может сказать мне, что я могу использовать опцию "Запуск от имени администратора" для всего, что я пытаюсь сделать. Это не работает для моих целей. Мне нужно, чтобы он был полностью отключен, чтобы каждая программа, выполняемая сценарием сборки, могла запускаться с полными правами администратора. Кроме того, я уже попробовал это.

Я пытаюсь решить проблемы со сборкой, и я хотел бы полностью исключить UAC из уравнения, но я не хочу постоянно отключать UAC для всего компьютера - только когда собираюсь собирать ,

Этот вопрос связан с: nsinstall: Ошибка неверного номера файла в Vista при переполнении стека.

2 ответа2

1

В моем окне Vista есть ярлык быстрого запуска, который запускает cygwin rxvt от имени администратора. Если вы просто используете окно с досками, вы не можете легко использовать страницу свойств совместимости, потому что Vista распознает cmd.exe, но если вы просто скопируете cmd.exe в вашу домашнюю папку («notcmd.exe»), то вы сможете запустить его "как администратор".

Я даже установил для моей подсказки% значение # от isadmin && PS1='# ' .

isadmin.c:

#include <stdio.h>
#define _WIN32_WINNT 0x0500
#include <windows.h>

BOOL
APIENTRY
CheckTokenMembership(
    IN HANDLE TokenHandle OPTIONAL,
    IN PSID SidToCheck,
    OUT PBOOL IsMember
    );


int main (int argc, char **argv)
{
  SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
  PSID AdministratorsGroup;
  BOOL isAdmin;

  if (AllocateAndInitializeSid (&NtAuthority, 2,
          SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
          0, 0, 0, 0, 0, 0, &AdministratorsGroup) == 0 ||
      CheckTokenMembership (NULL, AdministratorsGroup, &isAdmin) == 0) {
      printf ("failed with win32 error %lu\n", GetLastError ());
      exit (2);
    }

  FreeSid (AdministratorsGroup);
  exit (!isAdmin);
}
0

Похоже, что UAC в Vista довольно укоренился, и для его полного отключения требуется перезагрузка.

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

Вот руководство по How- To-Geek.

Отключить команду:

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

Включить команду:

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 1 /f

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .