Problème script pour définir une plage d'horaire dans un serveur de domaine

Résolu
HrachJR -  
 HrachJR -
Bonjour,

J'ai suivi un tuto pour créer un script qui va me permettre de configurer la plage horaire sur les utilisateurs d'une UO dans mon AD. Le principe est d'exporter la liste des users dans un fichier csv et ensuite avec un script bash appliquer la plage horaires sur les utilisateurs.
Problème le script bash n'arrive pas à lire les noms d'utilisateurs du fichier bash car ils sont séparer par un espace. La solution serait de considérer l'espace comme vide mais je ne sais pas comment faire.
Quelqu'un à eu le même problème que moi sur ce site (voir les commentaires), la personne à proposer une solution mais c'est pas très clair. (le lien du site : https://www.it-connect.fr/script-parametrer-les-horaires-dacces-sur-plusieurs-utilisateurs/comment-page-1/?unapproved=198465&moderation-hash=65d34e580ec70ca05e8a3f94f4ba8966#comment-198465
Merci d'avance

3 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Bonjour,

Il suffit de rajouter des doubles quotes autour de la variable %%i, comme dans les commentaires :

FOR /F "skip=1 tokens=1 delims=," %%i IN (utilisateurs.csv) DO (net user "%%~i" /times:L-V,6:00AM-10:00PM;)


ps : ne pas oublier d'exécuter le script en tant qu'administrateur


0
HrachJR
 
Alors du coup j'ai essayé d'exécuter en admin en ligne de commande mais même problème, ça me sort : " Le nom d'utilisateur est introuvable "
J'ai tapé ça :

FOR /F "skip=1 tokens=1 delims=," %%i IN (utilisateurs.csv) DO (net user "%%~i" /times:Me-V,6:00AM-10:00PM;)
Pause
0
barnabe0057 > HrachJR
 
Ce que tu as tapé est correct.

Dans ce cas il faudrait que je jette un oeil à ton fichier .csv
0
HrachJR > barnabe0057
 
Tiens il ressemble à ça, et c'est l'espace entre UserX et Tesst qui pose prroblème et si je l'enlève du csv directement ça marche pas non plus :

Nom,Type,Description,
User4 Tesst,Utilisateur,,
User3 Tesst,Utilisateur,,
User2 Tesst,Utilisateur,,
User1 Tesst,Utilisateur,,
0
barnabe0057 > HrachJR
 
Le problème ne vient pas de l'espace, que donne comme résultat cette commande :

FOR /F "skip=1 tokens=1 delims=," %%i IN (utilisateurs.csv) DO echo "%%~i"
Pause
0
HrachJR > barnabe0057
 
Alors ça donne ça du coup :
C:\horaires>echo "User4 Tesst"
"User4 Tesst"

C:\horaires>echo "User3 Tesst"
"User3 Tesst"

C:\horaires>echo "User2 Tesst"
"User2 Tesst"

C:\horaires>echo "User1 Tesst"
"User1 Tesst"

C:\horaires>Pause
Appuyez sur une touche pour continuer...


Mais pour que la commande que je veux fonctionne il faut pas d'espace je crois.
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
La commande NET USER gère les utilisateurs locaux, pour gérer les utilisateurs du domaine il faut rajouter le switch /DOMAIN
FOR /F "skip=1 tokens=1 delims=," %%i IN (utilisateurs.csv) DO (net user "%%~i" /times:Me-V,6:00AM-10:00PM; /domain)
pause




0
HrachJR
 
J'a réessayé mais toujours le même problème il me dit que l'utilisateur est introuvable :

 C:\horaires>(net user "User4 Tesst" /times:Me-V,6:00AM-10:00PM; /domain )
Le nom d’utilisateur est introuvable.

Vous obtiendrez une aide supplémentaire en entrant NET HELPMSG 2221.


C:\horaires>(net user "User3 Tesst" /times:Me-V,6:00AM-10:00PM; /domain )
Le nom d’utilisateur est introuvable.
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
S'il le dit c'est que ça doit être vrai.
0
HrachJR > barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention  
 
Comment ça ? Pck le fichier csv je l’ai importé du serveur de domaine je l’ai pas écris à la main donc il peut pas y avoir d’erreur et ils existent bien les comptes j’arrive à me logger dessus
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > HrachJR
 
En tout cas le problème ne vient pas de l'espace.

Essaie de rajouter le nom du domaine avant le nom d'utilisateur :

net user "Microsoft.com\User4 Tesst" /times:Me-V,6:00AM-10:00PM;
0
HrachJR > barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention  
 
La syntaxe marche pas j'ai essayé comme ça mais toujours pas :

C:\Users\Administrateur.DOMORCA>net user "User4 Tesst" /TIMES:Me-V,6:00AM-10:00PM; /DOMAIN
Le nom d’utilisateur est introuvable.

Vous obtiendrez une aide supplémentaire en entrant NET HELPMSG 2221.


C:\Users\Administrateur.DOMORCA>net user User4 Tesst /TIMES:Me-V,6:00AM-10:00PM; /DOMAIN
Le nom d’utilisateur est introuvable.

Vous obtiendrez une aide supplémentaire en entrant NET HELPMSG 2221.
0
HrachJR > HrachJR
 
J'ai enfin trouvé l'erreur. Quand j'extrait le fichier csv depuis Gestionnaire de Tache> Utilisateurs et Ordinateurs Active Directory en faisant un clic droit exporter la liste, le nom d'utilisateur est écrit "nom prénom" alors que pour que ça marche il faut que ça soit "nom.prénom". Donc depuis le bloc note il suffit d'aller dans Edition>Remplacer et remplacer l'espace par un point. Ensuite on exécute le fichier .bat suivant :
FOR /F "skip=1 tokens=1 delims=," %%i IN (utilisateurs.csv) DO (net user %%i /times:L-V,6:00AM-10:00PM;)
pause

Il faut que les 2 fichier soit dans le même répertoire pour que ça marche.
Voila voila
0