Действие «Запуск программы» и права администратора

Регистрация
19.12.2015
Сообщения
271
Благодарностей
34
Баллы
28
Скажите, пожалуйста, действие «Запуск программы» всегда запускает все программы с правами Администратора, даже если в параметрах запуска той или иной программы не активирвана эта опция?

У меня возникли проблемы с запуском посредством этого кубика НЕКОТОРЫХ скриптов программы AUTOIT.

Без кубика скрипт отрабатывает без шибок. Запуск без прав Администратора.

Стоит мне только запустить без кубика этот же самый скрипт с правами Администратора, он тут же выдает ошибку: не может найти заданный OLE объект.

При запуске этого же скрипта из-под кубика «Запуск программы» в Зеннопостере всегда выскакивает та же ошибка: не получается найти заданный OLE объект.

Такое впечатление, что как бы, кубик всегда насильственно запускает все программы с правами Администратора.

Так это или нет?

Действие «Запуск программы» и права администратора.JPG


Код:
#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.14.2
Author:         myName

Script Function:
    Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#include <Excel.au3>

Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase

; Local $oExcel = _Excel_Open()

Local $oExcel = ObjGet("", "Excel.Application") ; Get an existing Excel Object
     If @error Then
         MsgBox(0, "AutoIt", "Error Getting an active Excel Object. Error code: " & Hex(@error, 8))
         Exit
     EndIf
 
Регистрация
19.12.2015
Сообщения
271
Благодарностей
34
Баллы
28
Обнаружилась такая интересная вещь. Зеннопостер (и Проджектмейкер) всегда запускаются и работают с наивысшей привилегией, с правами Администратора.

Все запущенные сторонние программы через действие «Запуск программы» автоматически наследуют эти привилегии и тоже запускаются и работают с правами Администратора, что не всегда полезно, а иногда и просто вредит!

Нельзя ли сделать в действии «Запуск программы» дополнительную опцию, где пользователь мог бы указывать, с какими правами он хочет запустить ту или иную программу из-под кубика «Запуск программы»?

Зеннопостер запускается с правами Администратора.JPG
 

gigavat

Super Moderator
Регистрация
17.11.2011
Сообщения
112
Благодарностей
88
Баллы
28
Вот сниппет, который тебе поможет!

Код:
var filepath = project.Variables["filepath"].Value; // путь к файлу
var arguments = project.Variables["arguments"].Value; // аргументы
var ps = System.Diagnostics.Process.Start("explorer.exe", string.Format("\"{0}\" \"{1}\"", filepath, arguments));
 
Регистрация
19.12.2015
Сообщения
271
Благодарностей
34
Баллы
28
Спасибо, но я тут ничего не понял.

Я не работал с этим языком программирования.

Подскажи подробнее.

Как мне запустить скрипт AutoIt3 не с правами Администратора (elevated privileges), а с правами текущего рядового пользователя (даже если тот и входит в группу Администраторов).

При запуске скрипта AutoIt3 с правами Администратора возникают различные проблемы, связанные с защитой операционной системы Windows (ограничивается доступ к документам, которые были созданы при работе Экселя без привилегий Администратора, например, невозможно программным путем закрыть открытый в Экселе документ). Доступ любой программы, работающей с правами Администратора, к OLE объектам запрещен, если эти объекты были созданы любой программой, работающей без привилегий Администратора.
 

gigavat

Super Moderator
Регистрация
17.11.2011
Сообщения
112
Благодарностей
88
Баллы
28
Можно увидеть скрин действия "Запуск программы", которым скрипт запускался ?
 
Регистрация
19.12.2015
Сообщения
271
Благодарностей
34
Баллы
28
Да, пожалуйста:
Запуск скрипта AutoIt3.JPG
 

gigavat

Super Moderator
Регистрация
17.11.2011
Сообщения
112
Благодарностей
88
Баллы
28
Попробуйте выполнить действие C# код, с таким содержимым:

Код:
var ps = System.Diagnostics.Process.Start("explorer.exe", project.Directory + "\\test.au3"));
Единственное, такой код не будет ждать завершения, тут тоже надо подумать..
 
Регистрация
19.12.2015
Сообщения
271
Благодарностей
34
Баллы
28
Спасибо, очень интересно.

Завтра буду пробовать.

Ждать завершения действия не обязательно, лишь бы открытый в Экселе документ закрывался без проблем.

Если это ухищрение поможет запустить скрипт AutoIt3 с правами текущего пользователя (а не с привилегированными правами Администратора), то документ в Экселе должен закрываться без проблем.
 
Регистрация
19.12.2015
Сообщения
271
Благодарностей
34
Баллы
28
Сегодня проверил - все работает отлично! Скрипт запускается с привилегиями обычного пользователя, открытый в Экселе документ закрывается без проблем.

Большое спасибо за помощь, сам никогда бы не догадался, что можно так сделать... :dd:
 

gigavat

Super Moderator
Регистрация
17.11.2011
Сообщения
112
Благодарностей
88
Баллы
28
Рад помочь)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)