Админ - щедрая душа

Albert_researcher

Модератор
Команда форума
У начальника есть печать, у завхоза - ключи, у папы - ремень и никто не делится этим. Только Админ - щедрая душа, готов поделиться самым сокровенным, а именно своими правами. Бывают ситуации, когда установленная программа цепляется за админские права и никак не хочет запускаться под юзером. Если установить её от юзера с Админскими правами, то работает как надо. Конечно из командной строки, запущенной от Администратора с помощью какой-то compmgmt.msc можно добавить локального пользователя Васю в группу: Администраторы. Но как правило Юзера у нас бесправные, а делать лишние движения не комильфо. Предлагаю использовать для этого пару батников.

Первый запускается от пользователя, и копирует имя пользователя в буфер. Второй запускается от Администратора и загоняет пользователя в Админскую группу (имя пользователя вставляем по правой кнопке мыши из буфера). Для Widows XP надо бы иметь в папке и утилиту clip.exe от Microsoft .

@echo off
echo %username% |clip
exit

@echo off
chcp 1251
color 3e
mode con:cols=83 lines=7
SET /P USER="Set user name "
net localgroup Администраторы %USER% /add >nul 2>nul
net localgroup Administrators %USER% /add >nul 2>nul
echo;
cmd /c echo Now you will receive administrator rights
cmd /c echo after re-login, enter the password
echo;
chcp 866 >nul 2>nul
pause
shutdown -l
 

wadimus

Новичок
продолжу .. год назад писал на одном форуме ..
в системе есть мало-документируемая переменная %__COMPAT_LAYER%
она нужна для повышения прав без использования UAC
можно ей просвоить сл.значения:
RunAsInvoker (asInvoker)
RunAsHighest (highAvailable)
RunAsAdmin (requireAdministrator)
и использовать так:
Код:
setlocal
set "__COMPAT_LAYER=RunAsInvoker"
start "" <тут вставляем нашу программУ, которую надо запустить>
endlocal
можно использовать как подпрограмму с передачей нужных ключей
Код:
.. вызвали подпрограмму и передали в какчестве аргумента программу
call :m <наш ехе-файл - он будет в нашей подпрограмме первым аргументом %~1>
Exit /B
:m
if "%~1" neq "" set "__COMPAT_LAYER=RunAsInvoker"&start "" "%~1"&set __COMPAT_LAYER=
Exit /B
 

Albert_researcher

Модератор
Команда форума
wadimus, ваше сообщение заинтересовало, немного почитал об этом. Я встречал использование этой переменной в некоторых скриптах, но всегда не хватало времени посмотреть и оценить.
Создал на рабочем столе батник run-as-non-admin.bat со следующим текстом:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
и
%windir%\regedit.exe
Поперетаскивал ярлык для regedita на батник, запроса от контроля учетных записей не было. Я так понял, что прав не прибавляется, но запросы пресекаются на корню. В некоторых случаях это может помочь, например программа отлично работала на windows XP и ей не нужны запросы при работе в других Windows.
При создании
C:\Windows\System32\regedt32.exe
и перетаскивании, запрос был. Может быть проблема в том, что я Администратор и мне не дано увидеть истину. Кстати я заметил, что при создании ярлыка доступа к сетевой папке \\Папка.домен\xxx.exe спрашивается про то, вы позволяете запустить эту программу, а если так \\Папка\xxx.exe, то запускается без вопросов.
 
Последнее редактирование:

Последние темы

Верх