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!
Aggiornamenti informatici e piccoli trucchetti nella vita quotidiana di un lavoratore statale addetto alla gestione di server e reti. Quando un pensiero mi passa per la mente lo scrivo...
ADS
giovedì 28 maggio 2026
Rimuovere Software da Client DC
lunedì 18 maggio 2026
Quando la sicurezza di rete "brikka" la stampante: il caso HP M110we, reti ministeriali e il ricatto dell'Always-On
Analisi Tecnica del Problema
Prima di passare all'articolo, smarchiamo i punti chiave a livello tecnico:
La Topologia di Rete: L'infrastruttura descritta prevede un doppio salto (Double NAT potenziale). La "saponetta" ministeriale fornisce internet al PC tramite Tethering USB; il PC Windows 11 funge a sua volta da router tramite la funzione Hotspot Wi-Fi per la stampante.
Il Blocco di Rete: Le reti fornite da enti governativi (come il Ministero della Salute per i MMG) sono soggette a rigide policy di sicurezza per la protezione dei dati sensibili (GDPR/Dati sanitari). Utilizzano firewall di livello 7 e filtri DNS molto aggressivi. Il blocco del sito di OAuth di HP non è un bug, ma una feature di sicurezza della rete ministeriale che mette in blackhole o filtra traffico API/telemetrico non esplicitamente in whitelist.
Il Vincolo Architetturale di HP+: Le stampanti HP con il suffisso "e" (es. M110we) richiedono un check-in costante con i server
api.hp.comohpsmart.comper convalidare l'abbonamento Instant Ink e lo stato DRM delle cartucce. Senza la risoluzione di questo handshake OAuth, il firmware disabilita la coda di stampa locale. La periferica cessa di essere un dispositivo hardware indipendente e diventa un client dipendente da un servizio cloud.
Oggi vi racconto di un vero e proprio delirio informatico che mi ha tenuto occupato recentemente e che solleva questioni tecniche (ed etiche) molto interessanti sul modo in cui stiamo progettando l'hardware "smart".
L'intervento riguardava l'assistenza a un Medico di Medicina Generale (MMG) con un'esigenza di mobilità. Il setup sembrava lineare, ma si è trasformato in un incubo di troubleshooting.
La Topologia del Disastro
Il setup operativo del medico era il seguente:
Una connessione internet mobile fornita tramite "saponetta" istituzionale del Ministero della Salute.
Il router mobile connesso al PC Windows 11 in Tethering USB.
Una stampante HP M110we connessa al PC tramite l'Hotspot Wi-Fi nativo di Windows.
Il sintomo? La stampante ha improvvisamente smesso di comunicare con i server HP e, di conseguenza, si è rifiutata categoricamente di stampare anche un solo foglio di testo in locale.
Il Troubleshooting e la Scoperta
Dopo i classici test di raggiungibilità locale, ho avviato un'epopea con l'assistenza HP (routata in India). Dopo vari tentativi di re-inizializzazione, l'intuizione: e se il problema non fosse il doppio NAT causato dal bridge tra tethering e hotspot, ma la rete stessa?
Ho disconnesso il PC dalla rete ministeriale e l'ho collegato a una connessione cellulare standard. Magia: il server HP è tornato immediatamente raggiungibile e la stampante si è sbloccata.
La diagnosi: Le reti del Ministero della Salute, giustamente blindate per proteggere i dati sanitari dei pazienti, applicano policy di web filtering (probabilmente tramite DNS sinkhole o proxy trasparenti) che finiscono per bloccare i domini di autenticazione (OAuth) e la telemetria di HP.
HP Instant Ink: Convenienza vs. Controllo
Per capire questo blocco, dobbiamo analizzare l'ecosistema in cui opera la M110we. Quella piccola "e" nel nome del modello indica l'appartenenza alla famiglia HP+, un ecosistema indissolubilmente legato al servizio Instant Ink.
I Pro (La Convenienza): Instant Ink è un modello Print-as-a-Service. Non paghi la cartuccia, ma un piano di pagine mensili. La stampante monitora i livelli e ordina automaticamente l'inchiostro prima che finisca. Per chi stampa volumi costanti e non vuole il pensiero dei consumabili, è economicamente e logisticamente sensato.
I Contro (Il Vincolo): Le cartucce fornite sono dotate di un DRM rigoroso. Se annulli l'abbonamento, la cartuccia si disattiva anche se ancora mezza piena.
L'assurdità dell'Always-On per l'Hardware Locale
Ed eccoci al nocciolo del problema tecnico. Che un servizio cloud richieda internet è lapalissiano. Che una stampante fisica, posta a mezzo metro da un PC, debba trasformarsi in un fermacarte in plastica se non riesce a fare "ping" a un server in California, è un difetto di progettazione grave.
Per proteggere il proprio modello di business (evitare che un utente usi cartucce Instant Ink staccando la stampante da internet), HP ha introdotto un Single Point of Failure devastante. Nel nostro caso, una rete aziendale/istituzionale con policy stringenti ha interpretato le continue chiamate API della stampante come traffico non essenziale o potenzialmente malevolo, bloccando l'endpoint di OAuth.
Il risultato? L'impossibilità di svolgere l'operazione base per cui l'hardware è stato acquistato: trasferire inchiostro dal PC alla carta tramite protocollo di rete locale.
Conclusioni
Cosa ci insegna questa storia?
Evitate l'hardware "Cloud-Bound" in ambienti di produzione critici. Se state configurando dispositivi in uffici pubblici, scuole, reti mediche o bancarie, evitate come la peste le stampanti "Always-On" (come la serie HP+). Le restrizioni dei firewall di livello aziendale o ministeriale finiranno inevitabilmente per bloccarne l'uso.
Il confine tra periferica e servizio è scomparso. Quando acquistate una stampante oggi, leggete bene le specifiche. Se c'è scritto "richiede connessione internet attiva", sappiate che non siete più proprietari dell'hardware, ma semplici usufruttuari di un servizio in abbonamento.
Avete mai avuto problemi simili con le reti aziendali o firewall che bloccano l'hardware di casa? Fatemelo sapere nei commenti.
venerdì 3 ottobre 2025
Rimuovere le GPO da un PC Locale
Ecco un semplice file BAT, da eseguire con account locale e in modalità amministratore, per rimuovere eventuali GPO da un client rimasto fuori dominio e quindi non aggiornabile con gpupdate /force.
@echo off
title Reset GPO Locale
echo =====================================================
echo Script per rimuovere le GPO locali da questo PC
echo ATTENZIONE: eseguilo come Amministratore!
echo =====================================================
echo.
:: Crea cartella di backup
set BACKUP=C:\GPO-backup
if not exist %BACKUP% mkdir %BACKUP%
echo [1/6] Backup delle cartelle GroupPolicy...
robocopy /mir %SystemRoot%\System32\GroupPolicy %BACKUP%\GroupPolicy >nul
robocopy /mir %SystemRoot%\System32\GroupPolicyUsers %BACKUP%\GroupPolicyUsers >nul
echo [2/6] Rimozione cartella GroupPolicy...
takeown /f %SystemRoot%\System32\GroupPolicy /r /d y >nul
icacls %SystemRoot%\System32\GroupPolicy /grant Administrators:F /t >nul
rd /s /q %SystemRoot%\System32\GroupPolicy
echo [3/6] Rimozione cartella GroupPolicyUsers...
takeown /f %SystemRoot%\System32\GroupPolicyUsers /r /d y >nul
icacls %SystemRoot%\System32\GroupPolicyUsers /grant Administrators:F /t >nul
rd /s /q %SystemRoot%\System32\GroupPolicyUsers
echo [4/6] Backup e cancellazione chiavi registro Policies...
reg export "HKLM\SOFTWARE\Policies" %BACKUP%\HKLM_SOFTWARE_Policies.reg >nul 2>&1
reg delete "HKLM\SOFTWARE\Policies" /f >nul 2>&1
reg export "HKCU\Software\Policies" %BACKUP%\HKCU_Software_Policies.reg >nul 2>&1
reg delete "HKCU\Software\Policies" /f >nul 2>&1
echo [5/6] Ripristino configurazione di sicurezza di default...
secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose >nul
echo [6/6] Aggiornamento criteri e riavvio...
gpupdate /force >nul
shutdown /r /t 30
echo.
echo Operazione completata!
echo Il sistema verra' riavviato tra 30 secondi...
pause
Come usarlo:
Copia il codice in un file chiamato ad esempio ResetGPO.bat.
Tasto destro → Esegui come amministratore.
Lo script creerà C:\GPO-backup con copia dei file/chiavi prima di eliminarli.
Dopo 30 secondi il PC si riavvierà pulito da tutte le policy applicate localmente.
mercoledì 3 settembre 2025
I Servizi Occulti di Windows
I Servizi Occulti di Windows
Chi lavora con Windows, che sia Home, Pro o Server, si sarà imbattuto almeno una volta
nella gestione dei servizi. Lì dentro troviamo centinaia di voci, ed è facile perdersi
quando cerchiamo un servizio specifico: magari qualcosa che contiene “stampa”,
oppure “utente” o “sql”.
Il problema? Non c’è una ricerca integrata comoda. Bisogna scorrere a mano riga dopo riga. Così ho pensato a uno script PowerShell che chiede una parola da cercare e mostra solo i servizi pertinenti, con la possibilità di avviarli, fermarli o riavviarli.
Lo Script PowerShell
# Script PowerShell - Ricerca e gestione servizi
$keyword = Read-Host "Inserisci la parola da cercare (es. stampa, utente, sql)"
$results = Get-Service | Where-Object {
$_.DisplayName -like "*$keyword*" -or $_.Name -like "*$keyword*"
}
if ($results) {
$results | Format-Table -AutoSize Status, Name, DisplayName
$serviceName = Read-Host "Inserisci il nome del servizio da gestire"
$action = Read-Host "Vuoi Avviare (A), Fermare (F), Riavviare (R)?"
switch ($action.ToUpper()) {
"A" { Start-Service -Name $serviceName; Write-Host "Servizio avviato!" }
"F" { Stop-Service -Name $serviceName; Write-Host "Servizio fermato!" }
"R" { Restart-Service -Name $serviceName; Write-Host "Servizio riavviato!" }
default { Write-Host "Azione non valida." }
}
}
else {
Write-Host "Nessun servizio trovato contenente '$keyword'"
}
Il Lanciatore da CMD
@echo off
PowerShell -ExecutionPolicy Bypass -File "C:\Scripts\servizi.ps1"
pause
In questo modo basta fare doppio clic sul .bat e il gioco è fatto:
si apre lo script PowerShell che ti permette di esplorare i “servizi occulti” di Windows
in maniera semplice e rapida.
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
mercoledì 5 aprile 2023
Maledetto 0x0000011b
Questo errore ha iniziato ad assillarmi su alcuni PC della mia rete Windows Server 2012 R2... Dopo vari tentativi ho capito, finalmente, che la modifica al registro lo devo fare sul server e riavviare il servizio di spooling...
KEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \
Aggiungere la chiave DWORD32
RpcAuthnLevelPrivacyEnabled e lasciare a 0
L'altra soluzione molto più complessa ma magari adatta a piccole situazioni casalinghe è collegarsi alla stampante con il suo IP e non tramite la condivisione \\server\printer
Esiste anche la possibilità di installare la stampante sulla localPort \\server\print ma poi si devono recuperare manualmente i driver per avere la corretta installazione, quindi sconsigliato.
Buon lavoro
lunedì 28 novembre 2022
Un Backup semplice da CMD
Mi dimentico sempre di quanto sia funzionale ed elegante il comando ROBOCOPY!
Avevo necessità di copiare dei file da un NAS ad un altro disco esterno visto da un secondo NAS come unità USB... Ho provato i vari backup inclusi in Synology e QNAP ma con pessimi risultati.
Alla fine ho montato due dischi con le rispettive cartelle e ho dato un comando in un file che viene eseguito ogni notte:
@ECHO Copia mirroring Backup Didattica
NET USE T: \\192.168.xx.242\Backup_Didattica
NET USE P: \\192.168.yy.2\Backup_Didattica
RoboCopy t:\ p:\ /MIR /FFT /Purge /LOG+:c:\Backup\Didattica.txt /TEE
NET USE T: /DELETE
NET USE P: /DELETE