Войти

Показать полную графическую версию : [решено] Батник на переименование от имени администратора.


Kondei
29-11-2011, 02:26
Всем привет.
Суть задачи: необходимо разослать по почте 100+ пользователям некое обновление программы. Почтовые фильтры не пускают *.exe файлы (политика компании мать её).
Решил исходный файл сделать с разрешение *.dat и написать батник на переименование в *.exe c дальнейшем автозапуском.
Получилось что-то вроде:

runas /netonly /user:Admin "ren sys.dat sys.exe

runas /netonly /user:Admin "@start C:\sys\sys.exe"

Проблема в том, что под другим пользователем (без админских прав), файл по данному батнику не переименовывается (на введении пароля пишет, что он не правильный).
А вот запускается свободно...

So Sensually
29-11-2011, 10:59
Может зарарить экзешник?

Или если все компы в одной сети то через групповые политики накатить обновление? Ну или либо на почтовом серваке разрешить exe на сутки.

Kondei
30-11-2011, 01:52
Архивы тоже не пустит. Разрешить - ну поптыка, не пытка, только успех мал.

Loran_rus
30-11-2011, 07:57
если ОС Windows XP то можно попробовать ваше новое расширение EXE файла ассоциировать на выполнение через C:\WINDOWS\system32\win.com тогда проблема переименования отпадет

под windows 7 не знаю как называется подобный файл, но тоже должен быть

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

Kondei
30-11-2011, 09:41
нет все права закрыты полностью, даже время не поменять.

Loran_rus
30-11-2011, 13:29
нет все права закрыты полностью, даже время не поменять.
Ну это уже паранойя запретить пользователю переименовывать файлы владельцем которых он является, а менять время обычным пользователям по умолчанию не положено :)

Тогда 1й вариант:
Внести в реестр от имени пользователя с правами на редактирования реестра необходимые параметры

Пример для файла с расширением *.1@3

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.1@3]
@="MySpecialExpansion"

[HKEY_CLASSES_ROOT\MySpecialExpansion]

[HKEY_CLASSES_ROOT\MySpecialExpansion\DefaultIcon]
@="C:\\Windows\\System32\\SHELL32.dll,1"

[HKEY_CLASSES_ROOT\MySpecialExpansion\shell]

[HKEY_CLASSES_ROOT\MySpecialExpansion\shell\open]

[HKEY_CLASSES_ROOT\MySpecialExpansion\shell\open\command]
@="\"C:\\Windows\\System32\\win.com\" \"%1\""

можно через CMD/BAT скрипт используя Reg Add, а потом уже выполнить файл с зарегистрированным расширением от имени пользователя с правами на установку обновления.
Ну и почистить реестр если снова подобные задачи выполнять не требуеться

Kondei
01-12-2011, 03:39
спасибо помогло.

Loran_rus
01-12-2011, 06:59
Жуть а не политика безопасности
Попробуйте так, вернемся с чего начинали, но идеи уже на исходе
runas /netonly /user:techsupport "cmd /c ren c:\sys\sys.dat sys.exe"
Команда РанАс требует наличия файла который можно выполнить и передать ему параметры если необходимо, а Ren это команда приложения cmd.exe




© OSzone.net 2001-2012