IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[Batch] casser des sessions TSE gelées


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut [Batch] casser des sessions TSE gelées
    Bonjour,

    J'ai problème de sessions gelées sur un TSE . Ce qui fait qu'on bout d'un moment les utilisateurs ne parviennent plus a se connecter car le nombre de connections simultanées limites est atteint. Le seul moyen est de rebooter manuellement la machine, car elle se situe dans la DMZ ce qui empêche la prise de main a distance via des logiciel comme DameWare.
    Je veux écrire un batch qui casse les sessions gelée. Savez vous comment faire? ou je peut aller pour trouver des infos ? le plus dur étant a mon avis de différencier les sessions gelées des actives. Avez vous besoins de plus amples informations?
    Il y a eventuellement la commande reset session mais je ne sais pas comment distinguer une commande gélée d'une active. Je ne sais pas non plus quel kit de ressource telecharger pour cette commande. (http://technet2.microsoft.com/Window....mspx?mfr=true)


    Merci d'avance
    Guillaume

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    J'ai trouvé les commandes pour faire tout cela. c'est
    query session et reset session.
    Mais je peine.

    Mon problème c'est qu'il faudrait que j'injecte le résultat du query session dans un txt et que je puisse récupérer des infos à l'intérieur afin de récupérer les sessions inactives (données par le query session) et leur appliquer un reset session.

    quand je fait un query session > test.txt le fichier texte ne contient que : "query session".

    Quelqu'un a des idées??

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Désoler erreur de ma part. Maintenant la redirection marche correctement et voila ce que j'obtiens dans une fenetre dos. (J'ai aussi mis ce que j'obtiens sur un editeur car les "e" deviennent des carré).



    Il y a un autre état qui est "deco" et c'est celui qui m'interesse. Comment faire pour récupérer dans ce fichier text les états et les ID de session et les mettre dans un tableau par exemple? car après il ne me reste plus qu'à faire if (tableau) //si il y a un tableau (remplit uniquement d'informations sur les session déconectés)
    then
    resset session (avec les entrées du tableau en paramètre)

  4. #4
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query session | findstr "deco" > test.txt
    La tu n'auras que les lignes ou l'état est déco. (par contre tu auras pe un probleme avec l'accent si il y en a un sur deco).
    Ensuite tu fais un for sur ton fichier avec les délimiteurs qui vont bien pour récuperer ton ID.
    Donc un for du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For /F "tokens=5 delims= " %%i in (test.txt) do ( ... )
    J'ai mis 5 en tokens mais à mon avis il te faudra tatonner un peu selon comment il considere les espaces entre les colonnes. Et si c'est des tab il faudra pe changer les delims aussi.

    Comme chaque ligne du fichier aura l'état deco tu peux killer pour chaque ID sans risque.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ok je te remercie pour ton aide ca m'a bien aidé. En effet il y avait des accents mais voici une petite astuce :
    Créer un fichier text.
    L'ouvrir via l'éditeur. (démarer==>exécuter==>edit)
    taper la lettre que l'on souhaite par exemple "é" eet sauvegarder.
    Dans le fichier text on verra le caractère ASCII équivalent.
    par exemple pour les "é" c'est "," et les "à" c'est "...".
    Voici le script ca marche nikel.


    -----------------------
    echo off

    set /P SRVcible=Entrez le nom du serveur … décongestionner :
    query session /SERVER:%SRVcible%| findstr "D‚co" > SessInactive.txt
    rem récupération des sessions inactives dans test.txt
    pause

    For /f "tokens=1-2 delims= " %%a in (test.txt) do (@echo S‚ssion inactive : %%b ---> appartenant … : %%a)
    rem*

    For /f "tokens=2 delims= " %%a in (test.txt) do (reset session %%a /SERVER %SRVcible% /v)
    rem execution des reset session sur le serveur.

    -----------------------

    J'aimerais juste pouvoir ajouter une gestion d'exception. Si il n'y a pas de session inactives. Comment ? en vérifiant que le fichier .txt soit vide. Pour l'instant le seul moyen que j'ai trouver est pas propore. (pour ne pas dire carrément dégeulasse). Je créer un fichier vide et j'utilise FC pour comparer mon test.txt avec le fichier vide de référence. Il n'y aurai pas un moyen plus propre ? Est il possible de "compter" la taille d'un fichier?

    merci.

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Le mieux est de coupler avec WSH pour ce type de traitement.
    Sinon en full DOS tu peux utiliser DEBUG, lors du chargement d'un fichier sa taille est renseignée dans le registre CX mais c'est peut être un peu tordu.

    Sinon le parsing d'une commande dir sur le nom de ton fichier.

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ok. Pour coupler avec WSH j'insère directement le code dans mon batch ou il y a des manipulations a faire d'abord?
    Ne connaissant pas dutout le wsh pourrait tu m'indiquer la fonction qui conviendrait pour solutioner le problème?
    en effet sinon je vais m'attaquer au parsing d'un dir. C'est brutal et ca engendre un fichier de plus mais ca marchera.

    [edit] Question pour pas mourrir idiot. Si l'on peut intégrer du WSH (et du vsb?) dans du batch y a t'il un intéret a travailler en full batch? la portabilité? la performance?

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jekk
    Pour coupler avec WSH j'insère directement le code dans mon batch ou il y a des manipulations a faire d'abord?
    Juste un call d'un script externe.
    Citation Envoyé par jekk
    Question pour pas mourrir idiot. Si l'on peut intégrer du WSH (et du vsb?) dans du batch y a t'il un intéret a travailler en full batch? la portabilité? la performance?
    Dans un environement de prod cela dépend du socle technique préconisé, ensuite de la maintenance et des compétences nécessaires demandées à ton futur remplaçant.
    Si tu travailles avec WSH il faut l'installer sur les OS plus anciens, c'est la seule contrainte.
    J'ai travaillé sur un projet Citrix/TSE-NT, la construction automatique d'un nouveau serveur et les différents scripts étaient en batch à 95% (le reste WSH et Delphi).

    Si je devais refaire ces traitements j'utiliserais WSH mais je pense que pour amorcer l'installation d'un serveur les batchs reste incontournable.

    Sur certains traitements les batch sont plus concis mais là c'est un question de goût. Et enfin WSH facilite la modularisation et la maintenance.

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Je te remercie pour ces réponses pertinantes je n'avais pas pensé a toutes ces raisons.

    Finalement j'ai terminé le batch. J'ai fais la vérification via un parse du dir. (à la brutale quoi). J'ai contourné un problème que je n'ai pas réussit a résoudre sur un IF/ELSE. Je l'expose ci après.

    ---------------------------------------------

    echo off
    set /a var =0

    set /P SRVcible=Entrez le nom du serveur sur lequel agir :
    query session /SERVER:%SRVcible%| findstr "D‚co" > SessInact.txt
    echo r‚cupération des sessions inactives...

    dir SessInact.txt| findstr "fichier" > temp.txt
    For /f "tokens=1-3 delims= " %%a in (temp.txt) do (set /a var = %%c)
    rem //////// récupération de la taille du fichier de stockage des sessions inactives.
    rem if %var% == "0" (echo vide) else (echo pas vide) ne marche pas!!!
    if %var% == 0 goto vide
    echo Voici les sessions inactives :
    :vide
    echo il n'y a pas de session inactives sur le poste sp‚cifi‚
    goto fin


    For /f "tokens=1-2 delims= " %%a in (SessInact.txt) do (@echo S‚ssion inactive : %%b ---> appartenant … : %%a)
    @echo êtes vous certains de vouloir dégastonner les sessions inactives sur %SRVCible% ?
    rem ////////// affichage des sessions inactives.
    pause

    For /f "tokens=2 delims= " %%a in (SessInact.txt) do (echo %%a)
    For /f "tokens=2 delims= " %%a in (SessInact.txt) do (reset session %%a /SERVER:%SRVCible% /v)
    rem ////////// des sessions inactives.
    pause


    :fin
    echo fin du programme.
    del temp.txt
    pause

    -----------------------------------------------

    Je ne comprend pas pourqu'oi le "rem if %var% == "0" (echo vide) else (echo pas vide) " ne marche pas. Il s'agit d'un cas d'école non? j'ai essayer sans les guillemets, avec ou sans parentheses etc... rien n'y fais.
    Le script marche le problème est résolus même si j'aimerais bien comprendre le coup du IF/ELSE.

    Merci encore.

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Qu'est sensée faire cette ligne ?
    Tu manipules une info numérique ou pas ?

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    %var% contient la taille du fichier. Je souhaite afficher "vide" si la valeur de %var% est égal à 0 et "pas vide" si ce n'est pas le cas. Donc d'après moi ca doit donner quelques choses comme :
    if %var% == "0" (echo vide) else (echo pas vide)

    PS oui il s'agit d'une infos numérique d'ou le /a du set qui permet de spécifier que la variable sera de type num.

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Essaie :
    @echo off
    set /A VAR=0
    if /I %var% EQU 0 (echo vide) else (echo pas vide)
    set /A VAR+=1
    if /I %var% EQU 0 (echo vide) else (echo pas vide)

  13. #13
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ca marche !
    Apparament c'est le /I du if qui changé le résultat. A quoi correspont'il ?

    En tout cas merci pour tout.

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Regarde l'aide en ligne

  15. #15
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Pour l'aide en ligne faire
    ou

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script BATCH Supression Session TSE
    Par jfgarnier dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 15/09/2009, 12h30
  2. Blocage des sessions TSE
    Par newgarf dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 08/03/2007, 09h35
  3. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40
  4. [VS.NET] Liens relatifs et suivi des sessions ?
    Par Webman dans le forum ASP.NET
    Réponses: 6
    Dernier message: 18/11/2004, 21h21
  5. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo