Archives de la catégorie ‘MSG’

 

S’applique à : Windows Vista, Windows 7, Windows 2008 Server, Windows 2008 Server R2, Windows 8, Windows 8.1, Windows 2012 Server, Windows 2012 Server R2, Windows 10

A noter que certains paramètres et instructions ne sont disponibles que sur les dernières versions de Windows Server et Windows Client, e.i Windows 8.1 /10 – Windows 2012 Server R2: lancer msg.exe /? dans un premier temps pour vérifier la liste des paramètres disponibles

Introduction

MSG.exe est un outil en ligne de commande natif dans les systèmes d’exploitation Windows Server et Windows Client.

Il permet d’envoyer des messages à un ou plusieurs utilisateurs du réseau ayant une session Windows active (locale ou  distante sur un serveur Hôte de session Bureau à distance /TSE).

Il est très utilisé dans les environnements TSE (Terminal Services) et/ou RDS (Remote Desktop Services ou Services Bureau à distance) pour par exemple demander à un ou plusieurs utilisateurs Bureau à distance de déconnecter leurs sessions pour une maintenance de la dernière minute ou pour demander la fermeture d’un programme /application qui consomme beaucoup de ressources (RAM, CPU..) du serveur distant ou tout simplement pour inviter les utilisateurs Bureau à distance de rejoindre une réunion de la dernière minute
Syntaxe

MSG {utilisateur | session | id_session | @nom_fichier | *} [/SERVER:serveur] [/TIME:secondes] [/V] [/W] [message]

-? | Help | Pour obtenir de l’aide. N’hésitez pas à utiliser msg /? ou msg -? pour connaître la liste complète des paramètres disponibles pour la version de Windows (Client ou Serveur) installée sur vos machines

Utilisateur | Nom d’utilisateur auquel le message sera envoyé
Session | Nom de la Session à laquelle le message sera envoyé
id session | ID de la session (numéro de session) à laquelle le message sera envoyé
@nom_fichier | Nom du fichier (texte) contenant une liste des utilisateurs ou leurs noms de sessions ou encore leurs ID de sessions auxquels le message sera envoyé. C’est pratique quand vous voulez envoyer le même message à un groupe d’utilisateurs distants. Le fichier texte peut être généré à partir de la commande Query session>C:\ListeUtilisateurs.txt
* | Le message est envoyé à tout le monde : à toute session Windows distante ouverte sur le serveur spécifié avec le paramètre /Server)
/Server | suivi de : et le nom du serveur sur lequel l’utilisateur auquel vous voulez envoyer le message est connecté /a une session active
/Time | suivi de : et le nombre de secondes durant lesquelles le message reste affiché sur la session de l’utilisateur distant

Note : si le paramètre /Server n’est pas spécifié, le serveur depuis lequel vous envoyez le message est spécifié par défaut ! | si le paramètre /Time n’est pas spécifié, le message reste affiché sur la session de l’utilisateur auquel le message est envoyé jusqu’à que celui-ci clique sur le bouton OK

ASTUCE

-> Pour connaître la liste complète des utilisateurs connectés sur un serveur local ainsi que leurs noms  de sessions ou encore ID des sessions, lancez la commande suivante depuis cmd.exe :  Query Session

-> Toutes les commandes ci-dessous sont exécutées depuis l’invite de commande (cmd.exe) lancée en tant qu’Administrateur.

Exemples

* Pour envoyer un message un utilisateur connecté via Bureau à distance sur le même serveur depuis lequel vous envoyez le message

=> Depuis l’invite de commande, vous saisissez dans un premier temps : Query session

1

Comme illustré dans l’image ci-dessus, l’utilisateur hkadiri a une session RDP Actif, nommée RDP-TCP#1 et portant l’ID 3

=> Maintenant que nous avons noté les informations sur la session Bureau à distance ouverte par l’utilisateur hkadiri, nous pourrons lui envoyer un message via MSG.exe en utilisant soit :

  1. Son nom d’utilisateur                : MSG hkadiri  « Salut Hicham, peux-tu te déconnecter STP ?! »
  2. Le nom de sa session actif         : MSG rdp-tcp#1 « Salut Hicham, peux-tu te déconnecter STP ?! »
  3. L’ID de sa session actif              : MSG 3 « Salut Hicham, peux-tu te déconnecter STP ?! »

Notez que dans les 3 cas, le message est envoyé et la boite de dialogue suivante est affichée sur la session distante de l’utilisateur hkadiri :

2

* Pour envoyer un message à plusieurs utilisateurs connectés via Bureau à distance sur le même serveur depuis lequel vous envoyez le message

