|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Запуск скрипта от имени определенного пользователя |
|
|
Запуск скрипта от имени определенного пользователя
|
Новый участник Сообщения: 27 |
Здравствуйте.
Мне нужно, чтобы откомпилированный в EXE'шник AutoIt-скрипт запускался от имени определённого пользователя с его паролем. Главное, чтобы кроме самого EXE-шника небыло больше никаких дополнительных файлов (ярлыков) и манипуляций (BAT'ники, ручной ввод данных), всё должен делать он один, т.е. имя и пароль надо зашить в него! В AutoIt есть замечательная возможность под именем RunAsSet, но это мне не подходит, т.к. помимо Run и RunWait (для которых эта функция собственно и предназначена), в моём скрипте также используются функции для редактирования реестра (RegDelete и т.п.) и идёт работа с файлами в системных директориях (FileDelete и т.д.). Может есть программа, которая способна "зашить" в EXE'шник имя/пароль? Спасибо. |
|
Отправлено: 11:28, 27-01-2010 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать NewOLDi, В версиях AutoIt начиная с v3.2.12.0 уже нет такой функции как RunAsSet, вместо нее теперь есть две функции - RunAs и RunAsWait. но это не по сути немного. эти команды предназначены для запуска других приложений ИЗ самого скрипта, и к запуску самого скрипта как такового отношения не имеют. для решения твоего вопроса, мне представляется вероятнее всего такой вариант - нужно крутить тот инструмент, который запускает скрипт. например создать групповую политику. из самого скрипта, скорее всего, такое делать нельзя.
|
------- Отправлено: 11:45, 27-01-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать NewOLDi, пусть скрипт сам запускает сам себя с нужными правами, например:
- при запуске скрипта проверяем параметры командной строки; - если параметров нет, значит это первый запуск, делаем RunAs самого себя с к-л параметром и выход; - если обнаружен нужный параметр, значит это уже рабочий запуск - переходим выполнению основного кода пример: http://forum.oszone.net/post-889794-831.html |
Отправлено: 11:47, 27-01-2010 | #3 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать amel27, не понял... как выполняющийся скрипт может запустить сам себя? дайте простой пример пожалуйста!
|
Отправлено: 11:06, 28-01-2010 | #4 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать amel27, браво
![]() NewOLDi, имеется в виду два разных сценария запуска. один с параметрами ком. строки, другой без. если нет параметра значит скрипт запустился из скрипта-же. вот пример Только скрипт должен быть откомпилирован перед запуском |
|
------- Отправлено: 11:40, 28-01-2010 | #5 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать kaster, да это я уже понял
![]() ![]() Вот пример моего кода, осталось только разобраться как получить $CmdLine[0]:
msconfig.exe не запустится без прав админа, это так, к слову и для удобства эксперимента... PS: Да, amel27, действительно гениально и просто, огромное спасибо! Как получить $CmdLine[0]? |
Отправлено: 11:53, 28-01-2010 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:05, 28-01-2010 | #7 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Всем большое спасибо за помощь, во всём разобрался, всё получилось!!!
Вот рабочий код, на всякий случай:
Что касается $CmdLine, то я элементарно не знал, что это служебное слово AutoIt. Я думал, что $ подразумевает под собой определение пользовательской переменной, как в PHP ![]() |
Отправлено: 12:28, 28-01-2010 | #8 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Уходя дальше - столкнулся с проблемой...
План действий такой: 1. Запуск скрипта ПОД ТЕКУЩЕЙ УЧЁТКОЙ ПОЛЬЗОВАТЕЛЯ!!!. 2. Запуск скрипта под учёткой Админа. 3. Запуск скрипта ПОД ТЕКУЩЕЙ УЧЁТКОЙ ПОЛЬЗОВАТЕЛЯ!!!. Вот код, который это должен делать: Выполняются 1 и 2 пункты. 3 пункт выполняется неверно, а именно - он выполняется от учётки Админа (т.е. один раз выполнившись от Админа - скрипт и впредь от этого имени фигачит)! Как его выполнить от учётной записи текущего пользователя (без явного указания имени/пароля)? |
Последний раз редактировалось NewOLDi, 29-01-2010 в 22:12. Отправлено: 22:01, 29-01-2010 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата NewOLDi:
Перепланируйте задачу так, чтобы первый запуск скрипта был главным, и единственным запуском под пользователем, а все админские запуски выполнялись из него, например так: ; Описание всех админских процедур If $CmdLine[0] Then Select Case $CmdLine[1] == '1' MsgBox(0, 'Сообщение', 'Процедура 1 запущена под пользователем '& @UserName) Exit 0 Case $CmdLine[1] == '2' MsgBox(0, 'Сообщение', 'Процедура 2 запущена под пользователем '& @UserName) Exit 0 Case Else Exit -1 EndSelect EndIf ; Запуск процедуры 1 по админом RunAsWait ( 'Administrator', @ComputerName, 'пароль', 1, @ScriptDir & '\' & @ScriptName & ' 1' ) ; Выполнение команды под пользователем FileWrite ( '\\сетевой путь\имя файла1' ) ; Запуск процедуры 2 по админом RunAsWait ( 'Administrator', @ComputerName, 'пароль', 1, @ScriptDir & '\' & @ScriptName & ' 2' ) ; Выполнение команды под пользователем FileWrite ( '\\сетевой путь\имя файла2' ) |
|
Отправлено: 04:23, 01-02-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Запуск программ от имени другого пользователя | Guest | Microsoft Windows 2000/XP | 85 | 21-01-2020 02:06 | |
Доступ - Запуск от имени другого пользователя. | alexnj | Microsoft Windows 7 | 0 | 08-05-2009 20:35 | |
GPO - запуск скрипта с административными правами из под пользователя | Spooner | Microsoft Windows NT/2000/2003 | 5 | 27-04-2009 12:23 | |
Запуск задания от имени другого пользователя | madmax24 | Microsoft Windows NT/2000/2003 | 5 | 08-12-2008 08:45 | |
Разное - Запуск от имени пользователя.. | Великий Кукурузо | Microsoft Windows Vista | 26 | 29-10-2008 09:03 |
|