Chi come me usa PC in un dominio a volte deve installare software EXE o MSI su molti PC. Se non si vuole ricorrere alle GPO si può fare usando due programmi forniti da Microsoft: Il primo è MSIEXEC già incluso nei PC e nel server. L'altro è PSEXEC scaricabile per pacchetto PSTools di Microsoft da qui:
https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
Il piccolo programma si occupa con pochissime righe di diffrenziare gli exe dagli msi che altrimenti potrebbero dare errore durante l'installazione. Chiede il nome utente amministrativo e la relativa password.
Il numero dei pc fa riferimento ad una consapevole identificazione del tipo:
Computer-01
Computer-02
....
Oppure
PC01
PC02
...
Se avete nomi diversi purtroppo andrebbe modificato il programmino che aggiunge lo zero per numeri inferiori a 9...
Eccolo:
@echo off
COLOR 4F
echo By Marco Mira 2023
echo.
setlocal enabledelayedexpansion
rem Richiedi l'utente e la password
set /p "user=Inserisci il nome utente completo di DOMINIO\: "
set /p "password=Inserisci la password senza essere visto: "
echo.
echo CTRL+C per uscire con S in qualsiasi momento!
echo.
:menu
echo Richiedi il nome del PC, il numero di partenza, il numero di fine e il percorso del file .exe o .msi
echo.
set /p "computer_name=Inserisci il nome del PC: "
set /p "start_number=Inserisci il numero di partenza (da): "
set /p "end_number=Inserisci il numero di fine (a): "
echo.
echo Scegli se EXE(1) o MSI(2)
echo.
echo 1 - Esegui PSEXEC con EXE
echo 2 - Esegui MSIEXEC con MSI
echo x - Uscita
echo.
set /p "scelta=Inserire il numero desiderato: "
if "%scelta%"=="1" (
goto :exe
) else if "%scelta%"=="2" (
goto :msi
) else (
goto :fine
)
:exe
rem Richiedi il percorso del file .exe
echo Non dimenticare il percorso completo \\server\cartella\programma.exe
echo e gli eventuali / con opzioni (silent, verysilent, allusesrs, etc)
echo.
set /p "file_path=Inserisci il percorso e il nome del file .exe: "
rem Ciclo attraverso l'intervallo di numeri
for /l %%i in (%start_number%,1,%end_number%) do (
rem Genera il nome del computer con zero davanti ai numeri da 1 a 9
set "computer=!computer_name!%%i"
if %%i leq 9 set "computer=!computer_name!0%%i"
echo Eseguo il comando su !computer!
psexec \\!computer! -u !user! -p !password! -d -i !file_path!
)
goto :fine
:msi
rem Richiedi il percorso del file .msi
echo Immetti il percorso completo \\server\cartella\programma.msi
echo Ricorda che le opzioni sono di msiexec e /passive gi incluso
echo.
set /p "msi_path=Inserisci il percorso del file .msi: "
rem Ciclo attraverso la serie di numeri
for /l %%i in (%start_number%,1,%end_number%) do (
rem Genera il nome del computer con zero davanti ai numeri da 1 a 9
set "computer=!computer_name!%%i"
if %%i leq 9 set "computer=!computer_name!0%%i"
echo Eseguo il comando su !computer!
psexec \\!computer! -u !user! -p !password! -s -i msiexec /i !msi_path! /passive
)
:fine
echo Fatto!
pause
:endlocal