Ciao Matteo Gallo,
Capisco la tua frustrazione, soprattutto con una scadenza aziendale così imminente. La buona notizia è che nessuno dei due strumenti ti sta "mentendo": entrambi stanno interrogando esattamente lo stesso Local Configuration Manager (LCM). Il problema risiede unicamente nel modo in cui i dati del file MOF vengono formattati e trasmessi quando si utilizza il metodo CIM.
Quando utilizzi il cmdlet nativo Test-DscConfiguration, PowerShell gestisce automaticamente in background tutta la complessa lettura e codifica del file MOF. Al contrario, Invoke-CimMethod è una chiamata WMI grezza che richiede rigorosamente che il payload venga passato come un array di byte puro ([uint8[]]). Se stai leggendo il tuo file MOF utilizzando comandi standard come Get-Content (che legge i dati come stringhe di testo) e poi forzi la conversione in byte, stai inavvertitamente alterando la codifica originale e il Byte Order Mark (BOM). Di conseguenza, l'LCM riceve un formato illeggibile, fallisce silenziosamente l'analisi in background e restituisce il valore predefinito "Falso" o un risultato vuoto.
Per risolvere immediatamente questo problema e allineare i risultati, devi bypassare l'elaborazione del testo di PowerShell e leggere il file MOF preservando la sua struttura binaria originale. Sostituisci il metodo di lettura nel tuo script con la classe .NET nativa in questo modo:
$mofBytes = [System.IO.File]::ReadAllBytes("C:\percorso\del\tuo\file.mof")
Passando questa variabile $mofBytes al parametro configurationData del tuo comando Invoke-CimMethod, l'LCM analizzerà correttamente il file e ti restituirà lo stesso risultato positivo del cmdlet. Tuttavia, come best practice per implementazioni rapide e stabili, ti consiglio di affidarti semplicemente a Test-DscConfiguration: è stato progettato da Microsoft esattamente per astrarre e prevenire questi errori di basso livello.
Spero che questa spiegazione tecnica ti aiuti a risolvere l'incoerenza e a completare il tuo progetto di sicurezza in tempo per venerdì! Se la soluzione ti ha aiutato a sbloccare la situazione, ti prego di fare clic su "Accetta risposta" (Accept Answer). Se hai ulteriori dubbi sul codice, lascia pure un commento.
Tracy.