Question
Nom client TS
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 1 mois #6042
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Nom client TS
henkala écrit:
Il contient un exemple en C#, récupérant les @IP et les nom des clients.
Consulte ce post sur le site de Citrix.Je vais regarder du coté des API, ayant déjà \"zyeuté\" quelques posts là-dessus mais sans vraiment approfondir !
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.
- Romain
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 16 ans 1 mois #6057
par Arnaud Petitjean
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 ?
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
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.
- Romain
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
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 \"parsé\" le résultat de \"Qsession\" 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 \"Gestionnaire des services Bureau à distance\" ,à l'onglet \"Session\" , trouve le nom de la machine et si je vais dans \"état\" 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...
J'ai du mal !
Je n'arrive pas à désinstaller l'ancienne version, je vais pourtant dans \"Mises à jour Windows\" mais \"Microsoft PowerShell(TM) 1.0\" n'apparait nulle part
.
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
).
Merci quand même de m'avoir aidé
.
Cordialement,
Henkala.
Merci Arnaud de te pencher aussi sur le problème
Dans mes recherches j'avais déjà essayé de \"parsé\" le résultat de \"Qsession\" 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 \"Gestionnaire des services Bureau à distance\" ,à l'onglet \"Session\" , trouve le nom de la machine et si je vais dans \"état\" 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...
Je n'arrive pas à désinstaller l'ancienne version, je vais pourtant dans \"Mises à jour Windows\" mais \"Microsoft PowerShell(TM) 1.0\" n'apparait nulle part
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
Merci quand même de m'avoir aidé
Cordialement,
Henkala.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 1 mois #6059
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Nom client TS
henkala écrit:
C:\WINDOWS\$NtUninstallKB926140$
voir aussi : www.myitforum.com/articles/40/view.asp?id=10041
Il faut utiliser le programme unInstall.exe du répertoire suivant pour un poste Fr:Je n'arrive pas à désinstaller l'ancienne version, je vais pourtant dans \"Mises à jour Windows\" mais \"Microsoft PowerShell(TM) 1.0\" n'apparait nulle part
.
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.
- Romain
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
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> $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é
.
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 \"root\CIMv2\" et \"root\CIMv2\TerminalServices\").
Je ne sais vraiment plus comment faire
.
[code:1]
PS C:\Users\Administrateur> $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é
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 \"root\CIMv2\" et \"root\CIMv2\TerminalServices\").
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Nom client TS