OVH Cloud OVH Cloud

Username

7 réponses
Avatar
Pat
Bonjour,

J'ai crée 1000 comptes users dans mon domaine W2k2 mais le problème c'est
que le nom d'ouverture de session est tronqué pa rapport aun nom d compte
affiché. Exemple : User00099 (nm affiché) User99 (Username).

Comment modifié ce paramètre pour l'ensemble des users via scirpt .

Voici le cscript que j'ai utilisé

Set objRootDSE = GetObject("LDAP://rootDSE")

Set objContainer = GetObject("LDAP://cn=Users," & _
objRootDSE.Get("defaultNamingContext"))

For i = 1 To 1000
Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
objLeaf.Put "sAMAccountName", "UserNo" & i
objLeaf.SetInfo
Next

WScript.Echo "1000 Users created."

Merci d'avance

7 réponses

Avatar
Pat
Je reformule ma question :

Ya t'il un moyen via VBS de modifier le nom d'ouverture de session de
l'utilisateur (antérieur à w2000 et supéreir à NT4) à l'identique du nom
utilisateur affiché.


Bonjour,

J'ai crée 1000 comptes users dans mon domaine W2k2 mais le problème c'est
que le nom d'ouverture de session est tronqué pa rapport aun nom d compte
affiché. Exemple : User00099 (nm affiché) User99 (Username).

Comment modifié ce paramètre pour l'ensemble des users via scirpt .

Voici le cscript que j'ai utilisé

Set objRootDSE = GetObject("LDAP://rootDSE")

Set objContainer = GetObject("LDAP://cn=Users," & _
objRootDSE.Get("defaultNamingContext"))

For i = 1 To 1000
Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
objLeaf.Put "sAMAccountName", "UserNo" & i
objLeaf.SetInfo
Next

WScript.Echo "1000 Users created."

Merci d'avance


Avatar
Gilles LAURENT
"Pat" a écrit dans le message de
news:

Bonjour,

| Ya t'il un moyen via VBS de modifier le nom d'ouverture de session de
| l'utilisateur (antérieur à w2000 et supéreir à NT4) à l'identique du
| nom utilisateur affiché.

Ci-dessous le script VBScript 'updateADUsers.vbs' permettant de mettre à
jour les attributs 'sAMAccountName' et 'userPrincipalName' de tous les
utilisateurs présents dans une OU. Le DN de l'OU racine est transmis
comme argument.

+++ Usage
cscript updateADUsers.vbs <rootDN>

+++ Exemple
>cscript updateADUsers.vbs cn=users,dc=domaine,dc=local

--- Coupez ici : updateADUsers.vbs ---

Option Explicit

' déclaration des variables
Dim oCon, oCmd, oRs, oUser
Dim strRootDN

' initialisation des objets
Set oCon = CreateObject ("ADODB.Connection")
Set oCmd = CreateObject ("ADODB.Command")

' lecture des arguments
strRootDN = WScript.Arguments (0)

' initialisation des propriétés
oCon.Open "Provider­sDSOObject"
oCmd.ActiveConnection = oCon
oCmd.CommandText = "<LDAP://" & strRootDN & ">;" & _
"(&(objectCategory=User));" & _
"distinguishedname,displayname;" & _
"subtree"

' exécution de la requête ldap
Set oRs = oCmd.Execute

' parcours des enregistrements
While Not oRs.EOF
WScript.Echo "Processing " & oRs.Fields ("distinguishedname")
Set oUser = GetObject ("LDAP://" & oRs.Fields ("distinguishedname"))

' mise à jour des attributs
oUser.Put "samaccountname", "" & oRs.Fields ("displayname")
oUser.Put "userprincipalname", oRs.Fields ("displayname") & _
"@" & split (oUser.Get ("userprincipalname"), "@")(1)

' commit
oUser.SetInfo

' traitement de l'enregistrement suivant
oRs.MoveNext

Wend

--- Coupez ici : updateADUsers.vbs ---

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Gilles LAURENT
"Gilles LAURENT" a écrit dans le message de
news:%

La version PowerShell ;-)

+++ Usage
powershell .updateADUsers.ps1 <rootDN>

+++ Exemple
>powershell .updateADUsers.ps1 'cn=users,dc=domaine,dc=local'

--- Coupez ici : updateADUsers.ps1 ---

$oDs=New-Object System.DirectoryServices.DirectorySearcher
$oDs.Filter = "(&(objectCategory=user))"
$oDs.SearchRoot="$args"
$oDs.FindAll() | foreach {
Write-Host Processing $_.Path
$oUser=[ADSI]$_.Path
$oUser.Put("samaccountname", $oUser.Get("displayname"))
$oUser.Put("userprincipalname",$oUser.Get("displayname")+
"@" + $oUser.Get("userprincipalname").Split("@")[1])
$oUser.SetInfo()
}

--- Coupez ici : updateADUsers.ps1 ---

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Pat
Merci beaucoup de ton aide si précieuse !

J'ai testé le script (le vbs), il fonctionne si je rajoute à la main dans
les propriétés de l'utilisateurs dans le champs "Nom affiché" : le nom du
login.
Mais le problème c'est que je souhaite appliquer sur script sur plus de 1000
comptes.


