Intercettare informazioni sul S.O. di un client di rete

di il
3 risposte

Intercettare informazioni sul S.O. di un client di rete


3Doors.png
3Doors.png

buon giorno a tutti.
con il vostro prezioso aiuto sto continuando ad andare avanti con la mia applicazione in vb.net (visual studio 2019)
allego la videata relativa alle informazioni che ho catturato relative al mio pc.

vorrei adesso fare lo stesso per i client della mia rete (all'interno del mio dominio)
la priorità vorrei però darla alle informazioni sul sistema operativo, che non sempre è aggiornato all'ultimo rilascio.
confrontando i valori dei campi contenuti nella sezione [windows info] vorrei quindi informare l'utente che deve eseguire
un windowsupdate ....

attualmente, per il mio client, utilizzo questo codice:

   'determino il sistema operativo del pc
        Dim osVersion As String = My.Computer.Info.OSFullName
        Dim osBuild As String = System.Environment.OSVersion.ToString()
        If System.Environment.Is64BitOperatingSystem = True Then
            txtSistemaOperativo.Text = osVersion & " 64bit (x64) " & " (" & My.Computer.Info.OSPlatform & ")"
        ElseIf System.Environment.Is64BitOperatingSystem = False Then
            txtSistemaOperativo.Text = osVersion & " 32bit (x32) " & " (" & My.Computer.Info.OSPlatform & ")"
        End If

        'determino il service pack del sistema operativo del pc
        Dim osServicePack As OperatingSystem = Environment.OSVersion
        txtServicePack.Text = osServicePack.ToString    '.ServicePack
        If Len(txtServicePack.Text) = 0 Then                                             'IsNothing(txtServicePack.Text) = 0 Then
            txtServicePack.Text = "Non presente/non rilevata"
        End If

        'determino la lingua
        Dim UILang = My.Computer.Info.InstalledUICulture.ToString
        txtLanguage.Text = UILang

        'determino il service pack del sistema operativo del pc
        'secondo metodo funzionante!!! giugno 2020
        Dim os_query As String = "SELECT * FROM " & "Win32_OperatingSystem"
        Dim os_searcher As New ManagementObjectSearcher(os_query)
        For Each info As ManagementObject In os_searcher.Get()
            'lblversion.Text = info.Properties("Caption").Value.ToString().Trim()
            'lblcaption.Text = "Version " & info.Properties("Version").Value.ToString() & " SP " & info.Properties("ServicePackMajorVersion").Value.ToString() & "." & info.Properties("ServicePackMinorVersion").Value.ToString()
            txtAltreInfo.Text = "Version " & info.Properties("Version").Value.ToString() & " SP " & info.Properties("ServicePackMajorVersion").Value.ToString() & "." & info.Properties("ServicePackMinorVersion").Value.ToString()
        Next info

        txtRelease.Text = My.Computer.Info.OSVersion
il risultato lo si vede nella sezione [windows info] della mia immagine.
ma se volessi dare altrettanto per i client remoti della mia lan?
dove devo intervenire?
in un secondo form ho caricato la lista dei nomi-host della mia rete, da cui ricavo IP e MacAdrress e qui vorrei inserire
le informazioni sul sistema operativo .... poi se il controllo con le mie info è diverso eseguire un messaggio di pop-up con
l'utente per avvisarlo.

mi permetto anche di chiedere una seconda cosa, sempre inerente alle info sul S.O.
se eseguo WinVer ho informazioni diverse rispetto al codice che ho postato sopra.
esiste una spiegazione oppure le devo cercare in altre variabili d'ambiente?
sapete anche aiutarmi su questo?
grazie ovviamente per il vs tempo che dedicate alla mia richiesta
andrea

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte