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!
color 17
setlocal enabledelayedexpansion
title Tool di Rimozione Remota con PsExec
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
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
echo.
echo [X] Operazione annullata dall'utente.
pause
goto 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