Автозагрузка в Windows 7 Владимир Безмалый
Автозагрузка в Windows 7
Сегодня сложно найти организацию, которая не подвергалась бы вирусным атакам. И хотя практически везде уже установлено антивирусное ПО, иногда возникает необходимость вручную посмотреть, где же в реестре стартует то или иное вредоносное ПО, причем даже не обязательно вредоносное. При поиске резидентного вредоносного ПО нас не могут не волновать следующие вопросы:
- Как осуществляется автозагрузка?
- Где найти список программ, загружаемых автоматически?
- Как отключить соответствующий список автозагрузки?
Именно этому и будет посвящена эта статья.
Существует много способов автозагрузки. Ниже приведены несколько вариантов. Надеюсь, что это сможет вам помочь в розыске и удалении вредоносного ПО из автозагрузки.
Способы автозагрузки
Реестр
В реестре Windows 7 автозагрузка представлена в нескольких ветвях:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] — программы, запускаемые при входе в систему.
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе (рис.1).
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce] — программы, запускаемые только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе.
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun] — программы, которые запускаются при входе текущего пользователя в систему
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce] — программы, которые запускаются только один раз при входе текущего пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Например, чтобы автоматически запускать Блокнот при входе текущего пользователя, открываем Редактор реестра (regedit.exe), переходим в раздел
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun] и добавляем следующий ключ:
«NOTEPAD.EXE»=»C:WINDOWSSystem32notepad.exe»
Использование групповой политики для автозапуска
Откройте оснастку «Групповая политика» (gpedit.msc), перейдите на вкладку «Конфигурация компьютера — Административные шаблоны — Система». В правой части оснастки перейдите на пункт «Вход в систему». (рис.2).
По умолчанию эта политика не задана, но вы можете добавить туда программу: включаем политику, нажимаем кнопку «Показать — Добавить», указываем путь к программе, при этом если запускаемая программа находится в папке ..WINDOWSSystem32 то можно указать только название программы, иначе придется указать полный путь к программе.
Фактически в данном разделе локальной групповой политики можно указать дополнительную программу или документ, который будет выполняться при входе пользователя в систему.
Внимание! Данный пункт политики доступен в Конфигурации компьютера и Конфигурации пользователя. Если заданы оба пункта политики, то вначале будет запущена программа из Конфигурации компьютера, а затем уже пользователя.
При этом в системном реестре в разделе [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpolicies] создается подраздел ExplorerRun с ключами добавленных программ.
Пример:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorerRun]
«1»=»notepad.exe»
В итоге получаем запуск Блокнота (рис 3).
Аналогично задается автозапуск для текущих пользователей, в оснастке «Групповая политика» это путь «Конфигурация пользователя — Административные шаблоны — Система» (рис 2), а в реестре раздел [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun]
Внимание! При этом программы из этого списка не отображаются в списке программ доступных для отключения в msconfig.exe, а также определяются не всеми менеджерами автозагрузки.
Игнорировать списки автозагрузки программ выполняемых однажды
Настраивается с помощью групповой политики: «Конфигурация компьютера — Административные шаблоны — Система — Вход в систему — Не обрабатывать список однократного запуска программ»
Если эту политику включить, то не будут запускаться программы, запускаемые из списка
[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce] Если эта политика включена, в реестре создается следующий ключ:
Так же настраивается политика для текущих пользователей: «Конфигурация пользователя — Административные шаблоны — Система — Вход в систему — Не обрабатывать список однократного запуска программ» Параметры реестра:
Назначенные задания
Программы могут запускаться с помощью «Планировщика заданий». Посмотреть список установленных заданий, а также добавить новое можно так: «Пуск — Все программы — Стандартные — Служебные — Планировщик заданий» — при этом откроется окно Планировщика заданий, в котором отображены назначенные задания (рис.4).
Чтобы добавить новое задание, нужно из меню «Действия» выбрать пункт «Создать простую задачу» (рис.5).
Запуск программ с помощью этого мастера возможен однократно, при входе в Windows, при включении компьютера, а также по расписанию.
Папка «Автозагрузка»
Папка, в которой хранятся ярлыки для программ запускаемых после входа пользователя в систему. Ярлыки в эту папку могут добавляться программами при их установке или пользователем самостоятельно. Существует две папки — общая для всех пользователей и индивидуальная для текущего пользователя. По умолчанию эти папки находятся здесь:
.. UsersAll UsersMicrosoftWindowsStart MenuProgramsStartup — это папка, программы из которой будут запускаться для всех пользователей компьютера.
%USERPROFILE%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup — это папка, программы из которой будут запускаться для текущего пользователя.
Посмотреть какие программы у вас запускаются таким способом можно открыв меню «Пуск — Все программы — Автозагрузка». Если вы создадите в этой папке ярлык для какой-то программы, она будет запускаться автоматически после входа пользователя в систему.
Смена папки автозагрузки
Windows считывает данные о пути к папке «Автозагрузка» из реестра. Этот путь прописан в следующих разделах:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerUser Shell Folders]
«Common Startup»=«%ProgramData%MicrosoftWindowsStart MenuProgramsStartup» — для всех пользователей системы.
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders]
«Startup»=«%USERPROFILE%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup»
— для текущего пользователя. Сменив путь к папке, мы получим автозагрузку всех программ из указанной папки.
Пример:
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders]
«Startup»=»c:mystartup» — система загрузит все программы, ярлыки которых находятся в папке c:mystartup, при этом папка «Автозагрузка» все так же будет отображаться в меню «Пуск», а если у пользователя в ней ничего не было, то он и не заметит подмены.
Подмена ярлыка для программы из списка автозагрузки
Допустим у вас установлен пакет Acrobat. Тогда в папке «Автозагрузка» у вас будет находиться ярлык «Adobe Reader Speed Launch» — этот ярлык устанавливается туда по умолчанию. Но вовсе необязательно этот ярлык ссылается именно на соответствующее приложение — вместо него может быть запущена любая другая программа, тем более что на функциональности Acrobat это не скажется.
Добавление программы к программе запускаемой из списка автозагрузки
Модификация предыдущего варианта — одновременно с загрузкой какой-либо программы из списка автозагрузки у вас будет стартовать другая программа — дело в том, что можно «склеить» два исполняемых файла в один и они будут запускаться одновременно. Существуют программы для такой «склейки». Или ярлык может ссылаться на командный файл, из которого и будут запускаться как оригинальная программа из списка, так и добавленные посторонние программы.
Посмотреть список автоматически загружаемых программ можно открыв программу «Сведения о системе» (откройте «Пуск — Все программы — Стандартные — Служебные — Сведения о системе» или наберите msinfo32.exe в командной строке) и перейдя в пункт «Программная среда — Автоматически загружаемые программы». Программа «Свойства системы» отображает группы автозагрузки из реестра и папок «Автозагрузка» (рис.6).
Другая программа, позволяющая посмотреть список программ автозагрузки — «Настройка системы» (для запуска наберите msconfig.exe из командной строки). Эта программа кроме просмотра списка автозагрузки предоставляет возможность отключения всех пунктов автозагрузки (вкладка «Общие») или выборочных программ (вкладка «Автозагрузка»).
Заключение
Безусловно, сведения, приведенные в данной статье нельзя считать исчерпывающими, однако, надеюсь, они помогут вам в нелегком труде борьбы с вредоносным ПО.
Установка программ до входа в систему
На данном этапе развития спамерской и вирусной всевозрастающей деятельности, для авторов такого рода программ огромное влияние играет постоянное присутствие их вредоносного кода в системе. Для того, чтобы эти программы постоянно присутствовали в системе им жизненно необходим реестр Windows. Используя реестр в качестве отправной точки для запуска, все вредоносные программы стартуют в системе именно оттуда. Пользователь остается практически незащищенным перед такой опасностью, потому как в реестре существует очень много мест для запуска на всех этапах загрузки операционной системы.
Однако, знание мест откуда может стартовать тот или иной код, работающий как в режиме пользователя, так и в режиме ядра может пригодиться не только для удаления вредоносных программ, но также и для исключения из загрузки сторонних драйверов и служб, загружаемых как на ранних, так и поздних этапах загрузки системы.
В системном реестре автозагрузка представлена в разделах:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion
Run — программы, которые запускаются при входе пользователя в систему (для текущего пользователя). (Windows 98, 2000, XP)
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion
RunOnce — программы, которые запускаются только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра. (Windows 98, 2000, XP)
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersionRun — программы, которые запускаются при входе в систему. Данный раздел отвечает за запуск программ для всех пользователей системы. (Windows 98, 2000, XP)
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersion
RunOnce — программы, которые запускаются только один раз при входе пользователя в систему. После этого параметры программ автоматически удаляются из данного раздела. Этот раздел отвечает за запуск программ для всех пользователей системы. (Windows 98, 2000, XP)
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersionRunOnceEx — программы, которые запускаются только один раз, при загрузке системы. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы. (Windows 98, 2000, XP)
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersionRunServices-, HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersionRunServices — службы, которые загружаются при входе пользователя в Windows. (Windows 98)
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersion RunServicesOnce — службы, которые загружаются один раз при загрузке системы. (Windows 98)
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices – раздел содержит подразделы с названиями драйверов и служб, которые могут загружаться на любой стадии загрузки Windows 2000, XP. То, на каком этапе загрузки ОС будет загружен драйвер или служба отвечает параметр Start типа DWORD. Параметр Start может принимать значения:
0х0 – такое значение имеют низкоуровневые драйверы, например драйверы дисков, которые загружаются на самом раннем этапе загрузки – загрузки ядра. В случае, если какой – либо драйвер, имеющий данное значение, не был загружен система автоматически перезагружается. За загрузку драйверов, имеющих такое значение отвечает загрузчик ОС.
0х1 – данное значение имеют драйверы, которые загружаются и инициализируются после инициализации ядра ОС. В отличие от драйверов со значением параметра Start 0х0, драйверы устройств со значением 0х1 загружаются не за счет вызовов BIOS, а с помощью драйверов устройств, загруженных на стадии загрузки ядра и только что инициализированных на этой стадии.
0х2 – данное значение имеют драйверы или службы, которые должны быть загружены SCM (Диспетчером Управления Сервисами).
0х3 – данное значение имеют драйверы или службы, запускаемые Диспетчером Управления Сервисами, только в случае получения явной инструкции на загрузку.
0х4 — такое значение имеют драйверы или службы, которые не загружаются. Windows 2000, XP устанавливают в этот режим драйверы устройств в случае невозможности их загрузки SCM. Исключение составляют лишь драйверы файловых систем, которые загружаются, даже при установленном значении Start в 0х4.
Знание вышеописанных разделов необходимо при сбое системы и невозможности ее загрузки в обычном режиме, так как в таком случае ОС можно загрузить в безопасном режиме и отредактировать соответствующие разделы системного реестра или запустить утилиту конфигурирования системы MSConfig, входящую в поставку ОС. Однако, что делать если ОС не загружается и с минимальным, жизненно необходимым набором драйверов и служб, т. е. в безопасном режиме? Если это стало происходить после установки драйвера или программы, тогда стоит посмотреть список драйверов и служб, загружаемых в безопасном режиме, и проверить нет ли там драйверов от сторонних разработчиков. Эту информацию можно найти в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
SafeBoot
Значит можно загрузиться с boot-дискеты MS-DOS, скопировать файлы отвечающие за реестр и отредактировать данный раздел на другом компьютере.
В системах Windows 9x еще одним местом запуска кода может служить раздел
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesVxD. Как видно из названия, из данного раздела загружаются виртуальные драйверы. В Windows 2000/XP программы может запускать Диспетчера Сеансов на этапе своей загрузки. Соответствующий раздел:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
Session Manager
Но вышеописанные способы не единственные для управления автозагрузкой. В Windows 2000 для добавления программ в автозапуск можно воспользоваться Microsoft Management Console (MMC). В частности, через MMC можно отключать автозагрузку программ или подключать необходимые программы. Для этого: откройте оснастку «Групповая политика» в Windows 2000, перейдите на вкладку «Конфигурация компьютера — Административные шаблоны – Система». В правой части оснастки перейдите на пункт «Запускать указанные программы при входе в систему». По умолчанию эта политика не задана, но вы можете добавить туда программу следующим способом: включаем политику, нажимаем кнопку «Показать – Добавить», указываем путь к программе, при этом если запускаемая программа находится в папке ..WINDOWSSystem32 то можно указать только название программы, иначе придется указать полный путь к программе. При этом в системном реестре в разделе
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersionPolicies создастся подраздел ExplorerRun с ключами добавленных программ.
Для задания программ автозапуска только для текущего пользователя создайте разделы ExplorerRun в ветви
HKEY_CURRENT_USERSoftwareMicrosoftWindows
CurrentVersionPolicies
При этом программы из этого списка не отображаются в списке программ доступных для отключения в MSConfig.exe, а также определяются не всеми менеджерами автозагрузки. Еще один тип автозагрузки – автозагрузка из особого списка –
HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows
load=«программа» – программы, запускаемые до входа пользователя в систему:
run=«программа» – программы, запускаемые после входа пользователя в систему.
Эти параметры — аналог автозагрузки из Win.ini в Windows 98.
Для того, чтобы игнорировать списки автозагрузки программ выполняемых однажды проделайте: групповая политика: «Конфигурация компьютера — Административные шаблоны — Система — Не обрабатывать список автозапуска программ, выполняемых однажды», если эту политику включить, то не будут запускаться программы, запускаемые из списка
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows
CurrentVersionRunOnce
Если эта политика включена, в реестре создается следующий параметр:
HKEY_LOCAL_MACHINE SOFTWAREMicrosoftWindowsCurrentVersion
DisableLocalMachineRunOnce значение 1, тип DWORD.
Для отключения автозагрузки следует открыть запись «Отключить автозапуск» и отключить автозагрузку.
Аналогично настраивается политика для текущих пользователей: «Конфигурация пользователя — Административные шаблоны — Система — Не обрабатывать список автозапуска программ, выполняемых однажды». Параметры реестра:
HKEY_CURRENT_USERSOFTWAREMicrosoftWindows
CurrentVersion policiesExplorer
DisableLocalUserRunOnce значение 1, тип DWORD.
Одним из самых стандартных способов управления автозагрузкой – папка «Автозагрузка», в которой хранятся ярлыки к программам, которые запускаются после успешной регистрации пользователя в системе. Ярлыки в эту папку могут добавляться программами при их установке или пользователем самостоятельно. Существует две папки: общая — для всех пользователей и индивидуальная — для текущего пользователя. По умолчанию эти папки находятся в следующих директориях:
ROOTDocuments and SettingsAll UsersГлавное менюПрограммыАвтозагрузка — папка, программы из которой будут запускаться для всех пользователей ОС.
ROOTDocuments and SettingsUsernameГлавное менюПрограммыАвтозагрузка — это папка, программы из которой будут запускаться для текущего пользователя (Username – текущий пользователь). Таким образом для автоматического запуска программы после успешной регистрации пользователя в системе нужно создать ярлык к программе и поместить его в одну из вышеперечисленных папок. Следует также отметить, что если при входе пользователя в систему он зажмет клавишу Shift, то программы из папок для автозагрузки загружаться не будут.
Запуск старых программ в Windows 7. Режим совместимости
Большинство программ, написанных для Windows XP, Vista работают и с версией Windows 7, но некоторые старые программы могут работать неправильно или не работать совсем. Если программа, написанная для более ранней версии Windows, работает неправильно, можно изменить параметры совместимости программы вручную или с помощью средства устранения проблем с совместимостью программ.
Если изменение параметров не решает проблему, посетите веб-сайт изготовителя программы, где может быть ее обновление.
Совместимость программ
Совместимость программ — это режим Windows, который позволяет выполнять программы, написанные для более ранних версий Windows
Примечания
- Не используйте средство устранения проблем с совместимостью программ для старых антивирусных программ, дисковых служебных программ или других системных программ, поскольку использование устаревших программ такоготипа может привести к потере данных или создать угрозу безопасности.
- Некоторые проблемы совместимости могут быть вызваны драйверами. Если старый драйвер вызывает неполадки, необходимо обновить его вручную.
- Средство устранения проблем с совместимостью программ можно также открыть, щелкнув значок программы правой кнопкой мыши и выбрав пункт Исправление неполадок совместимости
Следуйте указаниям в средстве устранения проблем. Если не удается установить программу, вставьте ее установочный диск и с помощью данного средства найдите файл установки программы, обычно Setup.exe, Install.exe и т.п. Средство устранения проблем не поддерживает работу с программами, имеющими расширение имени файла MSI
Изменение параметров совместимости вручную
Чтобы изменить параметры совместимости для программы вручную, щелкните значок программы правой кнопкой мыши, выберите команду Свойства и затем вкладку Совместимость
Справка по выбору параметров
Режим совместимости — Запуск программ с параметрами предыдущей версии Windows. Включите данный параметр, если известно, что программа предназначена для той или иной предыдущей версииWindows (или работала в ней).
Запуск в режиме 256 цветов — Ограничение набора цветов в программе. Некоторые старые программы используют ограниченный набор цветов.
Использовать разрешение экрана 640 ? 480 — Запуск программы в уменьшенном окне. Включите этот параметр, если графический интерфейс пользователя имеет неровный контур или воспроизводится неверно
Отключение визуальных тем оформления — Отключение тем оформления в программе. Включите этот параметр при наличии проблем с меню или кнопками в строке заголовка программы.
Отключение создания рабочего стола — Отключение прозрачности и других дополнительных возможностей экрана. Включите этот параметр, если окна перемещаются беспорядочно или имеются другие неполадки изображения
Отключение масштабирования изображения при высоком разрешении экрана — Отключение автоматического изменения размера программ при использовании крупного шрифта. Включите этот параметр, если крупные шрифты нарушают внешний вид программы.
Уровень прав — Запуск программы от имени администратора. Для правильной работы некоторых программ необходимы права администратора. Данный параметр доступен только при входе в систему с учетной записью администратора.
Изменить параметры для всех пользователей — Выбор параметров, которые будут применены для всех пользователей данного компьютера.
[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет
К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.
Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…
Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.
Ну, и зачем тебе права?
Программа может запрашивать права администратора условно в двух случаях:
- Когда хочет получить доступ туда, куда «простым смертным» нельзя: например, создавать файлы в системных каталогах.
- Когда программу скомпилировали со специальным флагом «Требовать права администратора».
С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:
Куда это лезет этот 7Zip?
И по результатам исследования выдаем права пользователю на нужный каталог или ветку реестра.
Сложнее, если случай клинический, и так просто выдать права не получится: например, программа требует сильного вмешательства в работу системы вроде установки драйверов. Тогда придется придумывать всякий колхоз, про который речь пойдет в последнем разделе статьи. Пока подробнее освещу второй случай — когда стоит флажок.
Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:
- asInvoker. Программа запускается с теми же правами, что и породивший ее процесс (как правило, это explorer.exe c правами пользователя);
- highestAvailable. Программа попросит максимально доступные пользователю права (у администратора появится окно с запросом повышения UAC, у пользователя — нет);
- requireAdministrator. Программа будет требовать права администратора в любом случае.
Если разработчик твердо решил требовать права администратора, даже если они не нужны, то обойти это можно малой кровью.
Нет, не будет тебе прав
В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.
Простейшим вариантом работы с этим механизмом будет использование переменных среды.
Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:
Запрос повышение прав.
Если же мы запустим редактор реестра из консоли, предварительно поменяв значение переменной среды __COMPAT_LAYER на:
То запроса UAC не будет, как и административных прав у приложения:
Бесправный редактор реестра.
Этим можно пользоваться, запуская программы батниками или добавляя контекстное меню через реестр. Подробнее читайте в материале How to Run Program without Admin Privileges and to Bypass UAC Prompt?
С конкретным примером такой неприятной программы можно столкнуться при загрузке классификаторов банков из 1С с сайта РБК по ссылке http://cbrates.rbc.ru/bnk/bnk.exe. Если обновление классификаторов отдается на откуп самим пользователям и нет возможности поменять загрузку на bnk.zip (а современные 1С это поддерживают), то приходится придумывать костыли. Ведь bnk.exe — самораспаковывающийся архив, в котором зачем-то прописано «Требовать права администратора».
Поскольку ярлычками тут обойтись не выйдет, ведь 1С сама скачивает файл и запускает его, то придется применять тяжелую артиллерию — Microsoft Application Compatibility Toolkit.
Документация к ПО, как обычно, доступна на официальном сайте, загрузить можно как часть Windows Assessment and Deployment Kit. Сам процесс решения проблемы несложен.
Необходимо поставить утилиту, запустить Compatibility Administrator и создать Application Fix в новой или имеющейся базе данных:
Создаем исправление приложения.
Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).
Далее необходимо в списке исправлений выбрать RunAsInvoker.
Выбираем нужный фикс.
Все остальное оставляем по умолчанию, сохраняем базу данных. Должно получиться примерно так:
Созданный фикс для bnk.exe.
После этого достаточно будет установить базу данных, щелкнув по ней правой кнопкой и выбрав Install. Теперь пользователи смогут сами грузить классификаторы банков.
Все становится хуже, если приложению действительно нужны права админа. Тогда добавление прав на системные объекты и исправления не помогают.
Ну ладно, держи права
Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.
Ну, посмотрим, что из этого выйдет.
Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.
)
Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.
Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.
Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».
Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:
Затем сохранить пароль в зашифрованном виде в файл:
И теперь использовать этот файл для неинтерактивной работы:
К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:
Теперь при помощи этого ключа пароль можно зашифровать:
К сожалению, с безопасностью дела обстоят так же печально: утащить пароль не составляет трудностей, если есть доступ к файлу с ключом шифрования и зашифрованным паролем. Да, можно добавить обфускации и скомпилировать скрипт в .exe вместе с нужными файлами. Но нужно понимать, что это — полумеры.
Другим интересным вариантом может быть применение назначенных заданий — если создать назначенное задание от админского аккаунта, пользователю для работы будет достаточно его запуска. К сожалению, для интерактивной работы с приложением это решение не подходит.
На свете существует несколько сторонних решений, призванных решить задачу. Остановлюсь на парочке из них.
Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.
Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).
Основное окно программы.
Помимо непосредственно создания ярлыка (и да, запрос UAC тоже можно подавлять), есть и дополнительные функции вроде калькулятора, терминала и удобных настроек политик безопасности. Со всеми возможностями программы читателю предлагается разобраться самостоятельно.
Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.
На первый взгляд все выглядит безопасно, но, к сожалению, код программ закрыт, и насколько можно доверять разработчику — вопрос.
Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.
В целом, решение проверено годами и поколениями отечественных системных администраторов. Но добавлю и альтернативу из-за рубежа.
RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.
Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.
Основное окно программы.
Программа богато документирована на официальном сайте.
У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.
Мне остается только добавить, что это ПО бесплатно только для личного использования.
Но учтите, что из программы, запущенной под административными правами, можно натворить бед. Например, запустить привилегированную командную консоль через диалог Файл — Открыть.
Запускаем cmd.exe прямо из редактора реестра.
Немного защититься помогут политики запрета контекстного меню и прочих диспетчеров задач, часть из которых может настроить AdmiLink. Но в любом случае следует быть осторожным.
А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.
Запустите приложение при запуске системы без входа в систему
У нас работает новый сервер, и у нас есть несколько новых программ, выполняющих процедуры импорта. Пока все хорошо. Но есть одна программа, которая помещается в папку автозапуска . Поэтому он не запускается до тех пор, пока администратор не войдет в систему, и останавливается, если мы выходим из системы .
Я хотел бы поместить его в отдельный сеанс, чтобы он мог работать без какого-либо взаимодействия, просто запустив его с помощью планировщика задач при запуске. Правильно ли это делать? Безопасно ли будет, если я войду позже и выйду из системы?
Edit: приложение отображается в виде символа на панели задач, если оно запущено, оно может быть настроено таким образом. Что я должен знать об этом, если изменюсь?
Правка: это не мое приложение, я не могу переписать его как сервис.
8 ответов
- Facebook поток входа в систему для Интернета без Javascript SDK и выхода из системы
В разделе Facebook политика платформы 1.6 четко указано Ваш веб-сайт должен предлагать явную опцию Log Out, которая также выводит пользователя из Facebook. Поток входа в систему для Web без Javascript SDK говорит о выходе людей из системы Вы можете вывести людей из своего приложения, отменив любой.
Я пытаюсь создать приложение (Форма Windows) для управления интернет-кафе, которое запускается при запуске каждого клиента и запрашивает учетные данные для входа. Я запускаю серверное приложение в своей системе счетчиков. У меня есть база данных на сервере, и клиенты могут получить к ней доступ.
Я успешно добавил приложение, используя task schelduler при запуске. Вход и выход из системы не будут выходить из приложения, но символ не отображается. Пожалуйста, добавьте детали к моим дополнительным вопросам, и я отмечу ваш ответ как принятый.
Правка: В конечном итоге я использовал этот. Если мне нужно настроить, я останавливаю приложение в диспетчере задач и снова запускаю его по ссылке. После этого я вышел из приложения и перезапустил его с помощью ручного запуска планировщика задач.
Вам нужно разделить свою заявку на две части.
Чтобы позволить ему работать без сеанса пользователя, вам нужна служба windows. Это должно справиться со всеми фоновыми вещами. Затем вы можете зарегистрировать службу и настроить ее запуск при запуске системы.
Чтобы разрешить ему иметь UI и отображаться в области уведомлений, вам нужно приложение windows. Это будет происходить в режиме автозапуска, как обычно, и будет взаимодействовать со службой — например, по именованным каналам.
Хотя все еще (едва) возможно запустить приложение UI без сеанса пользователя, оно поддерживается только для обратной совместимости и уже показывает множество проблем. Скорее всего, в будущем он будет полностью удален, потому что он нарушает довольно много контрактов. Не полагайтесь на такие хаки.
Вам нужно запустить свою программу как службу Windows. Один из способов сделать это-использовать программу sc.exe :
Вы можете прочитать об этом здесь .
Старый вопрос, но для любого, кто здесь споткнется. Используйте srvany, чтобы настроить программу в качестве пользовательской службы.
Обратите внимание, что когда вы делаете это, например, с помощью dropbox, googledrive и т. Д., Вам нужно будет остановить службу, а затем открыть программу в обычном режиме, чтобы внести изменения, такие как пароль, обновления и т. Д.
ниже приведено достаточно хорошее вступление.
Скачать набор инструментов можно здесь
Я не смог заставить команду «sc create» работать. Вместо этого я вручную отредактировал реестр с помощью regedit. Я добавил новый ключ в HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices.
Я использовал следующую страницу, чтобы выяснить необходимые параметры и их значения. Обратите внимание, что имена не сопоставляются.
- Android Facebook экран входа в систему без клавиатуры
Мое приложение использует логин Facebook. У меня установлено приложение Facebook. Если приходит недопустимый токен Facebook (при смене пароля), то при следующем запуске приложения невозможно использовать клавиатуру на экране входа в систему. Как показано ниже, поле выбрано, а клавиатура.
Я разрабатываю приложение windows phone, которое имеет 2 типа пользователей и требует входа в систему при запуске приложения. Я все еще новичок в разработке windows phone и ищу способ, которым a может управлять сеансами входа в систему (типы to, один может иметь более одного сеанса входа в.
это старый вопрос, но недавно я решил его по-другому.
(раньше я использовал запланированную задачу для запуска, но это вызвало у меня различные проблемы с программным обеспечением. )
Некоторые программы также по разным причинам должны запускаться на уровне пользователя. или даже внутри определенного сеанса пользователя.
Поэтому лучшим способом, который я нашел, было использование такого инструмента, как Sysinternal/Autoruns, для программирования автоматического входа в систему для конкретного пользователя (это параметр реестра). и в папке запуска этого пользователя (или любой другой задачи «autorun/autolaunch»). запустите сценарий, который сначала блокирует экран. а затем запускает другие намеченные программы. это будет выполняться под этим профилем пользователя.
таким образом, вы можете выбрать стандартного пользователя или администратора. или даже запускать программы от стандартного пользователя в режиме администратора.
Надеюсь, это поможет.
Это «hack» решило для меня много проблем с запуском приложений.
Преобразуйте пользовательское приложение в Сервис и зарегистрируйте его с помощью Regsvr32 или installutil.exe . Он запустит службу с использованием учетной записи пользователя SYSTEM. Это учетная запись с высокими привилегиями. Примечание : Вы не можете запустить ни одно оконное приложение. Даже окно только для сообщений.
Я только что решил аналогичную проблему другим способом:
- Сделайте приложение, которое блокирует экран / рабочую станцию
- Поместите ярлык к нему в папку запуска
- Отключить пароль при запуске системы
Когда система запускается, все, что находится в папке запуска, запускается, и экран автоматически блокируется.
Вы можете легко сделать это с помощью консольного приложения. Я использовал приложение WPF по другим причинам.
Похожие вопросы:
Я пытаюсь построить виртуальную машину, где ровно один пользователь (как sudo или нет) может заварить и запустить пользовательскую сборку php. Текущая версия default php должна быть запущена как.
В моем приложении первое действие-это действие страницы входа в систему. Пользователи вводят username and password и входят в действие домашней страницы. Если вы выходите из системы с домашней.
У меня есть alertview, чтобы показать обновление новой версии на странице входа в систему (1-я страница). Но на самом деле я хочу, чтобы это предупреждение появлялось только на странице входа в.
В разделе Facebook политика платформы 1.6 четко указано Ваш веб-сайт должен предлагать явную опцию Log Out, которая также выводит пользователя из Facebook. Поток входа в систему для Web без.
Я пытаюсь создать приложение (Форма Windows) для управления интернет-кафе, которое запускается при запуске каждого клиента и запрашивает учетные данные для входа. Я запускаю серверное приложение в.
Мое приложение использует логин Facebook. У меня установлено приложение Facebook. Если приходит недопустимый токен Facebook (при смене пароля), то при следующем запуске приложения невозможно.
Я разрабатываю приложение windows phone, которое имеет 2 типа пользователей и требует входа в систему при запуске приложения. Я все еще новичок в разработке windows phone и ищу способ, которым a.
Я работаю с формой входа в систему с локальной базой данных (sqlite). Я не могу получить имя пользователя & пароль из вставленных значений/зарегистрированных значений. Если пользователь.
На моем серверном ПК у меня есть простое приложение vb.net, работающее при запуске windows. В настоящее время я просто добавил его в папку StartUp в AppData. Это работает нормально, за исключением.
У меня возникли проблемы при реализации системы входа в систему в интерфейсе, который я создаю: Я хочу, чтобы у него было два типа пользователей: администратор и пользователь, поэтому в зависимости.