Al momento sei offline in attesa che la connessione Internet venga ristabilita

HOW TO: Aggiungere un utente al sistema locale utilizzando servizi di elenchi in linea e Visual C# .NET

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I306273
Per la versione di questo articolo relativa a Microsoft Visual Basic .NET vedere (gli articoli con prefisso "Q" contengono informazioni in inglese): 306271.

CONTENUTO DELL'ATTIVITÀ

Sommario
In questo articolo viene descritto come utilizzare lo spazio dei nomiDirectoryServicesper aggiungere un utente al sistema locale e a un gruppo.

Torna all'inizio

Requisiti

  • Microsoft Windows XP, Windows 2000 o Windows NT 4.0
  • Visual C# .NET
Torna all'inizio

Creazione del codice di esempio

  1. Avviare Microsoft Visual Studio .NET e creare un nuovo progetto applicazione console di Visual C#.
  2. In Esplora soluzioni fare clic con il pulsante destro del mouse suRiferimenti, quindi scegliereAggiungi riferimento.
  3. Aggiungere un riferimento all'assemblySystem.DirectoryServices.dll.
  4. Sostituire il codice presente in Class1 con quello riportato di seguito:
    using System;using System.DirectoryServices;class Class1{    static void Main(string[] args)    {    try        {	 DirectoryEntry AD = new DirectoryEntry("WinNT://" + 	                     Environment.MachineName + ",computer");	 DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");	 NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});	 NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});	 NewUser.CommitChanges();	 DirectoryEntry grp;	 grp = AD.Children.Find("Guests", "group");	 if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}	 Console.WriteLine("Account Created Successfully");	 Console.ReadLine();	}    catch (Exception ex)	{	 Console.WriteLine(ex.Message);	 Console.ReadLine();	}    }}
  5. Compilare ed eseguire il progetto.
  6. Eseguire la procedura descritta di seguito in un computer su cui è in esecuzione Windows 2000 per verificare che l'account sia stato creato e aggiunto al gruppo Guest:

    1. Fare clic sul pulsanteStart, scegliereImpostazioni, Pannello di controllo, Strumenti di amministrazionee infineGestione computer.
    2. Fare clic per espandere il nodoUtenti e gruppi locali. Il nuovo account dovrebbe essere visualizzato nel nodoUserse nel nodo del gruppoGuest.
    Eseguire la procedura descritta di seguito in un computer basato su Windows XP per verificare che l'account sia stato creato e aggiunto al gruppo Guest:
    1. Fare clic sul pulsanteStart, sceglierePannello di controllo.
    2. Fare doppio clic suAccount utente. Il nuovo account dovrebbe essere visualizzato nella finestra di dialogoAccount utente.
  7. È importante rimuovere l'account utente appena creato dal sistema una volta terminata la fase di verifica.
Torna all'inizio

Spiegazione del codice

Creazione di una nuova voce di directory

Quando si crea la voce di directory in questo codice di esempio, si presuppone che sul sistema sia in esecuzione Microsoft Windows NT, Windows 2000 o Windows XP. È importante notare che la stringa che viene passata al costruttoreDirectoryEntryinizia con "WinNT://". È anche possibile eseguire i servizi di elenchi in linea su un sistema operativo di terze parti.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");

Aggiunta della voce di directory alla struttura delle directory

Il codice riportato di seguito aggiunge unaDirectoryEntrydi tipousercon valoreTestUser1alla strutturaActive Directory.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");

Impostazione della password e della descrizione per il nuovo account utente

Il codice riportato di seguito chiama il metodoInvokeper invocare i metodiSetPasswordePutdell'oggettoDirectoryEntry. Questo consente di impostare la password e assegnare una descrizione all'account utente. Questo codice consente anche di chiamare il metodoCommitChangesper salvare le modifiche.
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});NewUser.CommitChanges();

Aggiunta dell'account a un gruppo

La prima operazione da eseguire per aggiungere l'account a un gruppo consiste nel definire una variabile di tipoDirectoryEntry. Chiamare quindi il metodoFinddel membroChildrendella classeActiveDirectoryper popolare la variabile. In questo caso il gruppo Guest è l'obiettivo della ricerca. Questo codice verifica il valore restituito dal metodoFindper determinare se il gruppo è stato trovato. Se il gruppo viene trovato, il nuovo account utente viene aggiunto al gruppo.
DirectoryEntry grp;grp = AD.Children.Find("Guests", "group");if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
Torna all'inizio

Risoluzione dei problemi

Il codice riportato in questo articolo ha esito negativo se eseguito senza i privilegi sufficienti per creare un account utente. Affinché il codice venga completato correttamente, l'utente correntemente connesso deve essere un membro del gruppo Administrators oppure deve disporre di autorizzazioni speciali che gli consentano di creare account utente.

Torna all'inizio
Proprietà

ID articolo: 306273 - Ultima revisione: 04/08/2003 22:58:00 - Revisione: 1.0

Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowto kbhowtomaster KB306273
Feedback