Question Nom client TS

Plus d'informations
il y a 16 ans 1 mois #6042 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Nom client TS
henkala écrit:

Je vais regarder du coté des API, ayant déjà \"zyeuté\" quelques posts là-dessus mais sans vraiment approfondir !

Consulte ce post sur le site de Citrix.
Il contient un exemple en C#, récupérant les @IP et les nom des clients.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #6046 par Romain
Réponse de Romain sur le sujet Re:Nom client TS
Je vais installer PS v2, je vous tiens au courant.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #6057 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:Nom client TS
Salut !

Sous quel OS tourne ton serveur TS ? Sache que s'il s'agit d'un Windows Server 2008 R2, il existe un provider (fournisseur) PowerShell pour gèrer les sessions TS.

Sinon, est-ce que la commande \"Query Session\" répond à tes attentes ? Si oui, le \"parsing\" comme Laurent te le propose semble être la solution la plus simple.

Je suis tombé sur ce petit script qui réalise l'analyse du résulat. Je l'ai légèrement modifié pour qu'il analyse correctement un résultat français:

[code:1]
# Parse 'query session' and store in $sessions:
$sessions = query session | ?{ $_ -notmatch '^ SESSION' } | %{
$item = \"\" | Select \"Active\", \"SessionName\", \"Username\", \"Id\", \"State\", \"Type\", \"Device\"
$item.Active = $_.Substring(0,1) -match '>'
$item.SessionName = $_.Substring(1,18).Trim()
$item.Username = $_.Substring(19,20).Trim()
$item.Id = $_.Substring(39,9).Trim()
$item.State = $_.Substring(48,8).Trim()
$item.Type = $_.Substring(56,12).Trim()
$item.Device = $_.Substring(68).Trim()
$item
}
[/code:1]

# Who are the active users:
[code:1]
PS > $sessions | ?{ $_.State -eq 'Active' } | ft -auto

Active SessionName Username Id State Type Device


--
----
True console pfield 1 Active
[/code:1]

# How many active users:

[code:1]
PS > @($sessions | ?{ $_.State -eq 'Active' }).Count
1

# Checking if users are logged on in an if statement:
PS > if ( @($sessions | ?{ $_.State -eq 'Active' }).Count -gt 0 )
{
Write-Host \"Users are logged on\"
}

Users are logged on

[/code:1]

Sinon, sans faire de filtre spécial, voilà ce que cela donne sur un serveur 2008 R2 avec une session RDP active de l'utilisateur 'Administrator':
[code:1]
PS > $sessions | Format-Table -autosize

Active SessionName Username Id State Type Device


--
----
False services 0 Disc
False console 1 Conn
True rdp-tcp#0 Administrator 2 Active rdpwd
False rdp-tcp 65536 Listen
[/code:1]

Voici l'origine du script : Powershell script to List all RDP sessions on a Terminal Server

En espèrant que cela t'aide à avancer...

Arnaud<br><br>Message édité par: Arnaud, à: 27/01/10 21:21

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #6058 par Romain
Réponse de Romain sur le sujet Re:Nom client TS
Bonjour,

Merci Arnaud de te pencher aussi sur le problème :) .

Dans mes recherches j'avais déjà essayé de \&quot;parsé\&quot; le résultat de \&quot;Qsession\&quot; et malheureusement avec cela je ne peux obtenir que le nom d'utilisateur (donc la session ouverte), le nom de la session ainsi que son ID.

Or je souhaite récupérer le nom de la machine cliente se connectant à la session.

Ce qui m'intrigue c'est que dans le \&quot;Gestionnaire des services Bureau à distance\&quot; ,à l'onglet \&quot;Session\&quot; , trouve le nom de la machine et si je vais dans \&quot;état\&quot; je peux même avoir l'IP, la résolution etc... de la machine cliente.

Pour en revenir à mon installation de Powershell V2 je dois dire que... :blush: J'ai du mal !

Je n'arrive pas à désinstaller l'ancienne version, je vais pourtant dans \&quot;Mises à jour Windows\&quot; mais \&quot;Microsoft PowerShell(TM) 1.0\&quot; n'apparait nulle part :pinch: .

Je pense que je vais faire autrement, un script PowerShell sur mon système actuel n'est pas possible (surtout avec mes piètres capacités :laugh: ).

Merci quand même de m'avoir aidé ;) .

Cordialement,

Henkala.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #6059 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Nom client TS
henkala écrit:

Je n'arrive pas à désinstaller l'ancienne version, je vais pourtant dans \&quot;Mises à jour Windows\&quot; mais \&quot;Microsoft PowerShell(TM) 1.0\&quot; n'apparait nulle part :pinch: .

Il faut utiliser le programme unInstall.exe du répertoire suivant pour un poste Fr:
C:\WINDOWS\$NtUninstallKB926140$

voir aussi : www.myitforum.com/articles/40/view.asp?id=10041

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #6060 par Romain
Réponse de Romain sur le sujet Re:Nom client TS
Je suis désormais en v2 :
[code:1]
PS C:\Users\Administrateur&gt; $PSVersionTable

Name Value
----
CLRVersion 2.0.50727.4927
BuildVersion 6.1.7600.16385
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
[/code:1]

Mais rien n'a changé :S .

Je suis sur Windows Server 2008 R2, mais le provider PowerShell ne me renvoit jamais le nom de la machine cliente (peut être que je m'y prend mal, je fais la recherche avec WMIExplorer, espace de noms \&quot;root\CIMv2\&quot; et \&quot;root\CIMv2\TerminalServices\&quot;).

Je ne sais vraiment plus comment faire :( .

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.052 secondes
Propulsé par Kunena