Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как запустить из одного батника другой от имени администратора под семеркой

Ответить
Настройки темы
CMD/BAT - [решено] как запустить из одного батника другой от имени администратора под семеркой

Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: seriych
Дата: 16-05-2010
Как запустить из одного батника другой от имени администратора под семеркой с включенным UAC (Естествено, я понимаю, что все равно UAC выдаст предупреждение, но меня это устраивает). runas /user:Admin (admin, Администратор) не работает- пишет "вход не произведен" по причине "пользователь не существует" или "имеются ограничения".

И второе:
Как изнутри батника определить что его запустили от имени администратора в семерке? (переменная %USERNAME% все равно содержит имя исходного пользователя).

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 21:09, 16-05-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


1. может, через ярлык (там вроде есть опция) ?.. типа: 'Start "" script.lnk'
2. ткнуться в запрещенный ресурс, пример: http://csi-windows.com/toolkit/csi-isadmin
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:08, 17-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


amel27,
1. проверю, но что-то не нравится мне это
2. Тоже такая мысль была. Думал можно по-нормальному (то есть команда для этого есть). Попробовал указанный там код- всегда выдавал YES почему-то.

Добавлено:
2. Честно говоря, указанный код разбирать желания пока нет. Заметил, что при запуске от администратора переменная %CD% принимает вид C:\Windows\system32, поэтому попробовал так:
Код: Выделить весь код
set RunAdmin=false
if "%CD%"=="%WinDir%\system32" set RunAdmin=true
Работает, при условии, что мы точно знаем, что запускаем батник не из %WinDir%\system32 и UAC включен. Однако если UAC отключен, то %CD% принимает значение директории из которой запущен батник даже если запустить от админа (причем при входе что от ограниченного пользователя, что от админа). Отсюда возникает вопрос: есть ли вообще разница при отключенном UAC в простом запуске программы и запуске от администратора?

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Последний раз редактировалось seriych, 17-05-2010 в 20:59.


Отправлено: 16:56, 17-05-2010 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


2. Команды, к сожалению, нет (именно на полномочия, а не на проверку членства в группе). Попробуйте посмотреть здесь: CMD/BAT: наличие административных привилегий у текущего пользователя. Там есть как и тот же принцип, так и другой способ. Проверять, годится ли хоть что-то оттуда для «Windows 7», предстоит Вам.

Если выйти за рамки тематики, то есть интересная библиотека «%systemroot%\system32\compatui.dll»: vbscript: некоторые интересные объекты — опрос мнения с функцией «.CheckAdminPrivileges()» (есть ли она в умолчальной поставке «Windows 7» — равно не знаю [но не откажусь от Ваших комментариев, если она есть]).

seriych, а, может быть, стоит задействовать для сего PowerShell из командного файла, а? Он ведь вроде как умеет исполнять код из своей командной строки? Я вот буквально сегодня смотрел пример подобного использования (если я всё правильно там понял; сам я, к сожалению, пока не работаю с PowerShell).

Отправлено: 21:15, 17-05-2010 | #4


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


Цитата Iska:
то есть интересная библиотека «%systemroot%\system32\compatui.dll»: vbscript: некоторые интересные объекты — опрос мнения с функцией «.CheckAdminPrivileges()» (есть ли она в умолчальной поставке «Windows 7» — равно не знаю [но не откажусь от Ваших комментариев, если она есть]). »
В базовой нет. Мне надо, чтобы оно работало даже на стартере. Хотелось бы только bat, чтобы могли редактировать люди, знающие только bat.

По поводу остального завтра посмотрю, а то сегодня устал дико.

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 21:44, 17-05-2010 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата seriych:
В базовой нет. »
Спасибо, ясно.

Отправлено: 21:57, 17-05-2010 | #6


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


После выходных со свежими мыслями все проверил
1. С ярлыком все работает. Создаем исполняемый батник, делаем на него ярлык и ставим в опциях ярлыка "Запускать от имени администратора". Работоспособность сохраняется при копировании обоих файлов в другую папку или на другой комп.
2. Метод с сайта работает, надо только для русской версии заменить в коде "Not found" на "*Ґ **©¤Ґ*" или "не найден" (в дос-кодировке).
Мой метод с %CD% вроде работает также, если мы точто запускаем батник не из %WinDir%\system32.

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 14:53, 20-05-2010 | #7


Старожил


Сообщения: 222
Благодарности: 5

Профиль | Отправить PM | Цитировать


У меня такая проблема: у меня на переносном жестком диске батник который на ХП делал определенные операции:

читать дальше »

@echo off
cd \
rd /s /q Updates
\Autorun\Total\Admin\HDD_soft\Update\wget.exe -N -P Updates -c -t 0 http://www.xxx/updates/kaspersky.rar
\Autorun\Total\Admin\HDD_soft\Update\wget.exe -N -P Updates -c -t 0 http://www.xxx/updates/nod32v3.rar
\Autorun\Total\Admin\HDD_soft\Update\wget.exe -N -P Updates -c -t 0 http://www.xxx/updates/nod32v2.rar


Как заставить его тоже делать на семерке.

1. Есил я его просто запускаю то мне выдается ошибка о не возможности удаления rd /s /q Updates .
2. Если я его запускаю от имени администратора то при выполнении команды cd \ я оказываюсь на диске С:\ , а не в корне портативного жёсткого (естественно он не находит ни папки Updates ни пути к проге wget.exe )

3. Приходится вручную удалять папку Updates (это самый простой способ который я нашел), и запускать без каких либо прав админа, тогда у меня скачиваются базы к антивирусам. Но это крайне неудобно, к тому же данный батник я запускаю с панели Total Commander.

Цитата seriych:
1. С ярлыком все работает. Создаем исполняемый батник, делаем на него ярлык и ставим в опциях ярлыка "Запускать от имени администратора". Работоспособность сохраняется при копировании обоих файлов в другую папку или на другой комп. »
Это я тоже сделать не могу так как галочка в свойствах ярлыка батника не активна, следовательно не вижу никакого смысла запускать батник с ярлыка.

Отправлено: 12:36, 01-10-2010 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Cancer_mvm:
Если я его запускаю от имени администратора то при выполнении команды cd \ я оказываюсь на диске С:\ , а не в корне портативного жёсткого »
попробуйте заменить "cd \" на "cd /d %~d0\"
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:57, 01-10-2010 | #9


Старожил


Сообщения: 222
Благодарности: 5

Профиль | Отправить PM | Цитировать


amel27, Спасибо огромное, работает!!! еще хотелось бы знать расшифровку этой строчки"cd /d %~d0\", очень интересно что чего делает, т.к. самостоятельно я такое не составил бы.

И еще вопрос как сделать что б этот батник с панели Total Commander запускался с админскими правами (предупреждение UAC меня устраивает).

Отправлено: 15:05, 01-10-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как запустить из одного батника другой от имени администратора под семеркой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как определить количество установленной памяти в ХР с помошью .cmd .bat? xaosxaos Скриптовые языки администрирования Windows 17 28-03-2017 23:57
CMD/BAT - BAT файл, который вставляет текст в открытую командную строку. garanov Скриптовые языки администрирования Windows 13 18-02-2015 20:26
Как определить время работы пользователя? remotor Microsoft Windows NT/2000/2003 12 14-01-2009 10:58
Как создать *.bat файл? ssdm Хочу все знать 2 26-02-2007 09:36
как определить ip у пользователя , ели знаешь только его имя djoniAg Сетевые технологии 7 30-05-2005 19:50




 
Переход