Comment puis-je restaurer une session de bureau à distance sur la console locale?

Une fois que j'ai terminé une connexion de bureau à distance, j'aimerais pouvoir restaurer le bureau à distance sur la console locale afin que l'utilisateur ne soit plus nécessaire pour réintroduire le mot de passe et se reconnecter.

Comment puis-je créer un raccourci pour le bureau?

  1. Créez un raccourci sur le bureau en cliquant avec le bouton droit sur le bureau et en sélectionnant Nouveau, puis sélectionnez un raccourci.
  2. Dans le champ de texte saisissez:

    %windir%\System32\tscon.exe 0 /dest:console (voir ci-dessous)

  3. Cliquez avec le bouton droit de la souris sur le raccourci nouvellement créé, cliquez sur les propriétés.
  4. Cliquez sur l'onglet raccourci, puis cliquez sur le bouton Avancé.
  5. Cochez la case "Exécuter en tant qu'administrateur" et cliquez sur OK.

Si cela ne fonctionne pas, essayez de modifier le numéro zéro ( tscon.exe 0 /dest... ) à l'étape 2 au numéro un, et si cela ne fonctionne pas, continuez à l'incrémenter jusqu'à ce que votre bureau distant soit diffusé.

Alternativement, ouvrez un shell avec le menu de démarrage, exécutez, cmd . Tapez qwinsta Entrer , et recherchez l'ID de la session qui est en état actif (il aura un > caractère au début de son nom de session). C'est le numéro que vous devez utiliser à l'étape 2.

Lorsque vous souhaitez restaurer le bureau de la console, il suffit de double-cliquer sur le raccourci et d'autoriser l'accès de l'administrateur.

Voici une version qui évite la dépendance à l'égard des outils GNU. Il utilise findstr, qui est livré avec Windows.

 for /f %%i in ('qwinsta ^| findstr /C:">rdp-tcp#"') do set RDP_SESSION=%%i :: Strip the > set RDP_SESSION=%RDP_SESSION:>=% tscon %RDP_SESSION% /dest:console 

La réponse de Glenviewjeff m'a permis d'obtenir la plupart du chemin, mais l'ID de la session n'est pas toujours 1. Si vous essayez de déconnecter la session d'écoute ou de console comme celle-ci, vous obtiendrez une "Erreur 7045" – l'accès à la session demandée est refusé ou si L'ID de session n'existe pas une erreur de sessionID non trouvée.

J'ai fait un petit fichier batch pour extraire la session en cours. Comme je l'ai fait sur Windows XP, j'ai besoin de qwinsta plutôt que de demander une session pour trouver l'ID en cours. Ce fichier batch utilise les utilitaires de ligne de commande unix, j'utilise Gnu sur Windows ( https://github.com/bmatzelle/gow/downloads ) pour avoir accès à ceux-ci. Il supprime la session en cours en recherchant un signe ">" puis le réaffecte à la console.

 for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $4}"') do set VAR=%%i tscon %var% /dest:console 

J'avais besoin de cela pour une machine qui est connectée à un scanner Fujitsu IX500, le scanner ne scanne que si l'écran ne se trouve pas sur l'écran de sélection de nom d'utilisateur / connexion dans Windows, ce que vous obtenez lorsque vous déconnectez ou déconnectez une session normalement. Comme la machine fonctionne sans écran, je veux pouvoir me connecter via rdp, mais si je l'ai fait, je ne pouvais pas utiliser le bouton de balayage matériel jusqu'à ce que je me suis connecté manuellement ou redémarré. Le fichier de commandes ci-dessus résout ce problème.

Je ne pouvais pas obtenir la commande de fichier de lot de Simon D pour fonctionner. C'est ce qui m'a fonctionné sur Windows 7 x64:

 for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $3}"') do tscon %%i /dest:console