Pagina 1 di 1

Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: dom mar 22, 2026 7:19 pm
da crazy.cat
Lo script powershell per estrarre informazioni dal computer

Immagine

Da tempo volevo trovare il modo di fare uno script PowerShell, in grado di estrarre informazioni dal computer che mi dessero un quadro generale dello stato e dei problemi di quel sistema operativo. Dopo averne trovato uno in un sito Italiano, ma generato da una AI in lingua inglese, e che quindi dava molti errori perché il linguaggio del sistema operativo era diverso, ho iniziato a lavorare al mio. [continua..]

---

Cosa ne pensi? Lascia il tuo commento qui sotto.

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 1:09 am
da pegaso
Eseguendo i due file in entrambi i casi compare per una frazione di secondo la finestra di PawerShell e poi si chiude immediatamente e nel secondo file non mi chiede nulla riguardo al salvataggio.
Cosa potrebbe essere il problema?

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 3:19 am
da crazy.cat
pegaso ha scritto: lun mar 23, 2026 1:09 am Cosa potrebbe essere il problema?
Leggi la parte:
"se la schermata di PowerShell si chiude velocemente o ottenete degli errori ne dovrete autorizzare l'esecuzione"
https://turbolab.it/windows-10/come-att ... licies-966

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 7:28 am
da pegaso
Questo articolo me lo ero perso :acch
:grazie

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 11:31 am
da CUB3
Eseguendo lo script su una macchina virtuale con Windows 11 Home "curato" con Winhance, ottengo un errore:
Immagine

Inoltre, non so se relativo all'errore precedente o alla cura di Winhance, la versione di Windows rilevata è diversa da quella reale:
Immagine

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 11:43 am
da crazy.cat
CUB3 ha scritto: lun mar 23, 2026 11:31 am Inoltre, non so se relativo all'errore precedente o alla cura di Winhance, la versione di Windows rilevata è diversa da quella reale:
Ho anche io lo stesso problema, volevo aprire una discussione nel forum microsoft per capire perché anche se ci metto windows 11 in quella chiave di registro poi quando riapro il pc ritorna windows 10.
Per l'altro errore non hai programmi installati e non ti ha creato la chiave di registro? (tiro a indovinare)

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 11:55 am
da CUB3
Programmi installati ne ho pochi:
- Firefox
- FileZilla
- LibreOffice
- LocalSend
- NetBird
- SoftDetective
- TightVNC
I riferimenti all'uninstall di questi programmi sono però in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 11:57 am
da crazy.cat
CUB3 ha scritto: lun mar 23, 2026 11:55 am I riferimenti all'uninstall di questi programmi sono però in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Appena posso faccio una modifica allo script e poi ti chiederò di riprovare.

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 2:31 pm
da crazy.cat
CUB3 ha scritto: lun mar 23, 2026 11:55 am I riferimenti all'uninstall di questi programmi sono però in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Puoi sostituire il punto 3 dello script con questo?
# 3. PROGRAMMI INSTALLATI
$Output += "<h2>Programmi Installati</h2>"
$UninstallKeys = @("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*","HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*","HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*")
$Output += Get-ItemProperty $UninstallKeys -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -ne $null } |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Sort-Object DisplayName | ConvertTo-Html -Fragment

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 3:04 pm
da Zigul
crazy.cat ha scritto: lun mar 23, 2026 11:43 am anche se ci metto windows 11 in quella chiave di registro poi quando riapro il pc ritorna windows 10.
Pare che alcune parti di Windows 11 siano rimaste "dichiarate" come Windows 10 per motivi di retrocompatibilità, quindi alcuni comandi (come Get-ComputerInfo) possono "mentire" nel risultato, così come lo user agent del browser risulta "Windows NT 10.0" anche se si usa Windows 11.
Senza modificare il registro, questi comandi rilevano, almeno nella mia VM, Windows 11 (Pro):

Codice: Seleziona tutto

(Get-ComputerInfo).OsName oppure Get-ComputerInfo OsName 

Codice: Seleziona tutto

(Get-CimInstance Win32_OperatingSystem).Caption
Per le versioni e i dettagli

Codice: Seleziona tutto

Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' | Select-Object DisplayVersion, CurrentBuildNumber, UBR
Special thanks to Grok, io mi ricordavo solo dello user agent.

