Condividi tramite


Creazione di un utente

Per creare un utente in Dominio di Active Directory Services, creare un oggetto utente nel contenitore di dominio del dominio in cui si vuole posizionare l'utente. Gli utenti possono essere creati nella radice del dominio, all'interno di un'unità organizzativa o all'interno di un contenitore.

Quando si crea un oggetto utente, è necessario impostare anche gli attributi, elencati nella tabella seguente, per impostare l'oggetto come utente legale riconosciuto da Dominio di Active Directory Services e dal sistema Sicurezza di Windows.

Attributo Descrizione
Cn Specifica il nome dell'oggetto utente nella directory. Si tratta del nome distinto relativo dell'oggetto (RDN).
sAMAccountName Specifica una stringa che corrisponde al nome usato per supportare client e server da una versione precedente di Windows. SAMAccountName deve contenere meno di 20 caratteri per supportare i client di una versione precedente di Windows.
SAMAccountName deve essere univoco tra tutti gli oggetti entità di sicurezza all'interno del dominio. È necessario eseguire una query sul dominio per verificare che sAMAccountName sia univoco all'interno del dominio.
sAMAccountName è un attributo facoltativo. Il server creerà un valore sAMAccountName casuale se non è specificato alcun valore.

È anche possibile impostare altri attributi. Gli attributi utente seguenti vengono impostati con valori predefiniti se non vengono impostati in modo esplicito in fase di creazione.

Attributo Descrizione
accountExpires Specifica quando l'account scadrà. Il valore predefinito è TIMEQ_FOREVER, che indica che l'account non scadrà mai.
Ntsecuritydescriptor Viene creato un descrittore di sicurezza basato su regole specifiche. Per altre informazioni, vedere How Security Descriptors are Set on New Directory Objects.For more information, see How Security Descriptors are Set on New Directory Objects.
objectCategory Specifica la categoria utente. Il valore predefinito è "Person".
name Specifica il nome utente. Il valore predefinito è il valore impostato per cn.
pwdLastSet Specifica quando l'ultimo utente imposta la password. Il valore predefinito è zero, che indica che l'utente deve modificare la password all'accesso successivo.
Useraccountcontrol Contiene valori che determinano diverse funzionalità di accesso e account per l'utente.
Per impostazione predefinita, vengono impostati i flag seguenti:
  • UF_ACCOUNTDISABLE: l'account è disabilitato.
  • UF_PASSWD_NOTREQD: non è necessaria alcuna password.
  • UF_NORMAL_ACCOUNT: tipo di account predefinito che rappresenta un utente tipico.
Memberof Specifica il gruppo o i gruppi di cui l'utente è membro diretto. Il valore predefinito è "Domain Users".

Un utente viene creato tramite l'associazione al contenitore desiderato e quindi usando uno dei metodi seguenti. Gli attributi cn e sAMAccountName devono essere impostati prima che venga eseguito il commit dell'utente nel server.

metodo Descrizione
IADsContainer.Create L'attributo cn viene ricavato dal parametro bstrRelativeName . Il commit del nuovo utente deve essere eseguito chiamando IADs.SetInfo o l'oggetto non verrà creato. Per altre informazioni, vedere Codice di esempio per la creazione di un utente.
IDirectoryObject::CreateDSObject L'attributo cn viene ricavato dal parametro pszRDNName . Il commit del nuovo utente viene eseguito quando viene chiamato CreateDSObject. Per altre informazioni, vedere Codice di esempio per la creazione di un utente.
DirectoryEntries.Add L'attributo cn viene ricavato dal parametro name . È necessario eseguire il commit del nuovo oggetto utente chiamando DirectoryEntry.CommitChanges oppure l'oggetto non verrà creato. Per altre informazioni, vedere Aggiunta di oggetti directory.

È necessario eseguire il commit del nuovo utente nel server prima che sia possibile modificare qualsiasi attributo diverso da cn e sAMAccountName. Questo perché l'account utente non esiste effettivamente fino a quando non viene eseguito il commit dell'utente. Se un attributo viene recuperato o modificato per un oggetto che non esiste nel server, si verificherà un errore. Ciò include la chiamata al metodo IADsUser.SetPassword. Ad esempio, la sequenza seguente viene seguita durante la creazione di un utente con IADsContainer.Create:

  1. Chiamare IADsContainer.Create per creare l'utente nella cache locale con il cn specificato.
  2. Impostare l'attributo sAMAccountName sul valore desiderato con il metodo IADs.Put.
  3. Modificare ora altri attributi, ad esempio userAccountControl. Questa restrizione si applica anche alle proprietà ADSI, ad esempio IADsUser.AccountDisabled, e metodi come IADsUser.SetPassword.
  4. Chiamare IADs.SetInfo per eseguire il commit del nuovo utente nel server.

Quando viene creato un nuovo account utente, viene disabilitato per impostazione predefinita. L'account deve essere abilitato manualmente o a livello di codice. Per abilitare a livello di codice un account utente, rimuovere il flag ADS_UF_ACCOUNTDISABLE dall'attributo userAccountControl.

Quando viene creato un nuovo account utente, l'attributo userAccountControl per l'account ha automaticamente il flag UF_PASSWD_NOTREQD impostato, che indica che non è necessaria alcuna password per l'account. Se i criteri di sicurezza del dominio in cui viene creato l'account richiedono una password per tutti gli account utente, il flag UF_PASSWD_NOTREQD deve essere rimosso dall'attributo userAccountControl per l'account.

Codice di esempio per la creazione di un utente