Desplegar .msi con un .bat

Resuelto
reno732 Mensajes publicados 227 Estado Miembro -  
reno732 Mensajes publicados 227 Estado Miembro -
Bonjour,

Tengo varios programas que desplegar en un parque informático importante. Quiero, en primer lugar, crear un .bat que inicie la instalación de los .si ubicados en la ubicación de red compartida \\servidor\msi$ con los derechos del usuario admin del dominio dominio.lan y la contraseña como contraseña del usuario admin.

Deseo que la instalación de los msi se realice automáticamente sin intervención del usuario.

Por ahora, estoy comenzando con el comando

runas /user:admin@domain.lan msiexec.exe -i \\servidor\msi$\aplicación.msi

Dispongo de .msi y de .mst. De hecho, para una parte del parque informático, el proveedor habitual no interviene, pero tengo las fuentes de todas las aplicaciones que normalmente se despliegan en la OU gestionada.

Gracias de antemano.

2 respuestas

reno732 Mensajes publicados 227 Estado Miembro 90
 
Donc para el comando para iniciar la instalación ha sido exitoso:

start /wait msiexec /i "\\servidor\msi$\aplicaciones\applis.msi" /qn
start /wait msiexec /i "\\servidor\msi$\aplicaciones2\applis2.msi" /qn
...

También tengo un problema de permisos que resolver:

¿Qué opción agregar a RUNAS en un dominio de Active Directory?

Me gustaría comprobar si los programas ya están instalados antes de ejecutar este script ...
0
Redstoner26
 
Voila un código que permitirá lanzar la consola (CMD) como administrador:

for /f "tokens=3*" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName ^| Find "ProductName"') do set WINVER=%%i %%j
echo %WINVER% | find "XP" > nul && goto commands

if "%1" == "UAC" goto elevation
(
echo Set objShell = CreateObject^("Shell.Application"^)
echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
echo strPath = objFSO.GetParentFolderName^(WScript.ScriptFullName^)
echo If objFSO.FileExists^("%~0"^) Then
echo objShell.ShellExecute "cmd.exe", "/c """"%~0"" UAC ""%~dp0""""", "", "runas", 1
echo Else
echo MsgBox "Archivo de script no encontrado"
echo End If
) > "%TEMP%\UAC.vbs"
cscript //nologo "%TEMP%\UAC.vbs"
goto :eof
:elevation
del /q "%TEMP%\UAC.vbs"

:commands
%~d2

cd "%~p2"
0
reno732 Mensajes publicados 227 Estado Miembro 90
 
Gracias, además es elegante if "&1" == "UAC" goto elevation, estoy probando.
0