I (pochi) programmi installati vengono rilevati correttamente (con il codice originale, senza aver sostituito il punto 3).

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: lun mar 23, 2026 6:45 pm
da crazy.cat
Ho aggiornato gli script per la parte di versione di windows, ora dovrebbe essere più chiara.

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: mar mar 24, 2026 11:31 am
da CUB3
L'ultima versione dello script non genera errori, rileva tutti i programmi installati e la corretta versione di Windows intallata :approvo

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: ven mar 27, 2026 11:37 am
da cippa1974
Ciao ... bellissimo script
l'ho integrato con il punto 15: se puoi essere d'aiuto e modificato il path di salvataggio dato che non sempre d:\ è disponibile
cmq, grazie
ciao

Codice: Seleziona tutto

# 15. STATO ANTIVIRUS
$Output += "<h2>Antivirus - Stato Protezione</h2>"

try {
    # Recupero informazioni tramite Windows Security Center
    $AV = Get-CimInstance -Namespace "root/SecurityCenter2" -ClassName AntivirusProduct -ErrorAction SilentlyContinue

    if ($AV) {
        $AVStatus = $AV | ForEach-Object {
            # Interpretazione dello stato (bitmask)
            $state = switch ($_.productState) {
                {$_ -band 0x10000} { "Aggiornato" }
                default            { "Non Aggiornato" }
            }

            # Stato protezione (ON/OFF)
            $enabled = switch ($_.productState) {
                {($_ -band 0x10)} { "Attivo" }
                default           { "Disattivato" }
            }

            [PSCustomObject]@{
                NomeAV          = $_.displayName
                Stato           = $enabled
                Aggiornamento   = $state
                Percorso        = $_.pathToSignedProductExe
            }
        }

        $Output += $AVStatus | ConvertTo-Html -Fragment
    }
    else {
        $Output += "<p>Nessun antivirus rilevato (o accesso negato).</p>"
    }
}
catch {
    $Output += "<p>Impossibile recuperare informazioni sull'antivirus.</p>"
}

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: ven mar 27, 2026 1:34 pm
da crazy.cat
cippa1974 ha scritto: ven mar 27, 2026 11:37 am Ciao ... bellissimo script
Grazie
Legge qualsiasi tipo di antivirus installato nel pc o solo defender?
Appena posso lo provo su un pc in ufficio.
:grazie :grazie

Qualcosa non funziona nel mio pc, non legge i dati
Windows Defender Disattivato Non Aggiornato windowsdefender://

Re: Commenti a "Lo script powershell per estrarre informazioni dal computer"

Inviato: dom mar 29, 2026 6:23 am
da crazy.cat
Almeno per windows defender una versione più corretta dello script è questa
# 15. STATO ANTIVIRUS CON VERSIONE MOTORE
$Output += "<h2>Antivirus - Stato e Versioni</h2>"

try {
$AVProducts = Get-CimInstance -Namespace "root/SecurityCenter2" -ClassName AntivirusProduct -ErrorAction SilentlyContinue

if ($AVProducts) {
$AVStatusList = foreach ($AV in $AVProducts) {
# Decodifica stato (Bitmask)
$hexState = "0x{0:x}" -f $AV.productState
$enabled = if ($hexState.Substring(3, 2) -match "10|11") { "Attivo" } else { "Disattivato" }
$update = if ($hexState.Substring(5, 2) -eq "00") { "Aggiornato" } else { "Non Aggiornato" }

# Recupero Versione Motore/Prodotto dal File Exe
$engineVersion = "N/D"
if ($AV.pathToSignedProductExe) {
try {
# Espande variabili d'ambiente se presenti nel percorso (es. %ProgramFiles%)
$fullPath = [System.Environment]::ExpandEnvironmentVariables($AV.pathToSignedProductExe)
if (Test-Path $fullPath) {
$fileInfo = Get-ItemProperty -Path $fullPath
$engineVersion = $fileInfo.VersionInfo.ProductVersion
}
} catch { $engineVersion = "Errore Lettura" }
}

# Caso specifico per Windows Defender (più dettagliato)
if ($AV.displayName -eq "Windows Defender") {
$defStatus = Get-MpComputerStatus -ErrorAction SilentlyContinue
if ($defStatus) { $engineVersion = $defStatus.AMEngineVersion }
}

[PSCustomObject]@{
NomeAV = $AV.displayName
Stato = $enabled
Aggiornamento = $update
VersioneMotore = $engineVersion
UltimoCheck = $AV.timestamp
}
}
$Output += $AVStatusList | ConvertTo-Html -Fragment
} else {
$Output += "<p>Nessun antivirus rilevato.</p>"
}
} catch {
$Output += "<p>Errore critico: $($_.Exception.Message)</p>"
}
Non ho modo però di provarla con antivirus di terze parti se può funzionare con tutti. (avast lo ha letto e bene)