1

Существует ли какой-либо инструмент исправления на основе cli, который может работать в Windows 7 без прав администратора?

Я пробовал следующие инструменты, но им обоим нужны права администратора.

http://gnuwin32.sourceforge.net/packages/patch.htm

http://unxutils.sourceforge.net/

3 ответа3

2

Пакет git для Win32 поставляется с программой patch.exe, которая не запрашивает привилегии администратора. Пакет очень прост в установке даже для пользователей без прав администратора: есть портативная версия, которую нужно только распаковать в любом месте, и она готова к использованию.

Пакет также имеет некоторые другие полезные утилиты, портированные на Win32, так что вы получите, например. vim, cat, grep, sort, less, diff, diff3, cmp, curl, openssl, sha256sum, perl, все с близкой интеграцией с Windows.

2

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

ОБНОВЛЕНИЕ: Мы живем, мы учимся. Я ошибся, patch.exe требует повышения прав. Или, точнее, Windows считает, что для нее требуется повышение прав : как запретить Vista требовать повышения прав на patch.exe? ,

Создание внешнего манифеста для patch.exe объявляющего requestedExecutionLevel выполнения asInvoker , не помогает. Но переименование во все, что не содержит patch слова, делает. Попытайся.

0

Хотя переименование, безусловно, является опцией, большинство систем сборки автоматически вызывают 'patch' и ожидают, что это будет одинаковым вызовом на всех платформах. Таким образом, оставить оригинальное имя, безусловно, желательно в тех случаях, когда требуется автоматизация.

Использование XML-файла манифеста с расположенными рядом с patch.exe работает следующим образом (успешно протестировано на Win7 x64)

  1. создайте новый текстовый файл и вставьте

            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
            <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
              <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
                <security>
                  <requestedPrivileges>
                    <!-- Make sure that UAC believes
                    that it does not require administrative privilege -->
                    <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
                  </requestedPrivileges>
                </security>
              </trustInfo>
            </assembly>
    
  2. назовите этот файл patch.exe.manifest

  3. убедитесь, что patch.exe был изменен позднее (см. здесь), либо повторно загрузив его, либо коснувшись (см. здесь).

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