17 ago 2025

Rifugio Baion 2025 ...

Anche quest`anno è stato rigenerante. La nuova "guida" sta decisamente rodando e, anche se in modo diverso, porta avanti con dovizia e orgoglio il rifugio.

Abbiamo affrontato il Sentiero del Pastore (dedicato a Celio e inaugurato nel 2020), un percorso ad anello impegnativo che regala emozioni e soddisfazioni.

Forcella Paradiso [mt. 2005]

Tac Gran [mt. 2420]
Tac Gran [mt. 2420]


Tac Gran
Tac Gran [mt. 2420]

Tac Gran - Vista Vallata con Rif. Baion




30 lug 2025

M630e no boot ..._

C’è un bug piuttosto insidioso che può manifestarsi in seguito all’aggiornamento a Windows 11 su modelli Lenovo M630e.
Dopo l’aggiornamento, il sistema operativo scarica automaticamente (tramite Windows Update) diversi aggiornamenti, tra cui l'ultimo firmware che, però, fallisce durante l’installazione, rendendo il PC inutilizzabile (la causa in principio è sconosciuta, ci si ritrova con il PC non avviabile al riavvio successivo).

Il sistema non riese ad avviarsi ed emette dei segnali acustici (3 beep brevi e 1 lungo), che normalmente indicano un problema alla memoria RAM.
Dopo aver escluso la RAM dalle variabili, si potrebbe essere tentati di considerare il dispositivo irrecuperabile immaginandosi un guasto hardware.
Qualcosa però non quadrava: un PC non smette di funzionare all’improvviso senza una causa plausibile. I sintomi facevano pensare piuttosto a un aggiornamento BIOS/firmware non andato a buon fine.

Cercando informazioni online, mi sono imbattuto in questa discussione sul forum Lenovo dove altri utenti avevano avuto lo stesso problema e condividevano informazioni: “Cannot boot after Windows 11 update – Lenovo Community”

Seguendo la guida dell’utente The_Cleaner, ho recuperato quanto necessario per tentare una riscrittura "diretta" del firmware W25Q128JV:

L’interfacciamento iniziale non è stato semplice a causa della pinza economica, ma insistendo il software è riuscito a riconoscere il chip di memoria e a scriverci il BIN.

Una volta che il programmatore riconosce il chip, si può procedere con le operazioni consigliate:

  1. Salvataggio dell’immagine firmware attuale (per sicurezza)

  2. Doppia cancellazione del chip

  3. Doppia scrittura del firmware IMAGEM28.bin
    (ripetere le operazioni due volte aiuta a evitare problemi dovuti al contatto precario tra la pinza e i terminali del chip. In assenza di error checking robusto, si compensa con la ridondanza)

Se la procedura va a buon fine, ricollegando tutti i componenti, il PC effettuerà il boot dell'OS senza problemi.
Segnalerà però degli errori a causa del ripristino del firmware. Il seriale, il modello e l'UUID saranno azzerati e sarà necessario ripristinarli con l'utility Lenovo Uone Tool.

Quest'ultima parte non è stata conclusa in maniera impeccabile (UUID è stato rigenerato, non si riusciva a impostarlo), ma comunque la macchina è tornata in produzione.

Ringrazio Matteo P. che si è dedicato con me alla "risurrezione" di questo M630e.

16 giu 2025

Connessione vecchio SQL e Windows 11 24H2 (errore 10054)...

Non vi capita, ma se vi capita di dovervi connettere a un DB di MSSQL 2005 da un client Windows 11, sappiate che potreste avere qualche difficoltà.
Parliamo di sistemi che non dovrebbero più essere in produzione (MSSQL 2005 ha terminato il supporto standard nel 2011), ma non per questo bisogna escluderne la possibilità.

Il problema principale lo si riscontra a causa di alcuni protocolli di cifratura dismessi con la release 24H2 di Windows 11, nello specifico i seguenti:

  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_WITH_RC4_128_SHA
  • LS_RSA_WITH_RC4_128_MD5
SQL Management Studio, durante la connessione dovrebbe restituire un errore in cui indica che la connessione è stata forzatamente chiusa da remoto (errore 10054).

Per riabilitare i cifrari, possiamo preparare uno script interattivo per PowerShell (grazie AI):
------------------------------------------------------------
<#
.SYNOPSIS
    Script interattivo per abilitare o disabilitare i cifrari legacy (RC4, 3DES)
    necessari per la compatibilità con SQL Server 2005 su sistemi Windows recenti.
#>

function Backup-Registry {
    param([string]$Mode)

    $timestamp = Get-Date -Format 'yyyyMMdd_HHmmss'
    $path = "$env:SystemDrive\cipher_backup_${Mode}_$timestamp.reg"
    reg export "HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" $path | Out-Null
    Write-Host "📁 Backup del registro salvato in: $path" -ForegroundColor Cyan
}

function Enable-LegacyCiphers {
    $regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002"
    $legacySuites = @(
        "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
        "TLS_RSA_WITH_RC4_128_SHA",
        "TLS_RSA_WITH_RC4_128_MD5"
    )

    Backup-Registry -Mode "enable"

    $currentCiphers = (Get-ItemProperty -Path $regPath).Functions
    $missing = $legacySuites | Where-Object { $_ -notin $currentCiphers }

    if ($missing.Count -gt 0) {
        Write-Host "➕ Aggiunta cipher suite legacy: $($missing -join ', ')" -ForegroundColor Yellow
        $newList = $currentCiphers + $missing
        Set-ItemProperty -Path $regPath -Name "Functions" -Value $newList
        Write-Host "✅ Cifrari legacy abilitati." -ForegroundColor Green
    } else {
        Write-Host "✅ Tutti i cifrari legacy sono già presenti." -ForegroundColor Green
    }
}

function Disable-LegacyCiphers {
    $regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002"
    $legacySuites = @(
        "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
        "TLS_RSA_WITH_RC4_128_SHA",
        "TLS_RSA_WITH_RC4_128_MD5"
    )

    Backup-Registry -Mode "disable"

    $currentCiphers = (Get-ItemProperty -Path $regPath).Functions
    $filtered = $currentCiphers | Where-Object { $_ -notin $legacySuites }

    if ($filtered.Count -lt $currentCiphers.Count) {
        Write-Host "❌ Rimozione cipher suite legacy: $($legacySuites -join ', ')" -ForegroundColor Red
        Set-ItemProperty -Path $regPath -Name "Functions" -Value $filtered
        Write-Host "✅ Cifrari legacy disabilitati." -ForegroundColor Green
    } else {
        Write-Host "✅ Nessun cifrario legacy da rimuovere." -ForegroundColor Green
    }
}

function Show-Menu {
    Clear-Host
    Write-Host "╔═══════════════════════════════════════════╗"
    Write-Host "║     SQL Server 2005 Legacy Cipher Tool    ║"
    Write-Host "╚═══════════════════════════════════════════╝"
    Write-Host ""
    Write-Host "1. ✅ Abilita cifrari legacy (RC4, 3DES)"
    Write-Host "2. ❌ Disabilita cifrari legacy"
    Write-Host "3. 🚪 Esci"
    Write-Host ""
}

do {
    Show-Menu
    $choice = Read-Host "Seleziona un'opzione [1-3]"

    switch ($choice) {
        '1' { Enable-LegacyCiphers }
        '2' { Disable-LegacyCiphers }
        '3' { Write-Host "Uscita..." -ForegroundColor Cyan }
        default {
            Write-Host "❗ Scelta non valida. Riprova." -ForegroundColor Red
        }
    }

    if ($choice -ne '3') {
        Write-Host ""
        Pause
    }

} while ($choice -ne '3')
--------------------------------------------------------------

31 gen 2025

Comprimere sottocartelle ricorsivamente...

Se hai bisogno di comprimere automaticamente tutte le sottocartelle di una directory in file ZIP con lo stesso nome della cartella originale, ecco una soluzione semplice con PowerShell.

Requisiti

  • 7-Zip installato sul PC
  • Terminale aperto nella cartella che contiene le sottocartelle da comprimere

Get-ChildItem -Directory | ForEach-Object { & "C:\Program Files\7-Zip\7z.exe" a "$($_.Name).zip" "$($_.FullName)\" }