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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   Удаленное обновление программы (http://forum.oszone.net/showthread.php?t=325315)

Koto-kun 29-03-2017 10:34 2723988

Удаленное обновление программы
 
Дано 200 пользователей, и много софта и домен. Проблема с удаленным обновлением одной из программ. Она устанавливается в папку Program Files, и при установке вызывает окно UAC с требованием нажать ДА. Объяснить пользователям как это сделать не представляется возможным.
В следствии чего был перерыт весь осзон, много полезной информации нашел, но не получается.
Собственно вот скрипт:

Скрытый текст
@echo off

IF EXIST "C:\Program Files\Вилс"
(

echo Программа удаляется.
Start "" /wait "C:\Program Files\Вилс\unins000.exe" /silent
rd /s /q "C:\Program Files\Вилс"

setup.exe /silent
xcopy /Y "Вилс.lnk" %UserProfile%\Desktop\
)
ELSE
(

setup.exe /silent
xcopy /Y "Вилс.lnk" %UserProfile%\Desktop\
)


Какие проблемы меня поджидали?

1) "Start "" /wait "C:\Program Files\Вилс\unins000.exe" /silent"
Отрабатывается на ура, но бывает Unins000.exe называется Unins001.exe и тогда Батник выкидывает окошко с ошибкой Файл не найден. И не продолжает работу. Как проигнорировать ошибки или пускай хотя бы в командной строке отобразится? Хотя нет, не пойдет - нужен скрипт который позволит найти unins каким бы число на конце не было.

2)rd /s /q "C:\Program Files\Вилс"
отказано в доступе
пробовал делать Runas под учеткой локальной, которая входит в группу администраторов - результата нет. Пробовал делать под учеткой Доменного администратора - тоже не помогает.
Папку после унинсталла надо удалить обязательно, иначе поверх установленная программа не заработает.

3)setup.exe /silent проходит без эксцессов. Но зарпашивает окошко UAC... А пользователям никак не объяснишь что надо нажимать на да...

вроде вот...

Deman80 29-03-2017 16:01 2724101

Если антивирь каспер. Попробуй силами агента каспера.

gannet 29-03-2017 18:37 2724152

Koto-kun, 1 - еще 1 if exist, 2 и 3 - схожая проблема и решение логичное

Казбек 29-03-2017 20:02 2724174

Цитата:

Цитата Koto-kun
Хотя нет, не пойдет - нужен скрипт который позволит найти unins каким бы число на конце не было. »

File masks and wildcards

Iska 29-03-2017 20:42 2724186

Казбек, там не везде корректная информация. В частности, неправильное описание:
Цитата:

? (question-mark character) that stands in for any single character.
Цитата:

*mat?.html — .html files starting with anything and ending with mat followed by any single character.
  • automate.html
  • tomato.html
  • mate.html

Вот здесь: Wildcards | Windows CMD | SS64.com правильнее.

Казбек 29-03-2017 20:48 2724188

Iska,

Вы имеете ввиду упущение, относительно 0??
Цитата:

? Match 0 or one character, except for {dot}.
The only time it matches 0 characters is when it matches the end of the name, or the position before a {dot}.
The question mark can also be used more than once to match more than one character.

Iska 29-03-2017 21:33 2724196

Ну да:
Скрытый текст
Код:

C:\Мои проекты\0056>dir *mat?.html
 Том в устройстве C имеет метку System
 Серийный номер тома: 8280-521A

 Содержимое папки C:\Мои проекты\0056

Файл не найден

C:\Мои проекты\0056>copy nul automate.html
Скопировано файлов:        1.

C:\Мои проекты\0056>copy nul automat.html
Скопировано файлов:        1.

C:\Мои проекты\0056>dir *mat?.html
 Том в устройстве C имеет метку System
 Серийный номер тома: 8280-521A

 Содержимое папки C:\Мои проекты\0056

29.03.2017  21:31                0 automat.html
29.03.2017  21:31                0 automate.html
              2 файлов              0 байт
              0 папок  1,812,451,328 байт свободно


Мелкие тонкости, но сколько же они могут кровушки попить.

Koto-kun 30-03-2017 12:53 2724360

"Если антивирь каспер. Попробуй силами агента каспера."

Да, каспер. Им пытался и пытаюсь. Он не отрабатывает батники в принципе. Пытался лог файл выудить на каком моменте застревает - походу только и запускает сам сетап с ключами тихой установки.

Собственно модифицировал немного батник. При включении его вручную все отрабатывается и ярлычек создается как надо.

Скрытый текст
@echo off

taskkill /t /f /im:operator.exe

IF EXIST "C:\Program Files\Вилс\unins000.exe" (

echo Удаляется старая версия.
Start "" /wait "C:\Program Files\Вилс\unins000.exe" /silent

rd /s /q "C:\Program Files\Вилс"

setup.exe /silent /TASKS="desktopicon" /SUPPRESSMSGBOXES /NORESTART /SP-
xcopy "Рабочее место оператора.lnk" C:\users\public\desktop

) ELSE (

setup.exe /silent /TASKS="desktopicon" /SUPPRESSMSGBOXES /NORESTART /SP-
xcopy "Рабочее место оператора.lnk" C:\users\public\desktop

)

ключ /TASKS="desktopicon" выводит ярлык на рабочий стол, но в каспере он не срабатывает. либо срабатывает под пользователем, под которым каспер ставит программу...
Поэтому я юзал xcopy дополнительно.

UAC отключил через реестр:

Скрытый текст
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 00000000 /f


rd /s /q "C:\Program Files\Вилс"
Команда не отрабатывается ни в какую... Орет отказано в доступе...
Пытался Takeown использовать:

Скрытый текст
C:\>takeown /f "C:\Program Files (x86)\Вилс"
Ошибка. Текущий вошедший пользователь не имеет привилегий владельца
на файл (или папку) "C:\Program Files (x86)\Вилс
".


или icacls

Скрытый текст
C:\>icacls "C:\Program Files\Вилс" /grant:r все:F
C:\Program Files\Вилс: Отказано в доступе.
Успешно обработано 0 файлов; не удалось обработать 1 файлов


Вручную в гуях добавил пользователя "ВСЕ" на папку Вилс с программой, дал пользователю "Все" полный доступ над папкой, с командной строки все нормально начало удаляться.
Вопрос только в том, как это сделать из командной строки. Ее же надо запускать от администратора локального. runas не поможет ибо надо тогда включать учетку у всех... В общем я в раздумьях, слишком это глобально получается... Другие программы нормально обновляются, потому что их удалять не требуется перед установкой новой версии...


попробую через PSEXEC...

Deman80 30-03-2017 14:18 2724386

Задача каспера запускается с каким пользователем?

И что за прога если не секрет?

mwz 30-03-2017 21:12 2724500

Цитата:

Цитата Koto-kun
rd /s /q "C:\Program Files\Вилс" »

Во избежание проблем с двумя русскими кодировками, 1251 и 866, лучше называть папки на латинице. При русских же именах надо или батник сохранять в кодировке 866 (или вы так и делаете?), или первой его строкой делать
Код:

chcp1251
(а вот при ручном вводе в окно cmd система использует правильную кодировку).

Поставьте после этой строки строку с командой pause и посмотрите, какое сообщение об ошибке после этой команды.

Deman80 31-03-2017 08:58 2724591

В каспере создаешь инстолятор setup.exe в параметрах запуска устанавливаешь /silent. При создание задачи укажи обязательно логин и пароль админа домена.


Время: 22:41.

Время: 22:41.
© OSzone.net 2001-