Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Python]Limitation d'accès a une session windows
Auteur Message
Répondre en citant
Message [Python]Limitation d'accès a une session windows 
Bonjour,

Voici un script en python qui ouvre un petit soft graphique qui permet de choisir les heures de connexions voulues (et donc d'interdire le reste) en python.

Ce script utilise les commandes dos : net user /times et place un fichier bat dans le menu démarrer de la session voulue pour avoir un délogguage de session lorsque l'heure limite arrive.

Merci à ceux qui m'ont aidé et en particulier à Tufanik pour son idée lumineuse quand au fichier bat dans le menu démarrer.

Voici le script :

Code:
# -*- 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
    commande= []
    if lundi:
        commande.append("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.append("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.append("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.append("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.append("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.append("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.append("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:
        for commande in commande:
            a=os.system(commande)
            b=open('rep.txt','r')
        c=os.system("echo del lance.bat>>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
    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()




[EDIT] Le fichier d'installation se trouve à l'adresse suivante : http://grandvelle.en-ligne-01.biz/setup_HorairesRestreintsV.2..exe



Dernière édition par lonewolf le Lun 26 Oct 2009 - 11:04; édité 1 fois

______________________________________________________
Amicalement
Lonewolf
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Python]Limitation d'accès a une session windows 
Bonne idée je vais tester sa tout a l'heur Very Happy




______________________________________________________


Répondre en citant
Message [Python]Limitation d'accès a une session windows 
salut !
alors marche ? marche pas ?
j'ai que une session je peux pas trop tester.
bon code en tout cas ...



Message [Python]Limitation d'accès a une session windows 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch