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

Signaler
-
 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

Messages postés
13431
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 mai 2021
4 345
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



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
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
> HrachJR
Ce que tu as tapé est correct.

Dans ce cas il faudrait que je jette un oeil à ton fichier .csv
> 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,,
> 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
> 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.
Messages postés
13431
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 mai 2021
4 345
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





“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
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.
Messages postés
13431
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 mai 2021
4 345 > 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;
>
Messages postés
13431
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 mai 2021

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.
> 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
Messages postés
13431
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 mai 2021
4 345 > HrachJR
Merci pour ton retour, ça pourra servir à d'autres.

C'est quand même bizarre de gérer un AD et de se tromper dans les noms des utilisateurs, c'était la première chose à vérifier.
>
Messages postés
13431
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 mai 2021

Ouai tkt c’est normal. Mais tu vois le truc c’est que j’ai exporté le fichier donc je pensais que c’était direct le nom d’utilisateur j’avoue j’ai pas pensé à vérifier. Je suis en stage mdddrr c’est pour ça que je galère un peu mais merci de ton aide ça m’a aider à débloquer