Samuel_222 Posté(e) le 31 janvier 2013 Partager Posté(e) le 31 janvier 2013 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 More sharing options...
nemesis93_75 Posté(e) le 31 janvier 2013 Partager Posté(e) le 31 janvier 2013 Salut Le format de sortie sera lequel? En tout cas, un script batch ou en perl carrément (sinon du VBS, enfin t'as le choix quoi) pour faire un ping c'est pas compliqué Lien vers le commentaire Partager sur d’autres sites More sharing options...
Samuel_222 Posté(e) le 31 janvier 2013 Auteur Partager Posté(e) le 31 janvier 2013 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 More sharing options...
nemesis93_75 Posté(e) le 31 janvier 2013 Partager Posté(e) le 31 janvier 2013 Ah j'avais pas compris ça comme ça Le temps d'accès a RD, à part sortir son chronomètre, je vois pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
maximeK Posté(e) le 1 février 2013 Partager Posté(e) le 1 février 2013 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 More sharing options...
Samuel_222 Posté(e) le 4 février 2013 Auteur Partager Posté(e) le 4 février 2013 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 More sharing options...
maximeK Posté(e) le 4 février 2013 Partager Posté(e) le 4 février 2013 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 More sharing options...
Samuel_222 Posté(e) le 4 février 2013 Auteur Partager Posté(e) le 4 février 2013 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 More sharing options...
maximeK Posté(e) le 4 février 2013 Partager Posté(e) le 4 février 2013 Par le planificateur de tache au démarrage un shutdown -l ? Sinon dans la prochaine version de Remote Desktop plus il devrait y avoir une option pour ce déconnecter après X s Lien vers le commentaire Partager sur d’autres sites More sharing options...
Samuel_222 Posté(e) le 5 février 2013 Auteur Partager Posté(e) le 5 février 2013 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 More sharing options...
maximeK Posté(e) le 5 février 2013 Partager Posté(e) le 5 février 2013 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 More sharing options...
Samuel_222 Posté(e) le 6 février 2013 Auteur Partager Posté(e) le 6 février 2013 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 More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.