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

Регистрация
19.12.2015
Сообщения
296
Реакции
38
Баллы
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
 
Обнаружилась такая интересная вещь. Зеннопостер (и Проджектмейкер) всегда запускаются и работают с наивысшей привилегией, с правами Администратора.

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

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

Зеннопостер запускается с правами Администратора.JPG
 
Вот сниппет, который тебе поможет!

Код:
Развернуть Свернуть Копировать
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));
 
Спасибо, но я тут ничего не понял.

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

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

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

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

Код:
Развернуть Свернуть Копировать
var ps = System.Diagnostics.Process.Start("explorer.exe", project.Directory + "\\test.au3"));

Единственное, такой код не будет ждать завершения, тут тоже надо подумать..
 
Спасибо, очень интересно.

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

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

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

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

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