Bonjour a tous,

J'ai remis la main à mon script sur la restriction des horaires pour obliger la deconnexion de la session en cause lors de l'arrivée à l'heure maximum.

Pour cela, j'ai mis en place un script bat généré par mon script et qui est placé dans le menu démarrer de la session en cause mais j'ai un souci que je ne m'explique pas.

En effet, si je met une permission sur plusieurs jours, seul le dernier jour pris est inscrit dans le fichier bat et la je ne comprend pas pourquoi parce que lorsque je lance le script dans l'idle avec un print, les commandes de tous les jours s'affichent.

Alors je fais appel à votre aide.

Merci d'avance.

Voici le script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# -*- coding: cp1252 -*-
from Tkinter import *
import os
from ScrolledText import *
 
#definition du traitement
def nom():
    global b
    nom=ent1.get()
    lundi=ent2.get()
    mardi=ent3.get()
    mercredi=ent4.get()
    jeudi=ent5.get()
    vendredi=ent6.get()
    samedi=ent7.get()
    dimanche=ent8.get()
 
    # seulement le lundi
    if lundi:
        commande="net user "+nom+" /times:L," +lundi+" >rep.txt  2>&1 & echo AT "+lundi[-5:]+" /every:lundi \"shutdown -l -t 60 \" >> \"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        print commande
    # seulement mardi
    if mardi:
        commande="net user "+nom+" /times:Ma,"+mardi+" >rep.txt  2>&1 & echo AT "+mardi[-5:]+" /every:mardi \"shutdown -l -t 60 \" >> \"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        print commande
    # seulement mercredi
    if mercredi:
        commande="net user "+nom+" /times:Me,"+mercredi+" >rep.txt  2>&1 & echo AT "+mercredi[-5:]+" /every:mercredi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        #print commande
    # seulement jeudi
    if jeudi:
        commande="net user "+nom+" /times:j,"+jeudi+" >rep.txt  2>&1 && echo AT "+jeudi[-5:]+" /every:jeudi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        #print commande
    # seulement vendredi
    if vendredi:
        commande="net user "+nom+" /times:v,"+vendredi+" >rep.txt  2>&1 && echo AT "+vendredi[-5:]+" /every:vendredi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        #print commande
    # seulement samedi
    if samedi:
        commande="net user "+nom+" /times:s,"+samedi+" >rep.txt  2>&1 && echo AT "+samedi[-5:]+" /every:samedi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        #print commande
    # seulement dimanche
    if dimanche:
        commande="net user "+nom+" /times:d,"+dimanche+" >rep.txt  2>&1 && echo AT "+dimanche[-5:]+" /every:dimanche \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        #print commande
    # si pas de données
    try:
        a=os.system(commande)
        c=os.system("echo del lance.bat>>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        b=open('rep.txt','r')
    except:
        a=os.system("echo Entrez au moins une valeur !!>rep.txt")
        b=open('rep.txt','r')
    result()
 
#définition reinitialiser
def reinitialiser():
    global b
    nom=ent1.get()
    if nom:
        commandere="net user "+nom+" /times:all >rep.txt  2>&1 & at /delete /yes & del \"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        print commandere
        a=os.system(commandere)
    else:
        commandere="echo Entrez le nom de la session !!>rep.txt"
        a=os.system(commandere)
    b=open('rep.txt','r')
    result()
 
# def infos sessions
def infos():
    global b
    nom=ent1.get()
    commande="net user "+nom+" >rep.txt"
    #print commande
    a=os.system(commande)
    b=open('rep.txt','r')
    result()
 
def result():
    fen1=Toplevel()
    fen1.title("Résultat")
    texte = ScrolledText(fen1, width = 75, height = 5, font = "Arial 10",
    relief = "groove")
    texte.pack()
    #Ecriture des données
    texte.config(state = NORMAL)    #Permettre l'écriture
    texte.insert("1.0", b.read().decode("cp1252"))          #Gestion de l'insertin des lignes
                                    #1 = 1ere ligne  0 = 1er caractere de la ligne
    texte.config(state = DISABLED)  #Interdire les modifications
    #Remettre à zero les entrées
    ent1.delete(0,END)
    ent2.delete(0,END)
    ent3.delete(0,END)
    ent4.delete(0,END)
    ent5.delete(0,END)
    ent6.delete(0,END)
    ent7.delete(0,END)
    ent8.delete(0,END)
    b.close()
    bou4=Button(fen1,text='Fermer',command=fen1.destroy)
    bou4.pack()
 
#Fenêtre principal
fen=Tk()
fen.title('Horaires V1.0 par S.Pillot')
text1=Label(fen,text='Entrer le nom de la session a limiter : ',fg='red')
text1.grid(column=0,row=0)
ent1=Entry(fen)
ent1.grid(column=1,row=0)
text2=Label(fen,text='Entrer les heures permises selon le modèle suivant : 13:00-20:00')
text2.grid()
text3=Label(fen,text='Lundi',fg='red')
text3.grid(column=0,row=3)
ent2=Entry(fen)
ent2.grid(column=1,row=3)
text4=Label(fen,text='Mardi',fg='red')
text4.grid(column=0,row=4)
ent3=Entry(fen)
ent3.grid(column=1,row=4)
text5=Label(fen,text='Mercredi',fg='red')
text5.grid(column=0,row=5)
ent4=Entry(fen)
ent4.grid(column=1,row=5)
text6=Label(fen,text='Jeudi',fg='red')
text6.grid(column=0,row=6)
ent5=Entry(fen)
ent5.grid(column=1,row=6)
text7=Label(fen,text='Vendredi',fg='red')
text7.grid(column=0,row=7)
ent6=Entry(fen)
ent6.grid(column=1,row=7)
text8=Label(fen,text='Samedi',fg='red')
text8.grid(column=0,row=8)
ent7=Entry(fen)
ent7.grid(column=1,row=8)
text9=Label(fen,text='Dimanche',fg='red')
text9.grid(column=0,row=9)
ent8=Entry(fen)
ent8.grid(column=1,row=9)
bou1=Button(fen,text='Envoyer',command=nom)
bou1.grid(column=2,row=10)
bou3=Button(fen,text='Reinitialiser',command=reinitialiser)
bou3.grid(column=0,row=10)
bou4=Button(fen,text='Infos session',command=infos)
bou4.grid(column=0,row=12)
bou2=Button(fen,text=' Quitter ',command=fen.destroy)
bou2.grid(column=2,row=12)
fen.mainloop()
Le résultat dans l'idle avec des données mise dans lundi et mardi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
net user s.pillot /times:L,10:00-12:00 >rep.txt  2>&1 & echo AT 12:00 /every:lundi "shutdown -l -t 60 " >> "c:\Documents and Settings\s.pillot\Menu Démarrer\Programmes\Démarrage\lance.bat"
net user s.pillot /times:Ma,12:00-15:00 >rep.txt  2>&1 & echo AT 15:00 /every:mardi "shutdown -l -t 60 " >> "c:\Documents and Settings\s.pillot\Menu Démarrer\Programmes\Démarrage\lance.bat"
Et ce qu'il y a de généré dans le fichier bat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
AT 15:00 /every:mardi "shutdown -l -t 60 " 
del lance.bat
Et la il manque les données de lundi.

Désolé pour la longueur de ce post et merci pour votre aide

Amicalement
Lonewolf