Errore con WMI

di il
1 risposte

Errore con WMI

Buongiorno. Ho un'applicazione VB.Net che implementa un blando sistema di autodifesa dalla copia non autorizzata, mediante un controllo sul numero di serie dell'HD. Questo il succo del codice:

    Private Function GetDiskId() As String
        Try
            Dim moSrc As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Index=0")
            Dim moCol As ManagementObjectCollection = moSrc.Get()
            Dim mo As ManagementObject = moCol(0)
            Dim sn As String = mo.GetPropertyValue("SerialNumber")
            Return sn

        Catch ex As Exception
            MessageBox.Show("*LD* " & ex.ToString)
            Return ""
        End Try
    End Function
Su molti PC fa il suo dovere, nel senso che restituisce una stringa univoca. Su una sola maledetta macchina solleva l'errore di cui allego una foto. Su CodeProject e StackOverflow ho trovato dei post sull'argomento, ma non una spiegazione chiara con relativa soluzione.
Qualcuno mi può dare una mano? Grazie.

P.S.:
Ho provato anche le seguenti varianti, con lo stesso esito:

                   Dim moSrc As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")    'senza indice
                   Dim moSrc As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")

Allegati:
15790_f1391dd6e9068f381fb671107d3ff570.jpg
15790_f1391dd6e9068f381fb671107d3ff570.jpg

1 Risposte

  • Re: Errore con WMI

    Mi sembra di ricordare che già qualche anno fa si parlava dell'impossibilità di leggere il numero di serie dell'HD per problemi di antivirus, programmi di antitracciamento o cose del genere (anche certe vesioni di windows).
    Anche io mi basavo sul numero di serie dell'HD, ma a seguito di questi problemi ho preferito basarmi sull'indirizzo MAC della scheda di rete.
Devi accedere o registrarti per scrivere nel forum
1 risposte