ADS

giovedì 21 settembre 2023

File Batch (BAT) per eseguire software remoto

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


Nessun commento:

Posta un commento