Aller au contenu

temps de connexion à un serveur windows


Samuel_222

Messages recommandés

Bonjour,

On me demande dans le cadre de mon travail de faire un script qui toutes les dix minutes mesure le temps de connexion à un serveur. Il s'agit d'un serveur accessible en remote desktop, sous win 2008. L'idée est d'obtenir ainsi un indicateur de performance.

Cela vous paraît-il possible ? Comment ?

Merci pour votre aide,

Samuel

Lien vers le commentaire
Partager sur d’autres sites

Ce serait bien d'avoir un format web, comme une page web autorafraichie par javascript. Ce n'est pas un problème pour moi de mettre en oeuvre cette partie. Ce qui me préoccupe est bien la manière de mesure le temps d'ouverture de session.

Ce qu'on me demande n'est pas le temps de ping, mais bien le temps que met un utilisateur pour obtenir un bureau utilisable.

Merci,

Samuel

Lien vers le commentaire
Partager sur d’autres sites

Bonjour je te conseil de faire :

0 - Lancer un timer :)

1 - Connexion RDP par script avec MSTSC.EXE ( /console )

2 - Exécuter un script distant ( le mieux étant de crée un utilisateur avec un idle très court genre 1mn avec au démarrage (startup) l’exécution d'un petit batch qui va te remplir un log (c'est toujours bien ça) et fermer ta session )

3 - Tu doit avoir un petit callback quand ton mstsc.exe se ferme

4 - Tu stoppe ton timer ( ou diff now()-before() )

5 - Tu remplis un xml (ou db ou ce que tu veux) qui stock tes timers avec les dates et heures et ta plus qu'as utiliser une lib genre highcharts pour générer des graphs avec ton xml :)

Comme ont dit y'a plus qu'as trouver comment faire chaque étape ( mais ca a l'air pas trop dur hein :) )

Lien vers le commentaire
Partager sur d’autres sites

Merci, Maxime, pour ta réponse.

J'ai commencé à me pencher sur la question, mais les choses ne me paraissent pas simples.

Pour l'étape 1, que tu décris, la commande appropriée me semble être, dans mon cas, mstsc.exe /v:s50aus-st1 /admin /public. Mais elle ne me permet pas d'y inscrire les identifiants et mot de passe nécessaires à l'établissement de la session. J'ai regardé du côté des fichiers de config .rdp mais cette piste ne semble pas la bonne.

Je suppose que l'idée serait de se connecter avec une clé de chiffrement plutôt qu'un mot de passe, mais je ne trouve pas de documentation sur la question.

Pouvez-vous m'aider ?

Merci,

Samuel

Lien vers le commentaire
Partager sur d’autres sites

Salut Samuel,

Va faire un tour vers ce shell http://www.donkz.nl/

qui te permet entre autre de faire :

rdp /v:computer /u:username /p:password /start:"pathtoscript/script.bat"

Encore mieux tu a moyen de loggé tes connexion donc récuperer les infos qui t'interesse :) ( étape 1 a 4 d'un seul coup )

ps : ca supporte le multi connexion si tu a plusieurs serveurs a tester :)

Lien vers le commentaire
Partager sur d’autres sites

Merci Maxime. Ton message m'a permis de bien avancer.

J'ai encore un souci : je dois simuler la connexion d'un utilisateur lambda, sans droits d'admin, et soumis à GPO sur le serveur. Dans ce contexte, il m'est interdit pour raison de sécurité d’exécuter un script .bat de mon choix au démarrage. Bien que l'utilisateur puisse fermer sa session normalement en mode graphique, l'insertion de la commande "shutdown /l" comme commande de démarrage est aussi rejetée.

Ai-je moyen de couper proprement ma session dans ces conditions ?

Merci,

Samuel

Lien vers le commentaire
Partager sur d’autres sites

Merci Maxime. J'ai bien testé ta méthode par tâche planifiée. Elle fonctionne bien sur mon serveur de test en tous cas.

J'écris mon script en powershell et j'en suis là :

$debut = Get-Date
$process = [system.diagnostics.process]::start("D:\GA\surveillance_AUS\rdp.exe","/v:s50p-sites-ftp /u:ad\r_rpb9gt /pe:AMNdRgjdCtJxBLX7zdRPobNTrvSCVjnSRWiURtKnbB2UoMszRabu5nYGERpT5Sab")
$wait = $process.waitforexit()
$wait
$fin = Get-Date

Mon souci est que le wait n'attend pas la fin effective (la déconnexion de l'utilisateur du serveur, avec fermeture de la fenêtre rdp) mais doit attendre la fin d'un processus "père" impliqué dans la commande rdp, que je ne maîtrise pas.

Une idée ?

Merci,

Samuel

Lien vers le commentaire
Partager sur d’autres sites

Peut être voir les exit codes, voir si tu catch le No Errors avant la fermeture du processus père :) et puis tu vois cash si un serveur est OUT :)

Exit CodesWhen starting Remote Desktop Plus from a script, you can use the option /batch to prevent RDP+ from displaying error messages. Instead you can catch potential errors through the exit codes (errorlevels) RDP+ which raises. These are the possible exit codes which can be raised:0: No errors.1: General undefined error.2: Specified connection file not found.5: Target computer not in the list of allowed targets.29: Cannot write to the log file.30: Profile not found.87: Invalid command line parameter or combination of command line parameters.161: The format of the specified path is invalid (filename of the connection file, log file or command options file).259: No responsive server found in the list (when using /lb).2382: Invalid notation of the specified host name or IP address.10060: Connection timed out to the specified server.11001: Remote hostname not found.
Lien vers le commentaire
Partager sur d’autres sites

J'ai fait cela :

function essai(){$PSexe = 'D:\GA\surveillance_AUS\rdp.exe'$proc = New-Object System.Diagnostics.Process$proc.StartInfo.Filename = $PSexe$proc.StartInfo.WorkingDirectory = (Get-Location).ProviderPath$proc.StartInfo.Arguments = "/v:s50p-sites-ftp /u:ad\rpb9gt /pe:... /batch"$proc.StartInfo.UseShellExecute = $false$proc.Start()while ($proc.HasExited -eq $false) { Start-Sleep -s 1}$func_ret = $proc.ExitCode$proc.dispose()return $func_ret}essai

en m'inspirant de ça http://forum.sysinte...topic13911.html

Je constate bien que le code 0 est retourné, mais ça correspond au moment où la fenêtre rdp est chargée, et non après la déconnexion effective de l'utilisateur du serveur... c'est déjà bien de pouvoir mesurer le temps de connexion, mais ça ne répond pas exactement à la problématique.

EDIT : c'est bien le temps de chargement de la fenêtre rdp qui est mesuré et non la connexion effective sur le serveur cible de l'utilisateur, donc pas grand intérêt

Une idée ?

Merci,

Samuel

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...