Prova ad importare :
Imports System
Imports System.Management
Nel caso ti segnala errori devi aggiungere/importare la libreria e quindi "Aggiungere Riferimenti" ...
Ecco la procedura : Progetto -> Aggiungi Riferimento -> .NET -> System.Management -> OK (per confermare)
Rivisto il codice ma lo puoi sempre migliorare come vuoi :
Imports System
Imports System.Management
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Console.WriteLine(getDomainName().ToString())
Console.WriteLine(OSVersion().ToString())
End Sub
Private ReadOnly Property getDomainName As String
Get
Dim wmi As ManagementClass = New ManagementClass("Win32_NTDomain")
Dim allConfigs As ManagementObjectCollection = wmi.GetInstances
Dim domainName As String = String.Empty
For Each configuration As ManagementObject In allConfigs
If (configuration("Name") IsNot Nothing) Then
Console.WriteLine(configuration.Properties("Name").Value.ToString().Trim())
' domainName = configuration.Path.Server.ToString()
domainName = configuration.Properties("Name").Value.ToString().Trim()
End If
'domainName = (configuration("DomainName") Is Nothing)
'TODO: Warning!!!, inline IF is not supported ?
If (domainName.Length > 0) Then
Exit For
End If
Next
Return domainName
End Get
End Property
Private ReadOnly Property OSVersion() As String
Get
Dim valore As String = String.Empty
' Get the OS information.
' For more information from this query, see:
' http:'msdn.microsoft.com/library/aa394239.aspx
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()
Console.WriteLine(info.Properties("Caption").Value.ToString().Trim())
Console.WriteLine("Version " & _
info.Properties("Version").Value.ToString() & _
" SP " & _
info.Properties("ServicePackMajorVersion").Value.ToString() _
& "." & _
info.Properties("ServicePackMinorVersion").Value.ToString())
valore = _
info.Properties("Caption").Value.ToString().Trim()
valore = valore & " Version " & _
info.Properties("Version").Value.ToString() & _
" SP " & _
info.Properties("ServicePackMajorVersion").Value.ToString() _
& "." & _
info.Properties("ServicePackMinorVersion").Value.ToString()
Next info
Return valore
End Get
End Property
End Class
Recuperare informazioni dalla libreria Win32_NTDomain ho seguito le info del sito :
http://msdn.microsoft.com/en-us/library/aa394224(v=vs.85).aspx
class Win32_NTDomain : CIM_System
{
string Caption;
string ClientSiteName;
string CreationClassName;
string DcSiteName;
string Description;
string DNSForestName;
string DomainControllerAddress;
sint32 DomainControllerAddressType;
string DomainControllerName;
string DomainGUID;
string DomainName;
boolean DSDirectoryServiceFlag;
boolean DSDnsControllerFlag;
boolean DSDnsDomainFlag;
boolean DSDnsForestFlag;
boolean DSGlobalCatalogFlag;
boolean DSKerberosDistributionCenterFlag;
boolean DSPrimaryDomainControllerFlag;
boolean DSTimeServiceFlag;
boolean DSWritableFlag;
datetime InstallDate;
string Name;
string NameFormat;
string PrimaryOwnerContact;
string PrimaryOwnerName;
string Roles;
string Status;
};
Codice VB.NET :
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.alpacasrl.it