Можно без участия администратора запускать файл установщика "
Skype-Setup.exe" от имени пользователя с правами администратора на данном ПК.
Например с помощью PsExec.exe.
Но с %appdata% не дает запускать, поэтому можно скопировать, например, в %temp%, затем запустить установку и принудительно закрыть процессы, т.к. Skype запуститься от имени
другого пользователя.
Делал так
@echo off
echo.
echo Обновляем Skype 8.x
set skypesetupfile=%appdata%\Microsoft\Skype for Desktop\Skype-Setup.exe
set skypesetup=%temp%\Microsoft\Skype-Setup.exe
set usera=soft
set code=12345
set utillitiesdir=\\server\utillities
set logfile=\\server\Skype\%COMPUTERNAME%.log
if exist "%skypesetupfile%" (
goto :ustanovka
) else (
echo.
echo Не найден Skype-Setup.exe! Выход...
)
color 08
goto :EOF
:ustanovka
color 0E
echo ..запускаем обновление Skype
:: вычисляем есть ли группа INSTALLSOFTGROUP в Администраторах на данном ПК
Net LocalGroup Администраторы|find /I "DOMAIN\INSTALLSOFTGROUP"
if %errorlevel%==0 (
"%utillitiesdir%\PsExec.exe" -accepteula -u DOMAIN\%usera% -p %code% -e cmd /c xcopy "%skypesetupfile%" "%temp%\Microsoft\" /DVIQRY
set err2=%errorlevel%
echo err при копировании =%errorlevel%
ping -n 3 localhost>nul
"%utillitiesdir%\PsExec.exe" -accepteula -u DOMAIN\%usera% -p %code% -e "%skypesetup%"
set err3=%errorlevel%
echo err при установке =%errorlevel%
ping -n 3 localhost>nul
"%utillitiesdir%\PsExec.exe" -accepteula -u DOMAIN\%usera% -p %code% -e taskkill /F /IM "Skype.exe"
) else (
start "" "%skypesetupfile%"
set err2=%errorlevel%
)
:next1
:: Записываем в лог
echo Skype UPDATE %date% in %time:~0,8% by %USERNAME% err^=%err2%/%err3% adm^=%adm2%>> "%logfile%"
goto :EOF
Важно! Не безопасно хранить пароль администратора в открытом виде.
Запускается в основном на Win 7 x64.
Лишние строки можно поудалять.