ADS

giovedì 28 maggio 2026

Rimuovere Software da Client DC

Come ben sapete ho la gestione di più computer all'interno della mia rete e molti di questi sono utilizzati per tutto il tempo della mia presenza a scuola... Come fare manutenzione ad esempio rimuovendo Software non necessari senza disturbare ragazzi e docenti? Ho creato un piccolo programma DOS molto pratico che fa uso di PSEXEC. Si esegue dalla cartella del server dove presente psexec.exe e con diritti amministrativi di dominio!

Chiede il nome del PC che deve essere inserito correttamente nel dominio, una parte del nome del Software da rimuovere 

Ecco il contenuto da copiare ed incollare in un file RimuoviSoftware.bat


@echo off
color 17
setlocal enabledelayedexpansion
title Tool di Rimozione Remota con PsExec

:INIZIO
cls
echo ============================================================
echo         TOOL DI RIMOZIONE SOFTWARE REMOTA (PsExec)
echo ============================================================
echo.
:: 1. Richiesta input all'utente
set /p TARGET_PC="1. Inserisci il nome del PC remoto (es. mltm03): "
if "%TARGET_PC%"=="" goto INIZIO
set /p SOFTWARE_NAME="2. Inserisci il nome del software da cercare (es. Adobe Acrobat): "
if "%SOFTWARE_NAME%"=="" goto INIZIO
echo.
echo Connessione a \\%TARGET_PC% e ricerca in corso...
echo Attendi qualche istante...
echo.
:: 2. Esegue WMIC tramite PsExec e salva il risultato in un file temporaneo locale
psexec \\%TARGET_PC% wmic product where "name like '%%%SOFTWARE_NAME%%%%'" get identifyingnumber,name > temp_risultato.txt 2>nul
:: Pulizia del file (WMIC genera output in formato Unicode che può sporcare il Batch)
type temp_risultato.txt | findstr /i "{" > temp_Codici.txt
:: 3. Verifica se è stato trovato qualcosa
set /a conteggio=0
for /f "tokens=1*" %%a in (temp_Codici.txt) do (
    set /a conteggio+=1
    set "PROD_CODE=%%a"
    set "PROD_NAME=%%b"
    echo Trovato: !PROD_NAME!
    echo Codice : !PROD_CODE!
    echo ------------------------------------------------------------
)
if %conteggio%==0 (
    echo [!] Nessun software trovato con il nome "%SOFTWARE_NAME%" su %TARGET_PC%.
    echo.
    pause
    goto PULIZIA
)
:: 4. Richiesta di conferma rimozione
echo.
choice /M "Vuoi procedere alla rimozione guidata di questo software?"
if errorlevel 2 goto ANNULLATO
if errorlevel 1 goto DISINSTALLA

:DISINSTALLA
echo.
echo [!] Chiusura forzata dei processi Adobe in background...
psexec \\%TARGET_PC% taskkill /f /im acrobat.exe /im acrotray.exe /im AdobeARM.exe 2>nul
echo.
echo [!] Avvio disinstallazione silenziosa su \\%TARGET_PC%...
echo In esecuzione, attendi che il prompt si sblocchi...
echo.
:: Esegue la disinstallazione
psexec \\%TARGET_PC% msiexec /x %PROD_CODE% /qn /norestart
echo.
echo [!] Aggiornamento del database di Windows Installer...
:: Questo comando forza Windows a terminare i servizi msiexec pendenti sul PC remoto
psexec \\%TARGET_PC% net stop msiserver 2>nul
psexec \\%TARGET_PC% net start msiserver 2>nul
echo.
echo [OK] Operazione completata con successo!
pause
goto PULIZIA

:ANNULLATO
echo.
echo [X] Operazione annullata dall'utente.
pause
goto PULIZIA

:PULIZIA
:: Rimuove i file temporanei creati per la lettura dei codici
if exist temp_risultato.txt del temp_risultato.txt
if exist temp_Codici.txt del temp_Codici.txt
cls
choice /M "Vuoi analizzare un altro PC?"
if errorlevel 2 exit
if errorlevel 1 goto INIZIO
EOF

La schermata principale


Nessun commento:

Posta un commento