Question Création users locaux depuis fichier .txt (résolu)

Plus d'informations
il y a 16 ans 10 mois #4600 par mary
bonjour, pour mon travail, je dois crée des utilisateur local depuis un fichiers .txt . Etant donnée que mon serveur ne dispose pas d'active directory, aucun forum ni tutoriaux ne ma permis d'arriver a mes fin :( . je vous joint mon script pour que vous ayez plus d'information :

[code:1]
Set-Location c:\test
Set-ExecutionPolicy unrestricted
$InputUsers = Get-Content .\names.txt
$GroupsOU = [ADSI] 'LDAP://localhost:50002/OU=OU3,O=ms,C=com'
Foreach ($Line in $InputUsers)
$addUser = $InputUsers
$UserName = $InputUsers
$MyInvocation = $addUser
{
$var=$myvar
$var[0]

$var[1]

$User = $GroupsOU.create('UserProxy','CN=' + $var[0])

$User.Put('DisplayName', $var[0])

$User.Put('ObjectSID', $var[1])

$User.SetInfo()

}[/code:1]

ps : vous devez voir mon faible niveau en programation :)

Message édité par: Arnaud, à: 25/05/09 23:37<br><br>Message édité par: Arnaud, à: 25/05/09 23:43

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 10 mois #4601 par PASCAULT
Bonjour kevinmary,

Un petit bout de code qui devrait pouvoir t'aider:

[code:1]Get-Content .names.txt|%{
$computer = [ADSI]\&quot;WinNT://$env:computername,computer\&quot;
$user = $computer.Create(\&quot;user\&quot;, $_)
$user.SetInfo()
}
[/code:1]

Pour un peu plus d'info:
powershell.com/cs/forums/t/1569.aspx

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 10 mois #4603 par mary
Merci de ta reponse, doit-je le rajouter a mon script ou en crée un nouveau... ?

si quelqu'un aurait un script identique des expliquation cela m'aiderai ..

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 10 mois #4605 par PASCAULT
Bonjour,

C'est un nouveau script en fait.
En partant sur le principe que ton fichier names.txt est de la forme

user1
user2
user3


Je modifie le script que je t'ai donné pour qu'il soit un peu moins contracté et peut-être un peu plus parlant pour toi

[code:1]

#Recupération de la liste des utilisateurs mis dans un tableau $inputusers
#Soit à partir d'un fichier:

$inputusers=Get-Content .names.txt

#soit pour directement ici en ligne de cmd pour test:

$inputusers=\&quot;user1\&quot;,\&quot;user2\&quot;

#Définition du poste cible (ici $env:computername correspond à l'ordianteur local)

$Computercible=$env:computername

#Parcours le tableau d'utilisateur un par un; ex dans ce cas au premier passage $user=user1 puis 2eme fois $user=user2

Foreach ($username in $InputUsers)
{

#Connexion à l'ordinateur cible en utilisant le provider (fournisseur objet COM) Winnt
$computer = [ADSI]\&quot;WinNT://$Computercible,computer\&quot;

#Création d'un enregistrement de type \&quot;user\&quot; de nom $user (qui varie user1 puis user2...)

$user = $computer.Create(\&quot;user\&quot;, $username)

#Enregistrement de l'information sur le poste

$user.SetInfo()

Write-Host \&quot;Création de l'utilisateur $username sur le poste $Computercible\&quot;
}
[/code:1]

Si tu executes ce script, cela devrait te créer donc user1 et user2 sur le poste où tu exécutes cette cmd.
Supprimes la ligne ou met en commentaire

$inputusers=\&quot;user1\&quot;,\&quot;user2\&quot;

pour lire ton fichier utilisateurs.
Ensuite, tu peux rajouter un mot de passe, une description de l'utilisateur ou autre paramètre. Tu peux prendre exemple sur le lien donné plus bas.

Voilà, j'espère que cela est plus clair pour toi.

Bon courage!
Yves

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 10 mois #4606 par PASCAULT
ah ! petit souci dirait-on...
La visualisation, ça donnait bien, mais une fois le post envoyé, pas terrible ! en plus il me le fait 2 fois !

Bon, le code sans couleur:
[code:1]#Recupération de la liste des utilisateurs mis dans un tableau $inputusers
#Soit à partir d'un fichier:
$inputusers=Get-Content .names.txt

#soit pour directement ici en ligne de cmd pour test:
$inputusers=\&quot;user1\&quot;,\&quot;user2\&quot;

#Définition du poste cible (ici $env:computername correspond à l'ordianteur local)
$Computercible=$env:computername

#Parcours le tableau d'utilisateur un par un; ex dans ce cas au premier passage $user=user1 puis 2eme fois $user=user2
Foreach ($username in $InputUsers)
{

#Connexion à l'ordinateur cible en utilisant le provider (fournisseur objet COM) Winnt
$computer = [ADSI]\&quot;WinNT://$Computercible,computer\&quot;

#Création d'un enregistrement de type \&quot;user\&quot; de nom $user (qui varie user1 puis user2...)
$user = $computer.Create(\&quot;user\&quot;, $username)

#Enregistrement de l'information sur le poste
$user.SetInfo()

Write-Host \&quot;Création de l'utilisateur $username sur le poste $Computercible\&quot;
} [/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 10 mois #4609 par mary
Merci !!! ton aide ma était precieuse !

mais j'obtien encore une petite erreur

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.103 secondes
Propulsé par Kunena