Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] как запустить из одного батника другой от имени администратора под семеркой (http://forum.oszone.net/showthread.php?t=175832)

seriych 16-05-2010 21:09 1414727

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

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

amel27 17-05-2010 08:08 1414924

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

seriych 17-05-2010 16:56 1415226

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 в простом запуске программы и запуске от администратора?

Iska 17-05-2010 21:15 1415450

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

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

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

seriych 17-05-2010 21:44 1415471

Цитата:

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

В базовой нет. Мне надо, чтобы оно работало даже на стартере. Хотелось бы только bat, чтобы могли редактировать люди, знающие только bat.

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

Iska 17-05-2010 21:57 1415484

Цитата:

Цитата seriych
В базовой нет. »

Спасибо, ясно.

seriych 20-05-2010 14:53 1417422

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

Cancer_mvm 01-10-2010 12:36 1508831

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

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

@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. С ярлыком все работает. Создаем исполняемый батник, делаем на него ярлык и ставим в опциях ярлыка "Запускать от имени администратора". Работоспособность сохраняется при копировании обоих файлов в другую папку или на другой комп. »

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

amel27 01-10-2010 12:57 1508842

Цитата:

Цитата Cancer_mvm
Если я его запускаю от имени администратора то при выполнении команды cd \ я оказываюсь на диске С:\ , а не в корне портативного жёсткого »

попробуйте заменить "cd \" на "cd /d %~d0\"

Cancer_mvm 01-10-2010 15:05 1508965

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

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

amel27 02-10-2010 05:07 1509430

Цитата:

Цитата Cancer_mvm
очень интересно что чего делает »

в справке подробно расписано: "HELP CALL", "HELP CD"

Цитата:

Цитата Cancer_mvm
как сделать что б этот батник с панели Total Commander запускался с админскими правами »

п.1 поста #2

Sirius83 01-11-2012 18:11 2016688

Доброго времени! Вопрос как сделать так чтобы звук в динамике был слишен удаленному клиенту к которому я подключаюсь терминально, а не мне. Тоисть я подключаюсь терминально к клиенту запускаю некий простенький bat-файл которий содержит команду @echo • (для пищалки через системный динамик ПК) и все хорошо пищит но только мне, а ни клиенту, а хотелось бы наоборот.

asmalyshev 05-04-2013 11:10 2126115

Коллеги я придумал другую проверку
Код:

rem # Проверка UAC
rem ===============
sc start W32Time| findstr /i "1056"
IF NOT %ERRORLEVEL%==0 (echo Access is denied! && pause && exit /b)
rem ===============



Время: 05:46.

Время: 05:46.
© OSzone.net 2001-