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

Résolu/Fermé
HrachJR - Modifié le 2 juin 2020 à 16:03
 HrachJR - 8 juin 2020 à 20:12
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
Modifié le 2 juin 2020 à 19:24
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
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
Modifié le 3 juin 2020 à 15:47
Ce que tu as tapé est correct.

Dans ce cas il faudrait que je jette un oeil à ton fichier .csv
0
HrachJR > barnabe0057
4 juin 2020 à 08:52
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
4 juin 2020 à 14:26
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
4 juin 2020 à 15:39
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
Modifié le 4 juin 2020 à 18:34
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
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
5 juin 2020 à 19:37
S'il le dit c'est que ça doit être vrai.
0
HrachJR > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
6 juin 2020 à 11:03
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907 > HrachJR
6 juin 2020 à 15:02
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
8 juin 2020 à 09:45
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
8 juin 2020 à 10:16
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