7
votes

Comment déterminer l'ID de session sur la machine distante pour l'utilisation avec PSEXEC -I à l'aide de Script / PowerShell / ...?

J'ai besoin d'une commande de script ou de PowerShell qui sera en mesure de déterminer l'ID de session d'un utilisateur spécifique connecté sur une machine distante, à utiliser ultérieurement comme paramètre sur l'exécution PSEXEC -I du processus de GUI distant à ce sujet. Session de cet utilisateur sur la machine distante.

jusqu'à présent, j'ai réussi à utiliser p> xxx pré>

pour obtenir la liste des sessions sur la machine distante: p>

SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
console                                     0  Conn    wdcon
rdp-tcp#919       user                     1  Active  rdpwd
rdp-tcp#916       user                     3  Active  rdpwd


1 commentaires

Je crois que cette question est un duplicata de Puis-je trouver l'ID de session pour un utilisateur connecté à une autre machine? Je sais que c'est une jolie question, mais pour ce que cela vaut, j'ai posté une réponse détaillée qui pourrait résoudre votre problème.


3 Réponses :


15
votes

Tant que vous utilisez Psexec, je voudrais juste rester avec elle. Vous pouvez obtenir un nom d'identifiant assez facilement donné un nom d'utilisateur, par exemple: xxx

Notez que vous souhaitez utiliser -d avec pSexec sinon il va attendre que le programme lancé " .


2 commentaires

Bonjour Keith, je suis tombé sur une erreur disant à la requête excitée avec le code 1. Mais si je viens de courir "Psexec \\ remotemachine -u Administrer -p de la session de requête de mot de passe" (sans résultats de $ =), ça a bien fonctionné. Des idées? Merci d'avance pour votre aide!


Salut, j'ai imprimé $ ID avec "ID de session d'hôte écriture = $ ID" et c'était "ID de session = 1 3". Quelque chose ne va pas avec regex? Semble que "3" est une identification correcte de la session, mais "1" est un mauvais préfixe.



4
votes

Avec le module PowerShell PowerShell, vous pouvez obtenir les sessions et les identifiants d'utilisateur.
Le module peut être trouvé ici: http://code.msdn.microsoft.com/psterminaleservices xxx


0 commentaires

7
votes

Il est possible de le faire sans powerShell. Il y a QWINSTA code> Outil de ligne de commande qui est navigué avec des fenêtres que vous pouvez utiliser.

Exemple: p> xxx pré>

Utilisation: p>

c:\>qwinsta /?
Display information about Remote Desktop Sessions.

QUERY SESSION [sessionname | username | sessionid]
              [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]

  sessionname         Identifies the session named sessionname.
  username            Identifies the session with user username.
  sessionid           Identifies the session with ID sessionid.
  /SERVER:servername  The server to be queried (default is current).
  /MODE               Display current line settings.
  /FLOW               Display current flow control settings.
  /CONNECT            Display current connect settings.
  /COUNTER            Display current Remote Desktop Services counters information.
  /VM                 Display information about sessions within virtual machines.


0 commentaires