=> Dans l’exemple précédent, vous avez remarqué que deux utilisateurs Bureau à distance sont connectés :hkadiri et jdeo

3

Maintenant, nous allons envoyer le même message à l’ensemble des utilisateurs Bureau à distance en utilisant le paramètre * :

MSG * « Bonjour, n’oubliez pas la réunion technique de 16h, soyez à l’heure ! »

Tous les utilisateurs ayant une session active sur le serveur depuis lequel ce message est envoyé reçoivent le message. Dans notre exemple, il s’agit des utilisateurs hkadiri & jdeo.

4

5

6

 

 

 

 

 

* Pour envoyer un message à une liste d’utilisateurs connectés via Bureau à distance sur le même serveur depuis lequel vous envoyez le message en utilisant un fichier texte.

=> Vous pouvez créer ou générer un fichier texte contenant la liste des utilisateurs auquel vous voulez envoyer un message. Dans l’exemple suivant, je vais utiliser un fichier texte nommé UtilisateursRDS.txt placé sur mon bureau

7

A l’aide du paramètre @nom_fichier (dans notre exemple @UtilisateursRDS.txt) nous allons envoyer le même message à l’ensemble des utilisateurs qui y sont listés. La commande suivante est utilisée :

MSG @UtilisateursRDS.txt « Rappel : une maintenance est prevue sur le serveur RDSH dans 30min ! »

Tous les utilisateurs spécifiés dans le fichier texte @UtilisateursRDS.txt reçoivent donc le message.

Note : vous devez vous positionner sur le Bureau (depuis l’invite de commande) pour que l’outil MSG.exe trouve votre fichier texte. Si vous êtes sous %windir%\system32 (généralement chemin par défaut sur cmd.exe), il faudrait utiliser la commande CD pour naviguez jusqu’au \Bureau ou \Desktop.

* Pour envoyer un message à un utilisateur connecté via Bureau à distance sur un serveur distant

ASTUCE

-> Pour connaître la liste complète des utilisateurs connectés sur un serveur distant ainsi que leurs noms  de sessions ou encore ID des sessions, lancez la commande suivante depuis cmd.exe : Query Session /Server:Hostname_Serveur_distant

=> Par exemple pour connaître la liste des utilisateurs Bureau à distance connectés sur le serveur distant LABRDSH02, la commande suivante est utilisée : Query Session /Server:LABRDSH02

=> Vous devez noter dans un premier temps le nom d’utilisateur ou le nom de la session ou encore l’ID de la session depuis le résultat retourné par la commande Query Session. Dans l’exemple suivant, l’utilisateur hkadiri est connecté sur le serveur LABRDSH02, et a une session RDP active :

8

=> Pour envoyer un message un l’utilisateur distant hkadiri connecté sur le serveur distant LABRDSH02, la commande suivante est utilisée

MSG hkadiri  /Server:LABRDSH02 « Bonjour Hicham, n’oublie pas la réunion de 16h ! »

Le message envoyé sur la session de hkadiri reste affiché jusqu’à ce que dernier clique sur le bouton OK. A l’aide du paramètre /Time vous pouvez spécifier un détail d’affichage (en secondes) du message.

=> Dans l’exemple suivant, nous allons envoyer le même message à l’utilisateur hkadiri avec un délai d’affichage de 5 secondes

MSG hkadiri  /Server:LABRDSH02 /Time:5 « Bonjour Hicham, n’oublie pas la réunion de 16h ! »

Vous pouvez utiliser le paramètre /V pour afficher des informations sur toutes les actions effectuées, comme l’envoie du message, réception du message … la commande à utiliser est donc :

MSG hkadiri  /Server:LABRDSH02 /V « Bonjour Hicham, n’oublie pas la réunion de 16h ! »

Les actions effectuées sont affichées comme illustré dans l’image ci-après :

9

Enfin, le paramètre /W peut être utilisé pour attendre la réponse de l’utilisateur distant (réponse = clic sur le bouton OK) après avoir envoyé le message, généralement il est utilisé avec le paramètre /V qui vous permet de voir si l’utilisateur distant a bien reçu le message et vous retourne l’action effectuée par celui-ci.

MSG hkadiri  /Server:LABRDSH02 /V /W « Bonjour Hicham, n’oublie pas la réunion de 16h ! »

L’accusé de réception est affiché comme illustré dans l’image ci-après :

10

Notez qu’il est recommandé d’utiliser les deux paramètres /V et /W en même temps, ça vous permettra de voir les actions effectuées, depuis l’envoie du message jusqu’à réception de la réponse de l’utilisateur distant.