Что нового

Запуск Windows утилит через AutoIt без прав администратора

Сообщения
80
Репутация
-1
Написал менюшку с кнопками запуска ходовых программ, командная строка, калькулятор.
И для пущей крутости даже msconfig.
Событие кнопки запускает простой функцией
Код:
Func btnTM()
Run (@SystemDir & "\taskmgr.exe", @SystemDir ,@SW_SHOW)
EndFunc

Func btnDM()
Run (@SystemDir & "\mmc.exe " & @SystemDir & "\devmgmt.msc" , @SystemDir ,@SW_SHOW)
EndFunc

Под админом всё работает.
На win7 под гостем(очень урезаным пользователем),
msconfig выдал табличку и работать отказался,
---------------------------
Конфигурация системы
---------------------------
Вы не имеете достаточных привилегий для запуска программы настройки системы. Запустите эту программу от имени пользователя, являющегося членом группы администраторов.
---------------------------
ОК
---------------------------
под 10 он даже это не выдал, молча не работает.
Просто сделаю эту кнопку недоступной.

Диспетчер устройств на 7 запускается только для просмотра, но и это тоже хорошо.
---------------------------
Диспетчер устройств
---------------------------
Вы вошли с правами обычного пользователя. Можно просматривать параметры устройства в диспетчере устройств, однако для внесения изменений необходимо войти в систему с правами администратора.
---------------------------
ОК
---------------------------
Диспетчер задач запускается и показывает только свои процессы.

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

Возможно дело в том что в 7 я отключил надоедливые предупреждения, а 10 как раз для этих тестов и стоит в виртуалке.

Так можно ли запустить скриптом диспетчер задач от обычного пользователя ? Мне ведь надо смотреть процессами которые я этим скриптом и запустил, а запускаются они и выключаются им нормально вроде как.
Ну или писать аналог своего диспетчера с минимумом функций, чтоб показывал только мои процессы, так даже удобнее будет, но долго
 
A

Alofa

Гость
Код:
Run(@ComSpec & ' /c ' & @SystemDir & "\taskmgr.exe", @SystemDir, @SW_HIDE)
Run(@ComSpec & ' /c ' & @SystemDir & "\mmc.exe " & @SystemDir & "\devmgmt.msc", @SystemDir, @SW_HIDE)
 
Автор
W
Сообщения
80
Репутация
-1
Тогда висят ещё минимум 1 процесс cmd , а то 2 подхватывая conhost, хотя так быстрее.
Но как раз эти процессы видеть и не надо

Ну тогда пусть будет так
Код:
$hImage = _GUIImageList_Create(32, 32, 5, 3);
_GUIImageList_AddIcon($hImage, "taskmgr.exe", 0, True)
$btnTM = GUICtrlCreateButton("Диспетчер задач", 187, 66, 147, 40)

Select
   Case IsAdmin()
GUICtrlSetOnEvent(-1, "btnTM")
Case Else
GUICtrlSetOnEvent(-1, "btnTMu")
EndSelect
_GUICtrlButton_SetImageList($btnTM, $hImage)

Func btnTM()
Run (@SystemDir & "\taskmgr.exe", @SystemDir ,@SW_SHOW)
EndFunc
Func btnTMu()
Run(@ComSpec & ' /c ' & @SystemDir & "\taskmgr.exe", @SystemDir, @SW_HIDE)
EndFunc
 
Автор
W
Сообщения
80
Репутация
-1
В общем оказалось что надо так

Код:
ShellExecute(@SystemDir & '\taskmgr.exe', '', '', '', @SW_SHOW)
ShellExecute(@SystemDir & '\mmc.exe', @SystemDir & "\devmgmt.msc", '', '', @SW_SHOW)
 
Верх