"Pat" a écrit dans le message de
news:

Bonjour,

| Ya t'il un moyen via VBS de modifier le nom d'ouverture de session de
| l'utilisateur (antérieur à w2000 et supéreir à NT4) à l'identique du
| nom utilisateur affiché.

Ci-dessous le script VBScript 'updateADUsers.vbs' permettant de mettre à
jour les attributs 'sAMAccountName' et 'userPrincipalName' de tous les
utilisateurs présents dans une OU. Le DN de l'OU racine est transmis
comme argument.

+++ Usage
cscript updateADUsers.vbs <rootDN>

+++ Exemple
>cscript updateADUsers.vbs cn=users,dc=domaine,dc=local

--- Coupez ici : updateADUsers.vbs ---

Option Explicit

' déclaration des variables
Dim oCon, oCmd, oRs, oUser
Dim strRootDN

' initialisation des objets
Set oCon = CreateObject ("ADODB.Connection")
Set oCmd = CreateObject ("ADODB.Command")

' lecture des arguments
strRootDN = WScript.Arguments (0)

' initialisation des propriétés
oCon.Open "Provider­sDSOObject"
oCmd.ActiveConnection = oCon
oCmd.CommandText = "<LDAP://" & strRootDN & ">;" & _
"(&(objectCategory=User));" & _
"distinguishedname,displayname;" & _
"subtree"

' exécution de la requête ldap
Set oRs = oCmd.Execute

' parcours des enregistrements
While Not oRs.EOF
WScript.Echo "Processing " & oRs.Fields ("distinguishedname")
Set oUser = GetObject ("LDAP://" & oRs.Fields ("distinguishedname"))

' mise à jour des attributs
oUser.Put "samaccountname", "" & oRs.Fields ("displayname")
oUser.Put "userprincipalname", oRs.Fields ("displayname") & _
"@" & split (oUser.Get ("userprincipalname"), "@")(1)

' commit
oUser.SetInfo

' traitement de l'enregistrement suivant
oRs.MoveNext

Wend

--- Coupez ici : updateADUsers.vbs ---

--
Gilles LAURENT
http://glsft.free.fr





Avatar
Gilles LAURENT
"Pat" a écrit dans le message de
news:
| Merci beaucoup de ton aide si précieuse !
|
| J'ai testé le script (le vbs), il fonctionne si je rajoute à la main
| dans les propriétés de l'utilisateurs dans le champs "Nom affiché" :
| le nom du login.

Il semblerai donc que j'ai mal compris l'énoncé du problème :

<citation>
Ya t'il un moyen via VBS de modifier le nom d'ouverture de session
de l'utilisateur (antérieur à w2000 et supéreir à NT4) à l'identique du
nom utilisateur affiché
</citation>

Le script proposé modifie les noms d'ouverture de session à l'identique
du nom utilisateur affiché (champ "Nom Affiché"). Le traitement est
réalisé pour tous les utilisateurs de l'OU spécifiée. Qu'appelez-vous
"nom utilisateur affiché" ? Le nom de l'utilisateur affiché dans la
colonne "Nom" de la mmc Utilisateurs et ordinateurs Active Directory ?
Si c'est le cas, cet attribut est le CN de l'utilisateur. Il suffit donc
de modifier le script proposé en remplaçant toutes les occurences de
"displayname" par "cn" (trois occurences).

Tenez nous au courant.

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Pat
Mille execuses ! Le script est vraiment parfait, j'avais fait une boulette !
Autant pour moi ! Désolé encore ! Et surtout merci encore de ton aide !!!!!


"Pat" a écrit dans le message de
news:
| Merci beaucoup de ton aide si précieuse !
|
| J'ai testé le script (le vbs), il fonctionne si je rajoute à la main
| dans les propriétés de l'utilisateurs dans le champs "Nom affiché" :
| le nom du login.

Il semblerai donc que j'ai mal compris l'énoncé du problème :

<citation>
Ya t'il un moyen via VBS de modifier le nom d'ouverture de session
de l'utilisateur (antérieur à w2000 et supéreir à NT4) à l'identique du
nom utilisateur affiché
</citation>

Le script proposé modifie les noms d'ouverture de session à l'identique
du nom utilisateur affiché (champ "Nom Affiché"). Le traitement est
réalisé pour tous les utilisateurs de l'OU spécifiée. Qu'appelez-vous
"nom utilisateur affiché" ? Le nom de l'utilisateur affiché dans la
colonne "Nom" de la mmc Utilisateurs et ordinateurs Active Directory ?
Si c'est le cas, cet attribut est le CN de l'utilisateur. Il suffit donc
de modifier le script proposé en remplaçant toutes les occurences de
"displayname" par "cn" (trois occurences).

Tenez nous au courant.

--
Gilles LAURENT
http://glsft.free.fr





Avatar
Gilles LAURENT
"Pat" a écrit dans le message de
news:
| Mille execuses ! Le script est vraiment parfait, j'avais fait une
| boulette ! Autant pour moi ! Désolé encore ! Et surtout merci encore
| de ton aide !!!!!

Aucun problème Pat :-)

N'hésitez pas à revenir vers nous !

--
Gilles LAURENT
http://glsft.free.fr