Dominio

mercoledì 29 gennaio 2014 - 11.11
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Visual Studio 2010

Mau67 Profilo | Expert

Un saluto al forum,
ho scritto un piccolo programmino per l'azienda da mettere su tutti i pc praticamente è una sorta di BGINFo, sono riuscito a estrapolarmi tutte le informazioni che mi servono del pc (IP, User name, Host name, Versione sistema operativo e Servicepack)
manca il nome del dominio
COme si fa a ricavare il nome del dominio?

grazie in anticipo
Mau67

0v3rCl0ck Profilo | Guru

ciao mau, prova con questi:

System.Environment.UserDomainName

oppure

System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;

il secondo restituisce un informazione più completa.


ciao,
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic

Mau67 Profilo | Expert

System.Environment.UserDomainName <<<<< Questo restituisce il nome macchina e non il nome dominio

System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName <<<< questo non restituisce niente

io vorrei visualizzare "DOMAIN NAME: DOMCASA"


Mau67

Davide1986 Profilo | Junior Member

Vedi se ti può essere d'aiuto questo post : http://social.msdn.microsoft.com/Forums/en-US/4328bbaf-5e98-4277-914b-af127b9bf931/wmi-query-to-get-ip-addressdomain-nameosversion

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Fammi sapere..
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.alpacasrl.it

Mau67 Profilo | Expert

Grazie per la risposta

ho trasformato il codice da c# a vb mi da degli errori (ManagementClass, ManagementObjectCollection,domainName,ManagementObject)
credo siano dovuti agi Imports che non so quali istanziare
ecco il codice

Private ReadOnly Property DomainName 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 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 wmi As ManagementClass = New ManagementClass("Win32_OperatingSystem") Dim allConfigs As ManagementObjectCollection = wmi.GetInstances Dim domainName As String = String.Empty For Each configuration As ManagementObject In allConfigs domainName = (configuration("Version") 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
Mau67

Davide1986 Profilo | Junior Member

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 :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.alpacasrl.it
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5